Instalación de Zigbee2MQTT sobre Docker con ArchLinux

Una alternativa a la instalación de Zigbee2MQTT basada en Node.js, que vimos en un artículo anterior, es mediante el uso de contenedores.

En este artículo veremos lo sencillo que es tener una configuración básica de Zigbee2MQTT a través de Docker.

Instalación

En primer lugar, hemos de tener nuestro Docker arrancado:

# systemctl start docker

A continuación, crearemos un árbol de archivos que contendrá el directorio data, donde crearemos el archivo configuration.yaml, que contendrá lo siguiente:

# Home Assistant integration (MQTT discovery)
homeassistant: false

# allow new devices to join
permit_join: true

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://ip_servidor_mqtt'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/ttyACM0

Nótese que en el campo server ponemos la dirección IP de nuestra máquina y en port la ruta del coordinador Zigbee (/dev/ttyACM0 para CC2531 y /dev/ttyUSB0 para CC2652).

Ahora descargaremos y echaremos a andar nuestro contenedor desde los repositorios Docker:

$ docker run -d --restart unless-stopped --name="zigbee2mqtt" --net=host --device=/dev/ttyACM0 -v /opt/domotics/zigbee2mqtt/data:/app/data -v /run/udev:/run/udev:ro -v /etc/localtime:/etc/localtime:ro koenkk/zigbee2mqtt

Nótese que nuestro árbol de archivos lo hemos puesto en /opt/domotics.

Primer arranque

En este caso, el arranque de Zigbee2MQTT se llevará a cabo automáticamente tras la ejecución del comando anterior. Para que no haya ningún problema de arranque, previamente habremos de tener conectado el dispositivo USB y arrancado el servidor MQTT, sea como servicio o dentro de un contenedor.

Vamos a abrir una ventana de terminal en nuestro PC, en la que escribiremos una petición de suscripción con la instrucción mosquitto_sub:

$ mosquitto_sub -t zigbee2mqtt/#

Nótese que en la ventana del terminal de suscripción aparecerán mensajes relacionados con este servicio.

Podremos ver el estado de este software en el directorio data/log.

8 comentarios

Deja un comentario