Home Assistant – Presentación

El proyecto se centra completamente en Home Assistant, una plataforma open-source de automatización del hogar creada en Python 3 y que permite, a través de diferentes módulos, la interacción con diferentes plataformas, servicios y dispositivos.

Este sistema es relativamente joven, todos los meses salen módulos nuevos que integran nuevos componentes. Cabe destacar que es un sistema como bien he dicho antes modular, y que hay que tener un mínimo de conocimientos técnicos para poder configurarlo, no así para usarlo como usuario final.

Componentes

El proyecto cuenta con casi 600 componenetes disponibles perfectamente organizados en varias categorías como “Climate”, “DIY”, “Health”, “Social”, “Notifications” o “Weather”. La idea de los componentes es proveer una interfaz de comunicación entre la plataforma y diferentes elementos externos que pueden ser plataformas online como IFTTT, iCloud o APIs de terceros, sistemas que comparten un elemento físico y una plataforma cloud como pueden ser Nest o las Philips HUE, elementos puramente físicos que conectamos directamente o a través de un protocolo como MQTT y elementos software que pueden ser desde una plataforma que nos permita emitir notificaciones a bots de Telegram pasando por otras herramientas difícilmente clasificables (por ejemplo existe un componente para manejar el cliente de descargas torrent Transmission).

El modelo de creación de componentes se basa en el desarrollo directo de los responsables del proyecto, así como de la comunidad que crea y envía los componentes que genera para cubrir sus necesidades. De cualquier modo, no es necesario usar un componente público y tú mismo puedes generar uno (o modificar uno existente) para que encaje con tus necesidades si así lo deseas.

Realmente no tengo más que palabras positivas para el modelo de componentes de Home Assistant. Es realmente una pasada la cantidad de ellos que existen. Casi cualquier cosa está ya hecha y las integraciones me parecen mucho más “inteligentes” que las de otros sistemas. Aquí es muy sencillo trabajar con servicios de terceros y juntarlos todos para hacer grandes cosas.

Automatización

Home Assistant se basa en reglas para controlar el sistema. Sin embargo, en este caso, todas las reglas cuentan con tres elementos:

  • trigger: lo que hace que se lance la regla.
  • condition: condición a comprobar para que se ejecute la regla.
  • action: acción que realiza la regla.

Además, en cualquier de estos tres elementos cuentas con un motor de plantillas que te permite extender las comprobaciones a algo más de “si A entonces B”. Gracias a esta característica puedes formatear variables, aplicar transformaciones y hacer comprobaciones complejas.

Por si fuera poco, si con estas opciones no te es suficiente, Home Assistant permite el uso de scripts (escritos en Python) para extender la funcionalidad de la plataforma prácticamente hasta el infinito. Así como la posibilidad de lanzar comandos bash mediante el modulo Shell_command, por lo que podemos, por ejemplo, controlar los puertos GPIO de nuestra raspberry desde la interfaz web.

En definitiva, la forma de configurar la lógica del sistema es no sólo útil y relativamente sencilla, sino que además aporta un extra de flexibilidad para adaptarse casi a cualquier exigencia.

Documentación

En de la página oficial del proyecto puedes encontrar mucha documentación de calidad que te ayudará a montar tu sistema desde cero. Y es que, desde mi punto de vista, esta es una de las grandes virtudes de Home Assistant: su excelente documentación. Todos, absolutamente todos los componentes con los que cuenta (y son muchos) tienen información relativa a su configuración y uso. Además, siempre acompañan las explicaciones con ejemplos lo que facilita mucho la vida a aquellas personas que se enfrenten al sistema por primera vez.

¿Es sencillo? Si y no, me explico: configurar un sistema complejo tiene su dificultad y requiere de un perfil técnico con conocimientos previos de programación y de sistemas. No esperes encontrar un panel gráfico en el que puedes ir montar todo. La configuración se hace modificando un fichero .yaml directamente con tu editor de texto (Atom por ejemplo). Sin embargo, la cantidad y calidad de la información disponible harán esta tarea mucho más sencilla. Es más, hay un montón de configuraciones completas disponibles en la web del proyecto que permiten tener referencias reales de cómo otras personas han solucionado problemas similares.

Interfaz Gráfica

En este sentido, Home Assistant está a años luz del resto de competidores que he probado. Tiene una interfaz simple, clara y moderna, perfectamente adaptable a cualquier dispositivo.

Cuenta con varias características interesantes como el soporte a WebSockets que permite al sistema reaccionar en tiempo real, mostrando los valores de los sensores en cada momento sin necesidad de recargar la página.

Tiene detalles interesantes como un “modo debug” que te permite mostrar por pantalla el estado de todo lo que contempla el sistema a nivel interno, los triggers de eventos, el resultado de automatizaciones, etc. Cuando estás configurando el sistema es, sin duda, de gran ayuda.

Es decir, en mi opinión, la interfaz gráfica es buena pero poco flexible y es precisamente esta flexibilidad su principal punto de mejora.

Conclusiones

Home Assistant como plataforma open-source de automatización del hogar es una muy buena opción, estable y con un amplio catálogo de componentes integrables.

Creo que, a día de hoy, no tiene rival en la mayoría de ocasiones que se plantean cuando un usuario desea montar un sistema de estas características, en especial cuando tiene que integrar diferentes elementos y plataformas (que creo que es la mayoría de las veces). Creo además que a corto plazo competirá con OpenHAB 2 por ser la mejor (y más usada) solución para automatizar nuestro hogar.

¡Saludos!

 



Si te gustó la entrada puedes utilizarla siempre y cuando compartas la web y nos menciones como fuente de la información.

Deja un comentario

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

*