# zigbee2mqtt ![Nom de la section](dummy.png) 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** ```BASH # 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` ![](20240622-192626.png) 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. ```YML # 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 : ```YML serial: adapter: ezsp ``` -- Vous pouvez ajouter une clé réseau. Elle sera générée au prochain démarrage du service. ```YML advanced: network_key: GENERATE ``` -- Vous pouvez activer le **frontend** : ```YML 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 ```