Instalación de Home Assistant supervisada / Sudo Null IT News
Hoy instalaremos Home Assistant Supervisado en Debian 12 según instrucciones oficiales. “Sho, ¿otra vez?” – muchos preguntarán. Sí, pero simplemente instalarlo según las instrucciones es aburrido y seguramente nos encontraremos con problemas que ni siquiera se mencionan en las instrucciones.
¿Por qué Debian? Porque es el sistema operativo recomendado. En teoría, se puede instalar en cualquier sistema Linux. Además, este artículo no analizará por qué Home Assistant está supervisado y no el sistema operativo Home Assistant. Este artículo no trata sobre eso.
El plan de instalación Supervisado por Home Assistant es el siguiente:
Instalar Debian.
Instalar dependencias.
Instalar Agente OS и Asistente de hogar.
Instalación de Debian.
Al momento de escribir este artículo, la versión actual de Debian es 12.5.0. Descargar Distribución ISO desde el sitio web oficial.. Si lo instalamos en una PC, lo escribimos en una unidad flash, por ejemplo a través de Rufo.
Instalamos todo al mínimo, asegúrate de seleccionar SSH server
. Carcasa gráfica y standard system utilites
opcional. Estamos configurando la red usando DHCP; todavía no tenemos prisa por configurar una dirección estática.
Cuando se complete la instalación, deshabilite el inicio de sesión con contraseña en SSH y escriba la clave pública en authorized_keys
.
Si está instalando en una máquina virtual, en esta etapa es muy recomendable tomar una instantánea para no tener que volver a instalar desde cero si algo sale mal. Y, en general, no dudes en tomar fotografías después de cada etapa exitosa, ahorra mucho tiempo.
A continuación, toda la instalación debe venir desde root. Entramos en root usando el comando su -
(no olvides el guión al final). Se le solicitará la contraseña de root que ingresó al instalar el sistema. Después de acceder a root, la línea de saludo debería verse así:
root@homeassistant:~#
Instalación de dependencias.
Instale/actualice los paquetes necesarios:
apt update
apt install apparmor bluez cifs-utils curl dbus jq libglib2.0-bin lsb-release network-manager nfs-common systemd-journal-remote systemd-resolved udisks2 wget -y
A continuación, instale la ventana acoplable:
curl -fsSL get.docker.com | sh
Instalación de OS-Agent y Home Assistant.
Descargue e instale OS-Agent. Al momento de escribir este artículo, la versión actual es 1.6.0:
wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_x86_64.deb
dpkg -i os-agent_1.6.0_linux_x86_64.deb
Comprobemos su funcionalidad:
root@homeassistant:~# gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
node /io/hass/os {
interface org.freedesktop.DBus.Introspectable {
methods:
Introspect(out s out);
signals:
properties:
};
interface org.freedesktop.DBus.Properties {
methods:
Get(in s interface,
in s property,
out v value);
GetAll(in s interface,
out a{sv} props);
Set(in s interface,
in s property,
in v value);
signals:
PropertiesChanged(s interface,
a{sv} changed_properties,
as invalidates_properties);
properties:
};
interface io.hass.os {
methods:
signals:
properties:
@org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
readonly s Version = '1.6.0';
@org.freedesktop.DBus.Property.EmitsChangedSignal("true")
readwrite b Diagnostics = false;
};
};
Si no hay errores, los objetos se generan normalmente. interface
entonces todo se instaló correctamente.
A continuación, descargue e instale Home Assistant:
wget -O homeassistant-supervised.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
apt install ./homeassistant-supervised.deb
Después de la instalación, después de 2 o 3 minutos (o más), vaya a la dirección (donde IP_ADDRESS es la dirección IP de la máquina), espere a que finalice y configure Home Assistant.
¡Pará pará pará! ¡Esperar! ¿Pensaste que todo te saldría así? ¿Recuerdas que mencioné los problemas? Averigüemos qué puede salir mal y qué definitivamente saldrá mal durante el proceso de instalación.
systemd-resuelto
Has instalado las dependencias. Intentando instalar la ventana acoplable:
root@homeassistant:~# curl -fsSL get.docker.com | sh
curl: (6) Could not resolve host: get.docker.com
… y de repente descubrimos que el resolutor se ha caído. De hecho, está instalado systemd-resolved
y el servidor DNS desde la configuración de red no funcionó.
Verificamos:
root@homeassistant:~# resolvectl dns
Global:
Link 2 (ens192):
Así es, no hay ningún servidor DNS en la interfaz. No funciona de inmediato, primero debes reiniciar el servicio systemctl restart systemd-resolved.service
.
Agregue el servidor DNS del enrutador a la interfaz de red, 1.1.1.1
o 8.8.8.8
y comprobar:
root@homeassistant:~# resolvectl dns ens192 192.168.1.1
root@homeassistant:~# resolvectl dns
Global:
Link 2 (ens192): 192.168.1.1
root@homeassistant:~# ping4 google.com
PING (108.177.14.101) 56(84) bytes of data.
64 bytes from lt-in-f101.1e100.net (108.177.14.101): icmp_seq=1 ttl=111 time=32.4 ms
64 bytes from lt-in-f101.1e100.net (108.177.14.101): icmp_seq=2 ttl=111 time=32.7 ms
64 bytes from lt-in-f101.1e100.net (108.177.14.101): icmp_seq=3 ttl=111 time=32.7 ms
^C
¡Excelente! Intentamos instalar Docker nuevamente.
Este problema también aparece a veces al instalar el paquete Home Assistant. Durante la instalación comienza a enviar spam con errores de ping.
ping: checkonline.home-assistant.io: Temporary failure in name resolution
(info) Waiting for checkonline.home-assistant.io - network interface might be down...
ping: checkonline.home-assistant.io: Temporary failure in name resolution
(info) Waiting for checkonline.home-assistant.io - network interface might be down...
Sin interrumpir el proceso de instalación, debe iniciar sesión en una sesión SSH paralela o (si está trabajando directamente) cambiar al segundo terminal (cambiando entre terminales Alt+F1..F6). A continuación, registramos DNS en la interfaz, cambiamos a la sesión/terminal principal, la instalación debería continuar automáticamente.
Gerente de Redes
El problema de NetworkManager suele ocurrir después de la instalación completa de Home Assistant mientras se ejecutan contenedores Docker.
Si ha registrado una dirección IP estática, es casi seguro que se producirá un problema con NetworkManager. Esto significa que el solucionador no funciona, incluso si se registra manualmente y, por lo tanto, todos los contenedores, excepto el principal, no se descargan ni se inician. Aunque hacer ping directamente a la dirección IP funciona bien.
root@homeassistant:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fa8dfe4429c ghcr.io/home-assistant/amd64-hassio-supervisor:latest "/init" 6 minutes ago Up 6 minutes hassio_supervisor
root@homeassistant:~# resolvectl dns
Global:
Link 2 (ens192):
Link 3 (docker0):
Link 5 (vethfd10614):
Link 6 (hassio):
Link 8 (veth3dfd1c5):
root@homeassistant:~# resolvectl dns ens192 192.168.1.1
root@homeassistant:~# resolvectl dns
Global:
Link 2 (ens192): 192.168.1.1
Link 3 (docker0):
Link 5 (vethfd10614):
Link 6 (hassio):
Link 8 (veth3dfd1c5):
root@homeassistant:~# ping4 google.com
ping: google.com: Temporary failure in name resolution
root@homeassistant:~# ping4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=30.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=30.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=112 time=30.7 ms
^C
Como tenemos NetworkManager instalado, lo más probable es que la administración de la red le haya pasado. Vamos a revisar.
root@homeassistant:~# nmcli connection show
NAME UUID TYPE DEVICE
Supervisor ens192 4e12c325-9cce-4446-bce6-4e00a038da7a ethernet ens192
lo 0fb78ab7-1397-4b7d-b2f9-08a5e4ce159c loopback lo
Wired connection 1 9596ad70-3e69-3dcf-9c4e-7baffa45d79d ethernet --
Esto es cierto. Home Assistant ha creado un nuevo perfil Supervisor ens192
(ens192 puede diferir según la interfaz utilizada) y lo activó. Lo más probable es que el problema esté ahí.
root@homeassistant:~# nmcli connection edit "Supervisor ens192"
nmcli> print ipv4
('ipv4' setting values)
ipv4.method: manual
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.1.30/24
ipv4.gateway: 192.168.1.1
.......
No hay ninguna indicación del servidor DNS en el perfil. Lo agregamos al perfil, lo guardamos, lo revisamos.
nmcli> set ipv4.dns 192.168.1.1
nmcli> print ipv4.dns
ipv4.dns: 192.168.1.1
nmcli> save persistent
Connection 'Supervisor ens192' (4e12c325-9cce-4446-bce6-4e00a038da7a) successfully updated.
nmcli> quit
root@homeassistant:~# nmcli connection down "Supervisor ens192" && nmcli connection up "Supervisor ens192"
Connection 'Supervisor ens192' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
root@homeassistant:~# ping4 google.com
PING (173.194.220.139) 56(84) bytes of data.
64 bytes from lk-in-f139.1e100.net (173.194.220.139): icmp_seq=1 ttl=109 time=32.6 ms
64 bytes from lk-in-f139.1e100.net (173.194.220.139): icmp_seq=2 ttl=109 time=32.5 ms
64 bytes from lk-in-f139.1e100.net (173.194.220.139): icmp_seq=3 ttl=109 time=32.5 ms
Si se conecta a través de SSH, la reconexión debe realizarse con un comando; de lo contrario, tendrá que ingresar a la consola, porque. la rejilla se apagará.
Vamos a tomar el té y esperamos a que suban todos los recipientes.
root@homeassistant:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9085135ef77d ghcr.io/home-assistant/qemux86-64-homeassistant:2024.6.2 "/init" 6 minutes ago Up 6 minutes homeassistant
54edaaebde19 ghcr.io/home-assistant/amd64-hassio-multicast:2024.03.0 "/init" 7 minutes ago Up 7 minutes hassio_multicast
ad3991713142 ghcr.io/home-assistant/amd64-hassio-audio:2023.12.0 "/init" 7 minutes ago Up 7 minutes hassio_audio
b0d247d8d950 ghcr.io/home-assistant/amd64-hassio-dns:2024.04.0 "/init" 7 minutes ago Up 7 minutes hassio_dns
58fcbe893417 ghcr.io/home-assistant/amd64-hassio-cli:2024.05.0 "/init" 7 minutes ago Up 7 minutes hassio_cli
896050f24454 ghcr.io/home-assistant/amd64-hassio-observer:2023.06.0 "/usr/bin/observer" 14 minutes ago Up 7 minutes 0.0.0.0:4357->80/tcp, :::4357->80/tcp hassio_observer
5fa8dfe4429c ghcr.io/home-assistant/amd64-hassio-supervisor:latest "/init" 36 minutes ago Up 7 minutes hassio_supervisor
¿Cuándo subió el último contenedor? qemux86-64-homeassistant
puede iniciar sesión a través de un navegador y realizar más configuraciones.
Si inicia sesión demasiado pronto y ve un error de instalación, no se alarme, deberá esperar un poco más.
Los problemas con NetworkManager también pueden provocar que el sistema no recuerde la configuración de red a través de la interfaz web y la restablezca después de reiniciar el sistema.
La solución a este problema es bastante sencilla. Si nos fijamos en los perfiles de red, en este caso lo más probable es que el perfil controlado por Home Assistant esté inactivo.
root@homeassistant:~# nmcli connection show
NAME UUID TYPE DEVICE
Supervisor ens192 4e12c325-9cce-4446-bce6-4e00a038da7a ethernet --
lo 0fb78ab7-1397-4b7d-b2f9-08a5e4ce159c loopback lo
Wired connection 1 9596ad70-3e69-3dcf-9c4e-7baffa45d79d ethernet ens192
Debes cambiar a un perfil que será controlado por Home Assistant. Es recomendable eliminar el perfil restante, pero normalmente se elimina por sí solo cuando se reinicia el sistema.
root@homeassistant:~# nmcli connection down "Wired connection 1" && nmcli connection up "Supervisor ens192"
Connection 'Wired connection 1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
root@homeassistant:~# nmcli connection delete "Wired connection 1"
Otros errores
Después de la instalación, no olvide reiniciar el sistema en el que está instalado Home Assistant. De lo contrario, indicará un error irrecuperable y/o no mostrará la dirección en la interfaz de red.
Conclusión
Quizás estos no sean todos los errores que encontrará, especialmente si instala Home Assistant en un sistema Linux que no sea Debian 12. Lo más probable es que los problemas con NetworkManager se solucionen con el tiempo, porque Este es un problema de configuración del sistema cuando se activa el primer contenedor. amd64-hassio-supervisor
.