Para poder usar Home Assistant sin usar su OS he utilizado la siguiente infraestructura basada en Linux Debian
Sistema Operativo: https://dietpi.com/
Una vez instalado el sistema operativo se necesitan los siguientes pasos:
1. Instalación de paquetes necesarios:
apt install \ apparmor \ cifs-utils \ curl \ dbus \ jq \ libglib2.0-bin \ lsb-release \ network-manager \ nfs-common \ systemd-journal-remote \ systemd-resolved \ udisks2 \ wget -y
+ info: https://github.com/home-assistant/supervised-installer
Adicionalmente en mi caso necesito estos paquetes adicionales:
apt-get install traceroute net-tools firmware-amd-graphics rauc-service
Ayuda:
- https://github.com/home-assistant/supervisor/issues/560
2. Instalación de os-agent:
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
Podemos probar que funciona:
gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
3. Instalación de Supervisor:
Prefiero guardar cada versión (en la documentación oficial es siempre el mismo fichero)
wget -O homeassistant-supervised.1.5.0.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
BYPASS_OS_CHECK=true apt install ./homeassistant-supervised.1.5.0.deb
4. Abrir docker a la red:
Para poder abrir docker y se pueda consultar desde la red: https://gist.github.com/styblope/dc55e0ad2a9848f2cc3307d4819d819f
Para luego comprobar que funciona:
docker -H tcp://localhost:2375 version
5. Fallo de dietpi en equipos x86
Más info: https://dietpi.com/forum/t/dietpi-update-to-v8-22-3-fails-on-native-pc-x86-64/18081/2
root_drive=$(lsblk -npo PKNAME "$(findmnt -Ufnro SOURCE -M /)") debconf-set-selections <<< "grub-pc grub-pc/install_devices multiselect $root_drive"
6. Fallo Supervisor:
Si salta el error «[supervisor.hardware.monitor] Not privileged to run udev monitor!» puedes encontrar una solución aquí: https://github.com/home-assistant/supervisor/issues/1569#issuecomment-737322936
9. Tips que me ayudan a hacer chequeos:
Para comprobar que funciona correctamente y en tiempo real los logs de docker, primero creo un docker que muestre el tiempo cada segundo por consola:
docker run -d --name=follow_test busybox sh -c 'while true; do date;sleep 1;done;'
Luego leo los logs para comprobar que se está mostrando el tiempo real:
clear; docker logs --follow --tail 200 follow_test