abonnel-siteweb/data/pages/informatique/applications/zigbee2mqtt.txt

183 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== 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 seffectuera 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>