Home Assistant: el cerebro de tu hogar

por Ricardo Vega el 24/02/2017

Mi último post acababa con la promesa de continuar el tema de Domótica Libre hablando de una alternativa que recientemente he descubierto y con la que realmente estoy encantado.

Sin volver a hablar de todo lo que ya dijimos en el anterior post, te recuerdo que valoramos 3 opciones diferentes, seleccionando como ganadora a OpenHAB, por lo que ésta solución será el rival a batir hoy.

OpenHAB

El proyecto para el que he querido reservar por completo esta entrada se llama Home Assistant y es el corazón de mi actual sistema domótico. Es 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 proyecto, lo descubrí hará unos 6-8 meses aproximadamente cuando estaba viendo los videos de la PyCON 2016 celebrada en Portland, Oregon (EEUU). En ella, Paulus Schoutsen nos habla de las motivaciones del proyecto y da una visión bastante técnica de cómo se hacen las cosas internamente y por qué. Dependiendo de tus intereses y motivaciones puede que te sea realmente imprescindible o un coñazo. Advertido quedas.

Componentes

En el momento en el que escribo este post, 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 envia los componenetes que genera para cubrir sus necesidades. De cualquier modo, no es necesario usar un componente público y tu 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

Al igual que OpenHAB, 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 lago más de "si A entonces B". Gracias a esta característica puedes formatear variables, aplicar transformaciones y hacer comprobaciones complejas.

OpenHAB

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.

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 vas a tener que pegarte con ello; prueba y error. 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.

Por si fuera poco, el canal de Reddit agrupa información tanto oficial como generada por una comundad cada vez más amplia y que están potenciando enormemente este proyecto.

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.

OpenHAB

Sin embargo, también es el punto donde veo más margen de mejora. Digo esto porque si bien hay varios componentes gráficos para representar los elementos del sistema, estos son algo limitados. Además la interfaz está en inglés y aunque es una tarea que seguro se hará, a día de hoy no esta preparada para internacionalizarse y poder elegir distintos idiomas.

Por lo demás, aparte del aspecto visual puro y duro (basado en Material, la guía de estilo que impulsa Google), 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

Mis conclusiones sobre Home Assistant como plataforma open-source de automatización del hogar son muy positivas. No en vano, es el sistema que actualmente estoy usando :)

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.

Espero que te haya gustado a ti también y le des una oportunidad cuando puedas porque creo que no te vas a arrepentir :). Además, al ser el sistema que uso, tengo la intención de publicar en este blog algunos detalles con los que me vaya encontrando a medida que amplío la configuración con la que cuento por lo que, juntos, seguro que es más fácil adoptarlo y aprender de lo mucho que nos puede aportar y... el core está en Python :).

¡Saludos!

Apoya al blog


Si te ha gustado este artículo, valora apoyarme económicamente a través de Patreon, una plataforma de Micro-mecenazgo con la que puedes hacerme un donativo que ayude a la continuidad del blog. Una pequeña ayuda significa mucho. 😃

Deja tu comentario!

Permanezcamos en contacto!


¿Quieres enterarte de todas las novedades del sector? ¿Te gustaría trabajar conmigo? ¡Puedes contactar conmigo de forma muy sencilla!