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

183 lines
5.2 KiB
Plaintext
Raw Permalink Normal View History

2024-01-07 10:02:35 +01:00
====== 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>