190 lines
5.1 KiB
Markdown
190 lines
5.1 KiB
Markdown
# zigbee2mqtt
|
||
|
||

|
||
|
||
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`
|
||
|
||

|
||
|
||
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 <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
|
||
|
||
```
|
||
[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
|
||
``` |