Sí, ya sé que estoy muy cansino con Home Assistant cuando se supone que soy fan a muerte de HomeKit. Y es completamente cierto, de todos los ecosistemas domóticos que he probado HomeKit es el que más me gusta con diferencia. Funciona muy bien, es sencillo de configurar y las automatizaciones no son demasiado complicadas… pero le faltan algunas cosas y, en mi caso, nunca conseguí eliminar del todo el retraso que había entre los interruptores de superficie de Aqara y las luces Philips Hue. Con Home Assistant este retraso desapareció desde el minuto 1.
Home Assistant no es perfecto. Recordaréis lo que os contaba hace unas semanas cuando hablaba de todas las limitaciones que me había encontrado en Home Assistant, algunas por falta de conocimiento y otras por falta de madurez, ya que aunque sea un proyecto súper activo con una gran comunidad detrás aun hay cosas que le faltan por pulir o por implementar.
Una de estas limitaciones es de lo que quiero hablaros hoy: la alta disponibilidad y tolerancia a fallos. Algunos de los compañeros del servidor de Discord de Domótica Compatible o a través de Twitter me han sugerido que reduzca el número de logs al máximo para que la tarjeta de memoria de la Raspberry PI aguante lo máximo posible. Los que habéis trasteado un poco con las Raspberry PI sabréis que el mal endémico que tienen es la corrupción de los datos de la tarjeta de memoria SD. Sí, puedes hacer el apaño de ponerle un disco duro SSD estándar o un pincho USB de almacenamiento, pero si confías únicamente en la tarjeta SD antes o después tendrás problemas.
Este problema de corrupción de datos es fácilmente solucionable: simplemente tienes que tener otra tarjeta de memoria y un backup en la nube de todas las configuraciones de Home Assistant lo cual lo puedes hacer sin problemas con el plug-in para guardar las copias en Google Drive (hablamos luego de el), pero cuando casque la tarjeta necesitarás unos minutos para hacer ejecutar este procedimiento y, mientras tanto, las automatizaciones no funcionarán… ni las luces… ni los sensores… ni los interruptores en mi caso… nada. Es verdad que el proceso es rápido y casi transparente, la copia es PERFECTA y la puedes restaurar, reiniciar la PI y a volar, pero esos 10 minutos se te van a hacer muy largos si tienes a tu mujer esperando con la cabeza enjabonada en el baño con la luz apagada porque ha saltado el diferencial y la PI ha aprovechado para estropear la tarjeta SD por el corte repentino de luz. Sí, esto es una vivécdota como dirían Buenafuente y Berto Romero.
Es por eso por lo que esta semana decidí hacer la migración de Home Assistant a un Intel Nuc desde la Raspberry Pi 4 que estaba utilizando. El Intel Nuc es un pequeño ordenador de Intel con un consumo muy similar al de la PI pero con un disco duro estándar SSD que puedes ampliar o cambiar en cualquier momento, al igual que la RAM. Mucho más ‘escalable’ que una PI.
Además, al estar basado en tecnología de procesadores de toda la vida (x86) y no en tecnología de procesadores móviles (ARM) como la PI, el rendimiento y fiabilidad global del sistema es mucho mejor. No es que haya un cambio de velocidad espectacular ya que la PI funciona perfectamente, pero para algunas tareas exigentes sí que puede ser significativo… si es que algún día hago alguna tarea exigente con el trasto xD
La copia de seguridad en Home Assistant
Muchos de vosotros me habéis dicho que ejecutáis Home Assistant en una máquina virtual. Evidentemente esto simplifica muchísimo el proceso de copia de seguridad ya que puedes realizar un snapshot completo del sistema o copiar la máquina virtual entera y llevártela al otro dispositivo. 0 problemas y un proceso muy sencillo. Pero yo no ejecuto Home Assistant en una máquina virtual, eso tendría sentido si quisiera utilizar el sistema host (en este caso el Nuc) para otras máquinas virtuales… y en mi opinión esto introduce una nueva capa de fallo, ya que Home Assistant en este caso está funcionando sobre un hypervisor de otro fabricante, es decir, sistema operativo sobre sistema operativo… y por supuesto tanto VMWare, como ProxMox como el sistema de virtualización que utilicéis tiene sus propios bugs y actualizaciones. Como en mi caso no necesito el sistema host para nada más, puedo prescindir de esa capa extra e instalar directamente Home Assistant como sistema operativo del cacharro.
En este caso, la mejor solución que he encontrado para realizar copias de seguridad es un complemento llamado Home Assistant Google Drive Backup que se instala en Home Assistant añadiendo el repositorio a la tienda de complementos de Home Assistant. No, no te agobies que no es nada complicado, entras en Ajustes, Complementos, And-on Store y en los 3 puntitos de arriba a la derecha entras en Repositorios y añades el repositorio https://github.com/sabeechen/hassio-google-drive-backup.
Este complemento utiliza tu cuenta de Google para subir los backups automáticamente, no hay que hacer nada más! Simplemente le das tus credenciales y le dices cuántos quieres almacenar, lo cual depende un poco del espacio que tengas… pero cada backup en mi caso ocupa algo más de 200Mb, por lo que te caben unos cuantos.
Así que antes de empezar a migrar, lo primero que hice fue crear un nuevo backup y sincronizarlo con Google Drive desde este mismo complemento. Luego simplemente hay que restaurarlo en el Nuc y él solito se ajusta con un par de reinicios, pero os lo cuento un poco más adelante.
Instalación de Home Assistant en el Nuc
No te lo vas a creer pero esta fue la parte más complicada! Home Assistant se encuentra disponible para la plataforma de Intel Nuc, pero no es tan sencillo como bajarse una ISO en un pendrive, hacerlo ejecutable e iniciar el proceso de instalación… En la PI sí que fue así, en unos pocos minutos se instaló sin problemas simplemente bajando la ISO de Home Assistant en una tarjeta SD, pero con el Nuc hay que hacer alguna cosa más.
Lo primero de todo es desactivar el SecureBoot, lo cual le indica al sistema cuales son las imágenes válidas para arrancar. No te preocupes que no tiene impacto en la seguridad del sistema, este método se inventó hace años para que alguien con un CD de Linux no pudiera iniciar cualquier sistema, acceder al disco y formatear para instalar ese Linux. Imaginaos que se pudiera hacer esto en un cajero y con tu Linux ya instalado pudieras mandarle mensajes al dispensador para vaciar la pasta de los cajetines.
Para poder arrancar el Nuc e instalar una imagen de un sistema operativo como Home Assistant que no es ni Linux ni Windows, hay que desactivar esta protección. Simplemente hay que hacer eso en la BIOS, nada más, es muy sencillo.
Y ya que estaba en la BIOS y pretendo no reiniciar Home Assistant durante muuuuuchos años, pues aproveché para actualizar el firmware de la BIOS y así tener la última versión disponible con todos sus drivers y sus bugs solucionados:
Para realizar todo el proceso de instalación necesitarás 3 pendrives: el primero para la imagen de Home Assistant, el segundo para CloneZilla (la herramienta que nos va a permitir copiar la imagen en el disco SSD) y el tercero (opcional) para actualizar la BIOS.
Como no tiene ningún sentido reinventar la rueda, te dejo un manual súper currado de Fertry Tech. Léelo con atención porque es un proceso algo largo, pero siguiéndolo paso a paso podrás instalar Home Assistant en el Nuc sin ningún problema.
Restauración de la copia de seguridad
Una vez tengas instalado Home Assistant en el Nuc, simplemente tienes que instalarle el mismo complemento que comentábamos antes para las copias de seguridad, descargar la que hemos realizado hace un rato y restaurarla. En mi caso aproveché este momento para apagar la PI (aprovechando también que no estaba mi mujer) y pinchar en el Nuc el USB Zigbee al que se conectan todos mis dispositivos, ya que como sabéis no utilizo ningún bridge de fabricante (ni Aqara, ni Hue) y todos los dispositivos Zigbee se conectan a este dispositivo.
Esto lo hice simplemente para que no hubiera problemas en el reinicio, no sea que el Nuc empezara a quejarse de drivers instalados o que los dispositivos dijeran que no encontraban el USB Zigbee o cualquier movida.
Con el dongle ya pinchado, reinicio el Nuc 2 veces. No me preguntes por qué pero la primera vez cargó todo sin ningún problema pero los dispositivos no eran capaces de conectarse con el dongle Zigbee. Momento de pánico pensando que iba a tener que re-emparejarlos uno a uno. Sudores fríos mirando el reloj y calculando cuánto rato tenía antes de que volviera mi mujer y comprobara que la luz de la entrada no se encendía al pulsar el interruptor… Pero tras el segundo reinicio empezaron a conectar sin problemas!.
Durante unos días pensé en comprar otro dongle Zigbee y así hacer la instalación en paralelo sin tener este ‘momento de corte’, pero luego caí en la cuenta de que si hacía esto sí que iba a tener que re-emparejar los dispositivos con el nuevo dongle, por lo que la mejor solución y la más rápida era la que finalmente hice.
Ubicación final y puesta en producción
Y de esta sencilla forma… Jajajajaja. Es verdad que la migración es realmente sencilla e intuitiva: hacemos copia de seguridad, instalamos y restauramos copia de seguridad. La complicación viene con la instalación del Nuc, que no es un proceso sencillo por lo menos de la forma en la que yo lo he hecho. Si como comentaba antes vas a instalar Home Assistant en una máquina virtual pues el proceso se simplifica mucho, pero si vas a instalar Home Assistant directamente como sistema operativo entonces la cosa tiene su miga y lo mejor que puedes hacer es seguir el artículo en el blog de Fertry Tech que te decía antes.
Como puedes ver yo tengo todos los cacharros en un cajón debajo de la tele, no me gustaba tenerlos por el mueble ni en el típico hueco para ‘poner el vídeo’ que se utilizaba antes, prefería que estuviera todo recogido. De esta forma lo único que tuve que comprobar es que el cacharro no se calienta demasiado (que no lo hace porque el cajón por detrás tiene un hueco para ventilación) y que la cobertura zigbee llegaba bien a toda la casa, pero ya sabéis que los dispositivo Zigbee crean una especie de red Mesh y son capaces de saltar entre ellos para llegar al router, es decir, que el dispositivo Zigbee que tienes a la otra punta de la casa no está conectado directamente con la antena, sino que ese dispositivo se conecta a otro, y este a otro, y este a otro y este último a la antena Zigbee, por lo que no he tenido problemas de cobertura ni de delays.
Y no, no os preocupéis porque Home Assistant no se ha convertido en mi nuevo pastor. Tengo muchísimas ganas de volver a HomeKit, sobre todo ahora que con iOS 16 la app Casa va a soportar Matter! pero es verdad que con Home Assistant se pueden hacer muchas más cosas (no todas sencillas, es cierto) y que de momento me está funcionando muy bien, sin retrasos y sin grandes problemas. Lo siguiente que quiero hacer es centrarme en la parte estética porque hasta el momento no le había dado ninguna importancia, estaba ‘dejado caer’ para que funcionara todo, pero quiero ver las posibilidades de personalización y si puede llegar a ser tan bonito como la app Casa de Apple.