====== zigbee2mqtt ====== {{ :dummy.png?75x75|Nom de la section}} 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 [[informatique:linux:applications:mosquitto|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_16.x | sudo -E bash - sudo apt-get install -y nodejs git make g++ gcc # Verify that the correct nodejs and npm (automatically installed with nodejs) # version has been installed node --version # Should output v14.X, V16.x, V17.x or V18.X npm --version # Should output 6.X, 7.X or 8.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 ===== 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 : * [[informatique:applications:zigbee2mqtt:verification-des-modifications]] * [[informatique:applications:zigbee2mqtt:disponibilite-des-dispositifs]] ===== 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