zigbee2mqtt
Le programme zigbee2mqtt
permet de transposer les informations d'un réseau Zigbee à un bus de message MQTT.
Il est nécessaire de disposer d'un bus de message MQTT et d'un récepteur Zigbee.
Reprise des éléments de la page https://www.zigbee2mqtt.io/guide/installation/01_linux.html
Installation
Installation de Zigbee2MQTT sur un Raspberry Pi 3 fonctionnant sur la distribution Raspberry Pi OS Linux fraîchement installée.
Avant d'installer Zigbee2MQTT, nous vérifions que l'adaptateur Zigbee soit bien reconnu par Raspberry Pi OS. Il doit être reconnu en tant que périphérique USB avec la commande lsusb
:
Bus 001 Device 005: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
La communication s’effectuera par un port série émulé. On peut vérifier la disponibilité du port avec la commande ls -l /dev/serial/by-id
:
total 0 lrwxrwxrwx 1 root root 13 5 nov. 09:20 usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20220818080300-if00 -> ../../ttyACM0
Enfin, on lance l'installation de Zigbee2 MQTT
# Set up Node.js repository and install Node.js + required dependencies # NOTE: Older i386 hardware can work with [unofficial-builds.nodejs.org](https://unofficial-builds.nodejs.org/download/release/v16.15.0/ e.g. Version 16.15.0 should work. sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs git make g++ gcc libsystemd-dev make # Verify that the correct nodejs and npm (automatically installed with nodejs) # version has been installed node --version # Should output V18.x, V20.x, V21.X npm --version # Should output 9.X or 10.X # Create a directory for zigbee2mqtt and set your user as owner of it sudo mkdir /opt/zigbee2mqtt sudo chown -R ${USER}: /opt/zigbee2mqtt # Clone Zigbee2MQTT repository git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt # Install dependencies (as user "pi") cd /opt/zigbee2mqtt npm ci
Un message peu vous annoncer une mise à jour mineure de npm
Exécuter les commandes suivantes :
sudo npm install -g npm@10.8.1 npm ci
Configuration
Le fichier de configuration se trouve dans /opt/zigbee2mqtt/data/configuration.yaml
Pour une configuration de base, les paramètres par défaut sont suffisant.
# MQTT settings mqtt: # MQTT base topic for Zigbee2MQTT MQTT messages base_topic: zigbee2mqtt # MQTT server URL server: 'mqtt://localhost' # MQTT server authentication, uncomment if required: # user: my_user # password: my_password # Serial settings serial: # Location of the adapter (see first step of this guide) port: /dev/ttyACM0
–
Pour les clés SONOFF Zigbee 3.0 USB Dongle Plus V2, ZBDongle-E ajouter l'options suivante :
serial: adapter: ezsp
–
Vous pouvez ajouter une clé réseau. Elle sera générée au prochain démarrage du service.
advanced: network_key: GENERATE
–
Vous pouvez activer le frontend :
frontend: # Optional, default 8080 port: 8080 # Optional, default 0.0.0.0 host: 0.0.0.0 # Optional, enables authentication, disabled by default auth_token: your-secret-token # Optional, url on which the frontend can be reached, currently only used for the Home Assistant device configuration page url: 'https://zigbee2mqtt.myhouse.org'
D'autres options sont disponibles :
Démarrer Zigbee2MQTT
Pour démarrer Zigbee2MQTT, il suffit de se rendre dans le dossier du programme et effectuer le npm start
.
cd /opt/zigbee2mqtt npm start
Le programme s'executera jusqu'à vous effectuiez une interruption de programme en appuyant simultanément sur Ctrl + C
Démarrer automatiquement Zigbee2MQTT
Pour démarrer automatiquement Zigbee2MQTT, il faut inscrire le programme en tant que service.
1. Éditer une nouveau fichier /etc/systemd/system/zigbee2mqtt.service
sudo nano /etc/systemd/system/zigbee2mqtt.service
2. Écrivez les paramètres et instructions suivants
[Unit] Description=zigbee2mqtt After=network.target [Service] Environment=NODE_ENV=production ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit # Ou utilisez StandardOutput=null si vous ne voulez pas que les messages de Zigbee2MQTT remplissent le SYSLOG StandardError=inherit Restart=always RestartSec=10s User=pi # Modifiez le compte par le votre [Install] WantedBy=multi-user.target
Inscrire le service en démarrage automatique :
sudo systemctl enable zigbee2mqtt.service
Démarrer le service :
sudo systemctl start zigbee2mqtt
Vérifier l'état du service :
systemctl status zigbee2mqtt.service
Consulter le journal :
sudo journalctl -u zigbee2mqtt.service -f
Mise à jour du programme
# Stop Zigbee2MQTT and go to directory sudo systemctl stop zigbee2mqtt cd /opt/zigbee2mqtt # Backup configuration cp -R data data-backup # Update git pull npm ci # Restore configuration cp -R data-backup/* data rm -rf data-backup # Start Zigbee2MQTT sudo systemctl start zigbee2mqtt