Home Assistant es un software que permite automatizar y controlar la domótica de un hogar.

Las principales ventajas respecto a otras soluciones existentes para controlar la domótica del hogar son:

  • Es un software gratuito de código abierto
  • Es un software que se ejecuta localmente, es decir, dentro de la infraestructura creada en casa
  • Soporta diferentes sistemas de comunicación (Wi-Fi, Bluetooth, etc.)
  • Dispone de miles de integraciones con todo tipo de dispositivos útiles para el hogar (luces inteligentes, termostatos, sensores, etc.)
  • Soporta diferentes protocolos de domótica (ZigBee, Z-Wave, Amazon Alexa, etc.)

Alexa, por ejemplo, funciona a través de los servidores de Amazon y requiere de conexión a Internet.

Home Assistant

Home Assistant se puede instalar en diferentes plataformas y usando diferentes métodos:

  • Home Assistant Operating System: mínimo sistema operativo optimizado para Home Assistant. Incluye el Supervisor para instalar addons y hacer copias de seguridad.
  • Home Assistant Container: instalación básica de Home Assistant Core basada en contenedores (p.ej. Docker)
  • Home Assistant Supervised: instalación manual del Supervisor
  • Home Assistant Core: instalación manual usando un entorno virtual de Python

La instalación en Docker se realiza usando la imagen linuxserver/homeassistant.

La forma más sencilla es usar un fichero docker-compose.yml con el siguiente contenido:

version: '3'
services:
  homeassistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: homeassistant
    environment:
      - TZ=Europe/Madrid
    volumes:
      - /home/pi/volumes/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

Se puede usar docker-compose up -d o usar el contenido del fichero en Portainer.

Configuración

Una vez en marcha, se puede acceder a Home Assistant a través del puerto 8123 (en este ejemplo http://192.168.1.180:8123) y comenzar la configuración.

Lo primero y más importante es crear un usuario administrador desde el asistente inicial:

  • Name > admin
  • Username > admin
  • Password > *********
  • Confirm password > *********

A continuación se graban los cambios y se continúa con el asistente para indicar el nombre de la instalación:

  • Name of your Home Assistant installation > Casa

Algunas de las siguientes opciones no hace falta configurarlas en este momento por lo que se puede pulsar el botón Next:

  • Where you live: Amsterdam (por defecto)
  • Time Zone
  • Elevation: 0 (Metros)
  • Unit System: Metric (Celsius, Kilogramos)
  • Currency: EUR

En la pantalla para compartir información sobre uso y estadísticas de forma anónima también pulsamos sobre el botón Next:

  • Basic analytics: Off
  • Usage: Off
  • Statistical data: Off
  • Diagnostics: Off

En la pantalla final del asistente se indican los dispositivos que se hayan encontrado en la red pero no hace falta configurarlos ahora y pulsamos sobre el botón Finish.

Dispositivos en Home Assistant

¿Y ahora qué?

Ahora se abre un mundo lleno de posibilidades que debería comenzar por leer la propia documentación del proyecto para aprender a utilizar los scripts y crear nuestros propios tableros a partir de las miles de integraciones existentes.

El blog del proyecto y la página con ejemplos de uso de la comunidad son una fuente de inspiración para aprender a sacar todo el partido a nuestra instalación de Home Assistant.

Yo, de momento, he integrado NUT en Home Assistant para monitorizar el SAI que protege la informática de casa. También he instalado Node-RED para realizar futuras automatizaciones de forma más visual.

Ahora, ¡a seguir explorando!

Actualizar

Si ya se había instalado Home Assistant anteriormente, se puede actualizar de la siguiente manera:

docker stop homeassistant
docker rm homeassistant
docker rmi ghcr.io/home-assistant/home-assistant

# Únicamente si no se usa un 'stack' en Portainer
docker run -d \
  --name=homeassistant \
  --privileged \
  -e TZ=Europe/Madrid \
  -v /home/pi/volumes/homeassistant:/config \
  -v /etc/localtime:/etc/localtime:ro \
  --restart unless-stopped \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

Soporte

Algunos comandos para gestionar la configuración del contenedor:

# Acceder al shell mientras el contenedor está ejecutándose
docker exec -it homeassistant /bin/bash

# Monitorizar los logs del contenedor en tiempo real
docker logs -f homeassistant

Referencias