Vamos a instalar la distribución oficial de Home Assistant OS en una Odroid M1 para, a continuación, personalizar la instalación resultante con permitir ciertas configuraciones útiles en el sistema.
El interés de este ordenador, sobre el que ya hemos trabajado, es que incorpora 8 GB de RAM y un slot M.2, ademas de su bajo consumo, con lo que obtendríamos una configuración similar e incluso superior a los actuales Home Assistant Blue y Home Assistant Yellow.
Instalación
Imagen de Home Assistant
En primer lugar, descargaremos la imagen para tarjeta microSD disponible en GitHub.
Por ejemplo, para la versión 10.5, podemos usar wget.
$ wget https://github.com/home-assistant/operating-system/releases/download/10.5/haos_odroid-m1-10.5.img.xz
A continuación, insertamos una tarjeta de al menos 8 GB y descomprimimos ahí la imagen.
# xz -dc haos_odroid-m1-10.5.img.xz | pv | dd of=/dev/sdc bs=4M status=progress
Solo queda extraer la tarjeta e introducirla en la Odroid M1.
Preparación del hardware
Para la preparación del hardware, vamos a necesitar los siguientes elementos:
- Batería CR2032
- Disco M.2 NVMe
- Disipador para discos NVMe
- Tarjeta microSD con la imagen indicada en la sección anterior
- Adaptador ZigBee
Odroid M1 tiene la opción de montar una batería para mantener la hora del sistema durante los apagados. Procederemos a instalar una CR2023 en el zócalo destinado a tal fin en la placa. Cuidaremos que las dos pestañas queden sobre el polo positivo de la batería, mientras que el negativo encaje con la base del zócalo.
Por otro lado, debido a nuestra intención de tener trabajando el dispositivo en 24/7, vamos a mejorar la capacidad de ventilación del disco NVMe que le vamos a instalar. Para ello, utilizaremos un disipador específico para este tipo de dispositivos.
En nuestro caso, hemos elegido uno que consta del disipador propiamente dicho, dos almohadillas y un soporte de aluminio.
Comenzamos pegando una de las almohadillas, tras retirar el protector de plástico, a la parte de abajo del NVMe.
Dejamos caer el NVMe sobre el soporte de aluminio de modo que ambos ajuntes por el lado de la muesca para el tornillo de sujección.
Ponemos la segunda almohadilla sobre el NVMe, cosa que podemos hacer directamente sobre la etiqueta del disco, puesto que esta es de aluminio y apenas afectará a la conductividad térmica del conjunto.
Colocamos el disipador sobre el conjunto, cuidando de nuevo de ajustar por el lado de la muesca.
Finalmente, atornillamos el bloque resultante.
Ya podemos colocar el NMVe en la Odroid M1.
Caja
Vamos a imprimir una caja en la impresora 3D. Para ello, haremos uso del diseño disponible en Thingiverse. Este consta de 2 partes que se ensamblan entre ellas mediante tornillos.
Se recomienda la impresión con PLA con un relleno del 20% de tipo cúbico. Para el ensamblaje basta con seguir las guías para ambas piezas.
Con esto, tenemos la Odroid M1 en su caja.
Primer arranque
El primer arranque se llevará a cabo con el propio encendido de la Odroid M1.
Si conectamos una pantalla a nuestra Odroid M1, veremos que, inicialmente, aparecerá una serie de mensajes de estado que se mantendrán durante varios minutos.
Poco después aparecerá una pantalla de presentación que indica la IP asignada al dispositivo.
Desde un navegador en cualquier máquina de nuestra red accederemos a la dirección IP de nuestra Odroid M1 en el puerto 8123, donde nos mostrará una pantalla de espera.
A continuación se nos pedirá acceso o, en su caso, registro.
Una vez creada la cuenta, nos pedirá que demos un nombre al entorno que deseamos domotizar y datos de ubicación:
A continuación, podremos añadir los dispositivos que Home Assistant haya detectado en la red doméstica o añadir nuevos desde la opción «Más»:
Ahora tenemos una versión de Home Assistant OS funcionando en nuestra Odroid M1.
Personalización
Vamos a personalizar nuestro sistema, para lo que comenzaremos activando el modo avanzado en nuestro perfil de usuario.
SSH
Para agregar la posibilidad de conexión vía SSH a la Odroid M1 iremos a «Ajustes» -> «Complementos» y buscamos el complemento «Terminal & SSH».
Seleccionamos el «add-on» y pulsamos en [INSTALAR].
Tras unos segundos, podremos iniciar el servicio pulsando en [INICIAR].
Vamos a acceder al directorio ~/.ssh del usuario de nuestro sistema Linux y copiamos el contenido del archivo id_rsa.pub, el cual pegaremos en el campo «Authorized Keys». Pulsamos [GUARDAR] para que los cambios tengan efecto.
Asimismo, en la sección Red editamos el puerto de conexión, de modo que ponemos el 22. Pulsamos [GUARDAR] para que los cambios tengan efecto.
Finalmente, podremos acceder vía SSH al dispositivo.
Welcome to the Home Assistant command line. System information IPv4 addresses for eth0: 192.168.2.184/24 IPv6 addresses for eth0: 0000::0000:0000:0000:0000/64 IPv4 addresses for wlan0: OS Version: Home Assistant OS 10.5 Home Assistant Core: 2023.8.3 Home Assistant URL: http://homeassistant.local:8123 Observer URL: http://homeassistant.local:4357 [core-ssh ~]$
Consumo
Home Assistant OS se instala con los parámetros indicados en la tabla.
Parámetro | Archivo | Valor |
---|---|---|
CPU Scaling Governor | /sys/devices/system/cpu/cpufreq/policy0/scaling_governor | performance |
CPU Scaling Min. Freq. | /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq | 408000 |
CPU Scaling Min. Freq. | /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq | 1992000 |
GPU Governor | /sys/devices/platform/fde60000.gpu/devfreq/fde60000.gpu/governor | simple_ondemand |
GPU Min. Freq. | /sys/devices/platform/fde60000.gpu/devfreq/fde60000.gpu/min_freq | 200000000 |
GPU Max. Freq. | /sys/devices/platform/fde60000.gpu/devfreq/fde60000.gpu/max_freq | 800000000 |
PCIe Governor | /sys/module/pcie_aspm/parameters/policy | default [performance] powersave powersupersave |
Sería interesante poder cambiar la política de gestión de CPU a «conservative» pero, por el momento, no conocemos ningún modo no invasivo que permita cambiar los contenidos del directorio /sys.
Almacenamiento
Resulta recomendable que la configuración del sistema y, sobre todo, el almacenamiento de la base de datos se encuentre en un dispositivo más fiable que una tarjeta microSD. Así, vamos a utilizar, en este caso, el disco NVMe que hemos instalado en nuestra Odroid M1.
Para ello, desde la sesión SSH vamos a comprobar la información del actual disco de datos.
[core-ssh ~]$ ha os info | grep data_disk
Obtendremos el identificador del actual disco de datos.
data_disk: SD32G-0x84000000
Con el nuevo disco conectado, que no necesitamos que esté previamente particionado, preguntamos al sistema por la lista de discos disponibles.
[core-ssh ~]$ ha os datadisk list
devices: - SPCC-M.2-PCIe-SSD-AA000000 disks: - dev_path: /dev/nvme0n1 id: SPCC-M.2-PCIe-SSD-AA000000 model: SPCC M.2 PCIe SSD name: SPCC M.2 PCIe SSD (AA000000) serial: AA000000 size: 1000204886016 vendor: ""
Solo queda por indicar a Home Assistant que mueva el contenido actual al nuevo disco.
[core-ssh ~]$ ha os datadisk move /dev/nvme0n1
Tardará unos minutos en realizar el proceso, que incluirá el reinicio del dispositivo.
A partir del reinicio indicado, el sistema estará funcionando con el disco USB como almacenamiento principal, cosa que podremos comprobar con el comando mount.
/dev/nvme0n1p1 on /addons type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /backup type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /share type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /data type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /config type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /ssl type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /media type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /run/audio type ext4 (ro,relatime,commit=30) /dev/nvme0n1p1 on /etc/asound.conf type ext4 (ro,relatime,commit=30) /dev/nvme0n1p1 on /etc/resolv.conf type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /etc/hostname type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /etc/hosts type ext4 (rw,relatime,commit=30) /dev/nvme0n1p1 on /etc/pulse/client.conf type ext4 (ro,relatime,commit=30)
[…] Home Assistant OS permite con mucha facilidad la instalación de un proxy inverso, basado en NGINX, a través de un «add-on». […]
[…] partir de la instalación del servidor de Home Assistant, vamos a continuar añadiendo dispositivos para su integración en esta […]
[…] OS y Supervised: entramos vía ssh en el dispositivo y ahí lo ejecutamos. […]
[…] instalar Adguard Home como complemento de Home Assistant OS o Home Assistant Supervisor, iremos a «Ajustes» -> «Complementos» y buscamos el complemento […]