Domotica - Home Assistant

Domótica – Home Assistant

Tradicionalmente, en el mundo de la domótica, cada fabricante se crea su propio entorno. Para cada entorno, se crea una centralita y una serie de equipos y sensores que se comunican sólo con su propia centralita. Este enfoque está cambiando y están apareciendo nuevos actores dentro de la domótica que buscan la interconexión de dispositivos de diferentes fabricantes. En el artículo sobre Tuya os hablamos de un ejemplo de proyecto en el que tiene cabida cualquier fabricante, siempre y cuando, adapte sus propios dispositivos al firmware y protocolos de Tuya.

Otro enfoque diferente es el que nos ofrece Home Assistant dentro de la domótica. Se trata de un software que podemos instalar en un mini pc o una raspberry pi y que actúa de centralita para los dispositivos que tenemos en casa. Lo que aporta Home Assistant a la domótica es que no dependes de ningún fabricante, de ninguna nube externa para implantar la domótica en casa. Esta centralita puede estar instalada en tu red doméstica y conecta a todos los dispositivos en local.

¿Qué es Home Assistant?

Home Assistant es un proyecto comunitario que busca la integración del máximo número de dispositivos de domótica y que además, posibilita la instalación en tu red local. El servidor Home Assistant es el concentrador de todos los dispositivos y es un software que se puede descargar gratuitamente e instalar en hardware como una Raspberry Pi.

El hecho de no tener el concentrador fuera de nuestra red, en la nube, aporta mayor seguridad y control de lo que ocurre en tu propia casa. Mayor seguridad, porque todos los eventos que el servidor Home Assistant reciba, no se retransmiten a ningún otro servidor y el control de lo que pasa en tu casa es más eficaz porque, aunque en tu casa se caiga la conexión a internet, los eventos dentro de tu red local de casa, se seguirán registrando.

Componentes Home Assistant

Componentes Home Assistant
Componentes Home Assistant

Realicemos una pequeña introducción a cada uno de los componentes que forman parte del ecosistema Home Assistant.

Home Assistant Core

Home Assistant es un paquete software escrito en lenguaje Python. Este paquete lo podemos descargar gratuitamente de la web de Home Assistant e instalarlo en el sistema Linux que queramos. Este es es cerebro que gobierna a todos los dispositivos y como dice el propio nombre, es el core, de la instalación de Home Assistant.

Administración web

Para poder llevar a cabo la configuración y mantenimiento del sistema, Home Assistant Core posee una interfaz web. Es con esta interfaz web en donde podremos ver los valores que están recogiendo los sensores y ejecutar acciones sobre cada uno de ellos.

Home Assistant

Sin el Core, Home Assistant es una solución lista para funcionar sin tener ni idea de programación y si me apuras, nada de informática. Lo que hay en su interior es un sistema operativo junto con el Home Assistant Core instalado. Lo bueno de esta instalación es que te despreocupas totalmente del sistema operativo o cómo instalarlo en tu equipo, basta con descargar la imagen que te da la gente de Home Assistant y estamparla en un disco o en una tarjeta SD. En este enlace explican cómo llevar a cabo la instalación.

Integraciones con Home Assistant

Mediante el desarrollo de diferentes módulos de integración, Home Assistant consigue obtener valores capturados por cada uno de los sensores y además, posibilita realizar acciones sobre cada uno de ellos. La lista de equipos que se han conseguido integrar es bastante grande y cada día que pasa, esta lista, sigue creciendo. El hecho de que, cualquier persona del mundo, pueda desarrollar por su propia cuenta una integración, posibilita que el crecimiento y calidad de estas integraciones sea muy estable a lo largo del tiempo.

Add-ons

Los desarrolladores de Home Assistant están dotándolo de una serie de herramientas que, aunque son externas al propio sistema, pueden hacer que la potencia de éste aumente. Os pongo un ejemplo, el software Node-Red permite la interconexión de dispositivos, haciendo su programación muy simple puesto que es una herramienta muy visual. Pues bien, desde Home Assistant podemos añadir su correspondiente Add-On y mediante Node-Red programar el comportamiento de los dispositivos y las acciones a realizar en función de los valores recogidos.

La opción de instalar Add-ons sólo está disponible si se utiliza el instalador proporcionado por Home Assistant. Es decir, si se realiza la instalación de forma manual, la integración con otros sistemas también es posible, pero ya tendrá que ser realizada y configurada de forma manual.

Diferentes formas de instalar Home Assistant

