Seguimos con la instalación domótica utilizando Home Assistant Container, la versión Docker de Home Assistant, y digo versión docker porque considero que Home Assistant Supervised no es no es una instalación pura en docker aunque algunos la consideren así pero de eso ya hablaremos otro día.
Para los que no sepan que es Zigbee2mqtt digamos que es un hub que junto al coordinador cc2531 nos permite recibir y enviar información a nuestra red Zigbee de manera universal sin depender de hub específicos de cada fabricante con lo que nos ahorramos tener un hub de Xiaomi, otro de Philips y siguiendo.
El método de instalación viene a ser el habitual, creamos directorio para guardar el volumen de datos de Zigbee2mqtt, creamos el docker-compose y finalmente vamos a cambiar la configuración de Zigbee2mqtt para ponerle usuario y contraseña para su conexión a MQTT Broker si en su momento le pusimos.
Para finalizar ya podemos empezar a enlazar dispositivos Zigbee en Home Assistant donde nos irán apareciendo en el apartado de integraciones de MQTT.
Para ver todo el procedimiento os dejo el vídeo y debajo los ficheros de configuración de Zigbee2MQTT al igual que el docker-compose para inicializarlo.
Configuration.yaml de Zigbee2MQTT
homeassistant: true
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://{PC_IP_ADDRESS}:1883'
serial:
port: /dev/ttyACM0
advanced:
network_key: GENERATE
Básicamente lo que hacemos en activar la integración en Home Assistant, seguido activamos el emparejamiento de dispositivos.
En server podéis poner la IP de vuestro servidor MQTT, en el caso de estar todo en la misma máquina se puede probar de poner localhost pero va en función de la configuración de cada uno.
Finalmente activamos la generación de clave Zigbee automáticamente para tener una clave única de red y aumentar la privacidad y seguridad.
En cuanto al docker-compose.yml
version: '3'
services:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
volumes:
- /directorio/de/datos/creado/data:/app/data
- /run/udev:/run/udev:ro
devices:
- /dev/ttyACM0:/dev/ttyACM0
restart: always
network_mode: host
privileged: true
environment:
- TZ=Europe/Madrid
La parte más importante es el mapeo del directorio local al contenedor donde tendréis que poner la ruta creada por vosotros para guardar esos datos.
Una buena opción es poner tanto el volumen de datos como el compose en el mismo directorio pero eso lo dejo a gusto de cada uno.