
Review de Home Assistant
Bueno, ese fue un buen momento: los eventos de esta semana han hecho que esta revisión sea de repente de actualidad. Los problemas recientes con Amazon Web Services han puesto de relieve el peligro de depender de los servicios en la nube, en particular para la automatización del hogar de IoT. Un problema en un centro de datos en Virginia puede dejarlo incapaz de encender las luces o controlar el termostato … no es bueno. No es bueno en absoluto.
Los servicios que incluyen Nest e IFTTT se encuentran entre los afectados, y resalta la importancia de asegurarse de que sus dispositivos inteligentes tengan algún tipo de anulación manual; al menos, un termostato inteligente debería volver a un horario predefinido e idealmente debería poder para administrar sus dispositivos inteligentes desde su red local. Seamos realistas, es tan probable que tenga una interrupción de Internet debido a problemas con su ISP como que los servicios en la nube se caigan.
Entonces, ¿qué pasaría si hubiera una forma de controlar todas las automatizaciones inteligentes de su hogar desde su propia computadora, incluso una Raspberry Pi? Resulta que hay …
Home Assistant y OpenHAB son los dos principales competidores de código abierto. Hoy estoy viendo Home Assistant (HA para abreviar de ahora en adelante), una plataforma basada en Python para controlar su hogar inteligente que parece ser capaz de integrarse con casi cualquier dispositivo o plataforma inteligente que pueda imaginar.
Comencemos con la instalación. Si tiene una Raspberry Pi de repuesto, hay una imagen dedicada que puede escribir en una tarjeta SD y tendrá Home Assistant en funcionamiento a los pocos minutos de arrancar. La instalación en una distribución de Linux que ya tiene Python 3 también es fácil: simplemente instale homeassistant, preferiblemente en un Python VirtualEnv, y listo. También hay instrucciones para Windows y MacOS.
Todo es bastante simple y está bien documentado en el sitio web, al igual que la configuración inicial, por lo que no lo revisaré aquí; esta es una revisión y no un tutorial.
Solo mencionaré que elegí la ruta un poco más compleja de instalar en CentOS 7, que solo viene con Python 2, simplemente porque eso es lo que mi servidor ya ejecuta. Escribí algunas notas sobre cómo se hizo y espero que se incorporen a la documentación de instalación.
De forma predeterminada, el componente de descubrimiento está habilitado, y este puede encontrar elementos como reproductores multimedia y concentradores Philips Hue automáticamente. HA habla directamente con el concentrador Hue en la red local sin salir a la nube y viceversa, lo que convierte a Hue en una buena plataforma para permanecer independiente de Internet.
Una vez que se complete el descubrimiento y haya realizado una configuración básica, puede controlar sus dispositivos a través de la interfaz web.
Este es uno de los puntos fuertes de Home Assistant. Las buenas interfaces de usuario solían ser algo muy raro en el mundo del código abierto, pero afortunadamente esto está mejorando. La interfaz web HA utiliza Material Design y es totalmente receptiva, y funciona tan bien en un teléfono como en una PC. Este tipo de cosas a menudo no es apreciado por el geek promedio, que probablemente estaría bastante feliz de usar una línea de comando para encender las luces, pero es esencial para hacer que el software sea accesible para el usuario general.
Desafortunadamente, ahí es donde termina la facilidad de uso general.
Casi toda la configuración se realiza a través de archivos escritos en YAML , anteriormente Yet Another Markup Language y ahora aparentemente YAML Ain’t Markup Language. YAML no es particularmente complicado, pero la mayoría de los usuarios finales estarían más contentos con una interfaz GUI de apuntar y hacer clic.
Así es como configuraría Samsung SmartThings para encender una luz cuando se abre una puerta después del atardecer:
En Home Assistant, esto se haría con un fragmento de la configuración de YAML a lo largo de las líneas de:
- alias: "Light on when door opens" trigger: platform: state entity_id: sensor.front_door_contact to: "open" condition: condition: state entity_id: sun.sun state: "below_horizon" action: service: light.turn_on entity_id: light.hall |
Una vez que lo dominas, es muy poderoso, pero hay una curva de aprendizaje mucho más pronunciada que la de las alternativas comerciales. Por otro lado, puede hacer mucho más. Si el método YAML no es lo suficientemente flexible, incluso es posible usar Python para escribir rutinas de automatización usando AppDaemon .
Para ser justos, HA está en la versión 0.39 y cada lanzamiento trae mejoras. Desde que lo instalé por primera vez, hace solo unas semanas, se han lanzado nuevas funciones para permitir algunas configuraciones directamente a través del front-end. Todavía no hay una configuración completa de la GUI, pero imagino que es solo cuestión de tiempo hasta que solo se tenga que realizar la configuración más compleja a través de archivos de configuración.
Una desventaja del programa de lanzamiento rápido es que los desarrolladores no tienen miedo de hacer cambios que rompan los archivos de configuración existentes y lo obliguen a reescribir partes de su configuración. Es el precio de ser uno de los primeros en adoptar, y no estoy en desacuerdo con el enfoque: parece que los desarrolladores están trabajando iterativamente hacia una mejor estructura para los componentes internos y no tienen miedo de descartar enfoques que consideran que son callejones sin salida. Solo esté preparado para una cierta frustración y asegúrese de leer las notas de la versión antes de actualizar.
La documentación es bastante completa, pero aun así, deberá estar preparado para muchas pruebas y errores para que las cosas funcionen. Se encuentra en algún lugar entre la documentación del usuario final y una referencia técnica, y a menudo presupone un buen grado de conocimiento técnico. Encontré los ejemplos invaluables, especialmente los ejemplos de archivos de configuración YAML que otros usuarios han puesto a disposición.
Sé por experiencia que es realmente difícil escribir documentación para las cosas que usted mismo sabe al revés; es casi imposible ponerse en el lugar de alguien que llega de nuevo y pensar en las preguntas que tendría.
Una vez que vaya más allá de lo básico, las posibilidades son infinitas, pero prepárese para pasar mucho tiempo rascándose la cabeza, leyendo la documentación, posiblemente leyendo el código y simplemente experimentando.
Uno de los puntos fuertes de HA es su capacidad para interactuar con otros controladores. Ya he invertido en SmartThings y existe un puente entre los dos. Configurarlo requiere estar familiarizado con la instalación de tipos de dispositivos personalizados y aplicaciones inteligentes en SmartThings, pero como yo mismo escribí un par, eso no fue un problema. Configurar el puente fue un poco desafiante, pero, nuevamente, en gran parte debido a mi elección de sistema operativo.
Una vez que se configuró, me dio comunicación bidireccional entre HA y SmartThings. Ahora puedo controlar mis luces administradas SmartThings desde las automatizaciones HA y también automatizar acciones en HA según el estado de mis sensores SmartThings.
El siguiente paso es ir más allá de la dependencia de otra plataforma y utilizar HA para interactuar directamente con sensores y otros dispositivos. He comprado un Z-Wave USB controlador y un sensor de puerta para empezar, y se dedicó a conseguir que funcione en HA. Es un ejercicio bastante técnico a menos que use un método de instalación que lo tenga preconfigurado, pero si está razonablemente seguro con Linux, no debería ser un problema.
Creo que el hecho de haberme decidido a comprar mi propio controlador y dispositivos Z-Wave muestra que, a pesar de las pequeñas reservas, creo que HA es una excelente manera de administrar una casa inteligente. Si está feliz de dedicar el tiempo y es técnicamente capaz, puede liberarse de la dependencia de servicios externos y devolver el control de su hogar a sus propias manos.