Tal y como se ha dicho, podemos instalar Home Assistant de diferentes formas y en distintos dispositivos, todo va a depender de cuántos sepamos de sistemas linux y de cuántos vamos a estar dispuestos a pelearnos ( a parte del coste económico que tiene cada uno de ellos.

Raspberry Pi

Instalación de Home Assistant en una Raspberry PI
Raspberry Pi

Podemos comprarnos una Raspberry Pi junto con una tarjeta Micro SD realizar la instalación del sistema completo, es decir, de Home Assistant. Esto nos dejará listo el sistema en muy pocos minutos y estaremos preparados para empezar a añadir dispositivos para que los controle.

El principal inconveniente de utilizar una Raspberry es su estabilidad y el tiempo de vida de las tarjetas Micro SD. Por mi experiencia, la Raspberry, al cabo de unos días de funcionamiento es necesario su reinicio y por otro lado, las tarjetas micro sd no han sido diseñadas para escrituras tan regulares como las que le impone el propio Home Assistant. Así, mas tarde o más temprano cascará la tarjeta y habrá que tirar de backup junto con una tarjeta nueva para poder volver a levantar al sistema.

Otra opción que se puede llevar a cabo con una Raspberry Pi es utilizar un disco externo SSD. Esta es la configuración que yo tengo actualmente y en general va bastante mejor que la tarjeta pero, por lo menos en mi caso, sigo sin tener el sistema estable del todo.

Utilizar un mini pc o nuc

Instalación de Home Assistant en un NUC
NUC

Esta es la opción que más me convence porque, con un consumo eléctrico contenido, vamos a tener una mayor estabilidad. Al utilizar un mini pc podemos optar por realizar la instalación de tres formas diferentes, gozando de una mayor holgura de recursos.

  • Instalación de Home Assistant como un paquete. Esta solución consiste en instalar en el pc un sistema operativo Linux y en él instalar el paquete de Home Assistant. El sistema Home Assistant, por tanto, es un componente más dentro de la instalación del pc y éste lo podemos dedicar a otras actividades, y no tiene por qué limitarse a Home Assistant.
  • Instalación de Home Assistant como una imagen docker. Para todos aquellos que no sabéis que es docker, digamos que son imágenes, o contenedores en donde ya ha instalado de forma predeterminada un software. Lo único que hay que hacer es bajarse la imagen y darle a ejecutar. Lo estoy simplificando mucho pero, más o menos, la filosofía es esa. Con esta instalación nos despreocupamos un poco de lo que pasaría lanzamos la actualización de la versión del sistema operativo y las dependencias de paquetes. Docker, al tratarse de un contenedor estanco, no tiene dependencias relevantes con el sistema operativo en el que está corriendo.

Este es un ejemplo de NUC.

Histórico

Visualización de datos de Home Assistant en Grafana
Visualización de datos de Home Assistant en Grafana

Dado que Home Assistant está continuamente recogiendo valores de cada uno de los equipos que tiene conectado, existe la posibilidad de almacenarlos en una base de datos. De forma predeterminada, Home Assistant almacena muy poco histórico, porque sino la base de datos crecería muy rápido y perderíamos rapidez. El gestor de base de datos que utiliza por defecto es SQLite.

Pero podemos almacenar los valores recogidos en una MySQL o MariaDB: se trata de una base de datos relacional de toda la vida y en la que podemos almacenar cantidades bastantes grandes de información. Así mismo, también podemos utilizar Influxdb que es una base de datos que indexa la información en base al tiempo: lo bueno de utilizar esta base de datos es que, con la utilización de Grafana podemos realizar paneles y gráficas realmente muy chulos.

Nube Home Assistant

Nube Home Assistant: Nabu Casa
Nube Home Assistant: Nabu Casa

Os he dicho al principio del artículo que, con Home Assistant, no hacía falta ninguna nube externa y que la centralita y por tanto, cerebro de nuestra domótica podía estar en un pc que esté en nuestra casa. Sin embargo, ahora os hablo de una nube de Home Assistant. Bien, esto se debe a que, para que el proyecto pueda tener continuidad, se necesita recursos económicos. Una forma de conseguirlo es mediante la suscripción a la nube de Home Assistant (5$ /mes).

¿Qué nos ofrece la nube de Home Assistant?

Nos permite acceder a nuestra web de administración de Home Assistant desde cualquier parte del mundo. Podremos acceder a nuestro servidor que poseemos en casa desde cualquier sitio y sin tener que configurar nada en nuestro router: no es necesario abrir ningún puerto ni exponer ningún puerto a internet con los problemas de seguridad que eso siempre conlleva.

Además, y como plato fuerte, permite la integración con Alexa y Google Home de una forma muy sencilla. Home Assistant permite la integración con los asistentes virtuales sin la utilización de su nube, pero esta configuración es bastante complicada y conlleva un montón de pasos, en su mayoría bastante complejos. Sin embargo, con la utilización de la nube de Home Asistant, esta integración se realiza con un par de clics desde la propia web de administración.

La nube de Home Assistant se llama Nabu casa y está disponible en este link.

Instalación ejemplo

En esta URL tenéis una web de ejemplo en la que podéis cacharrear con ella y poder ver hasta donde podéis llegar en la domótica con Home Assistant. El enlace es éste.

Espero que haya sido de tu interés. Seguimos.

Deja un comentario

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