informatique:applications:zigbee2mqtt

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
informatique:applications:zigbee2mqtt [2023/11/12 18:56] – [Configuration] Cédric ABONNELinformatique:applications:zigbee2mqtt [2023/11/12 19:24] (Version actuelle) – [Configuration] Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== 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'':
 +<code>
 +Bus 001 Device 005: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
 +</code>
 +
 +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'' :
 +<code>
 +total 0
 +lrwxrwxrwx 1 root root 13  5 nov.  09:20 usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20220818080300-if00 -> ../../ttyACM0
 +</code>
 +
 +Enfin, on lance l'installation de **Zigbee2 MQTT**
 +
 +<code 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_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
 +</code>
 +
 +===== 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.
 +<code 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
 +</code>
 +
 +--
 +
 +Pour les clés **SONOFF Zigbee 3.0 USB Dongle Plus V2**, **ZBDongle-E** ajouter l'options suivante :
 +
 +<code YML>
 +serial:
 +  adapter: ezsp
 +</code>
 +
 +--
 +
 +Vous pouvez ajouter une clé réseau. Elle sera générée au prochain démarrage du service.
 +
 +<code YML>
 +advanced:
 +    network_key: GENERATE
 +</code>
 +
 +--
 +
 +Vous pouvez activer le **frontend** :
 +
 +<code 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'
 +</code>
 +
 +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''.
 +
 +<code>
 +cd /opt/zigbee2mqtt
 +npm start
 +</code>
 +
 +Le programme s'executera jusqu'à vous effectuiez une interruption de programme en appuyant simultanément sur <key>Ctrl</key> + <key>c</key>
 +
 +===== 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
 +
 +<code>
 +[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
 +</code>
 +
 +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 =====
 +<code>
 +# 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
 +</code>