informatique:applications:zigbee2mqtt

zigbee2mqtt

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

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 :

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

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
# 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
  • informatique/applications/zigbee2mqtt.txt
  • Dernière modification : 2024/06/22 19:27
  • de Cédric ABONNEL