Vamos a ver como instalar Zigbee2mqtt en Portainer y hacerlo funcionar con un stick USB.
Para poder controlar nuestros dispositivos Zigbee, necesitamos un coordinador.
Igual que en casa tenemos un router wifi que es el encargado de crear la red wifi para poder conectar el resto de dispositivos, en una red Zigbee también necesitamos un router que llamamos coordinador, que es el que crea la red y al que se conectan el resto de dispositivos.
En esta ocasión vamos a ver cómo configurar el coordinador Sonoff Dongle Plus, pero las instrucciones son válidas para cualquier coordinador.
Preparación Zigbee2mqtt con stick USB
Si compras el stick sonoff, puedes utilizarlo tal como viene de caja.
Si no sabes que coordinador comprar o no sabes cómo actualizar el sonoff mira la guía donde se explica Cómo Actualizar el Sonoff Zigbee Dongle Plus, donde también se explica que versión de dongle USB es mejor comprar.
Cada día salen nuevos dispositivos que no están soportados, las actualizaciones añaden compatibilidad con nuevos dispositivos, por lo que es muy recomendable actualizar el coordinador.
Instalar Zigbee2mqtt en Portainer
Vamos a proceder con la instalación de Zigbee2mqtt creando un nuevo stack, como viene siendo de costumbre, si no estás familiarizado con Portainer y los Stacks, te recomiendo que empieces por las guías iniciales donde se explica cómo configurar un Intel Nuc cómo Centro de Domótica.
Creamos un nuevo stack en Portainer con el nombre “zigbee2mqtt” y añadimos las siguientes líneas al editor:
version: '3.8'
services:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt:latest
ports:
- "8080:8080"
- "8099:8099"
volumes:
- /docker/zigbee2mqtt/app/data:/app/data
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
restart: always
environment:
- TZ=Europe/Madrid
Finalmente pulsamos “Deploy the stack” para que se descargue la imagen de zigbee2mqtt y se cree el contenedor.
Configuración de Zigbee2mqtt
Vamos a configurar zigbee2mqtt para que funcione con el Dongle USB, aunque el proceso es el mismo para cualquier stick USB Zigbee.
Para empezar, paramos el contenedor pulsando el botón “Stop” y seguidamente damos permisos al usuario “pi“, si tu usuario tiene otro nombre tendrás que sustituirlo:
chown pi:pi -R /docker
Ahora vamos a la carpeta de configuración de Zigbee2mqtt en “/docker/zigbee2mqtt/app/data” y editamos el fichero “configuration.yaml”
Sustituimos el contenido por las siguientes líneas:
homeassistant: true
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://192.168.1.100:1883
user: mqtt
password: 1234
serial:
port: /dev/ttyUSB0
frontend:
port: 8099
advanced:
log_level: warn
pan_id: 48314
channel: 25
network_key: GENERATE
Parámetros a modificar:
mqtt: usuario y password tendremos que poner el que creamos al instalar mqtt.
network_key: GENERATE, esto generará nuestra network key en el primer inicio de Zigbee2mqtt.
Tanto el pan_id como el network_key se asocian a los dispositivos zigbee, por lo que si los modificamos nos tocará volver a descubrir los dispositivos.
Guardamos los cambios e iniciamos el contenedor de Zigbee2mqtt.
Añadir un dispositivo en Zigbee2mqtt
Accedemos al administrado de Zigbee2mqtt introduciendo en el navegador la ip de nuestro centro de domótica seguida del puerto 8099
En este caso vamos a añadir un enchufe inteligente, para ello el dispositivo tiene que estar sin asociar o reseteado, podemos resetearlo manteniendo pulsado el botón de encendido/apagado hasta que el led empiece a parpadear
Ahora en pulsamos “Permitir Unirse (Todos)” y comienza una cuanta atrás durante la que se detectará el dispositivo y que podemos parar en cualquier momento.
En cuestión de segundos Zigbee2mqtt encuentra el dispositivo y lo añade a la lista
Lo primero que debemos hacer es pulsar en el icono del lapicero para editar el nombre amigable y cambiarlo por algo más entendible, si además marcamos “Actualizar el ID de entidad en Home Assistant” también se actualizará en HA, si lo marcamos y ya existe una entidad con el nombre nos dará un error diciendo que la entidad ya existe, por lo que solo podemos marcarla la primera vez o si modificamos el nombre.
Integración con Home Assistant
Aunque desde zigbee2mqtt podemos ver los dispositivos, modificar su comportamiento y controlarlos la gracia está en poder verlos en HA, para ello vamos a instalar la integración MQTT.
En Home Assistant vamos a “Configuración – Dispositivos y Servicios” y pulsamos en “Añadir Integración”
Si todo va bien, automáticamente todos los dispositivos de Zigbee2mqtt aparecerán como entidades en HA
Y podremos añadirlo a cualquier tarjeta dentro de nuestros paneles permitiendo controlarlo desde HA.