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. interfaceentonces 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-homeassistantpuede 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.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *