Plugin ZigbeeLinker (Jeedom) : FAQ

Sommaire

Contactez-moi

Si après avoir fait toutes ces vérifications, vous n’arrivez pas à faire fonctionner ZigbeeLinker, contactez moi ici : https://community.jeedom.com/u/mrgreen/summary
Cliquez sur Message en haut à droite. Et expliquez moi votre problème.

Comment taper des lignes SSH

Dans les FAQ, vous trouverez souvent : en ssh, tapez …
Comment faire :
Dans Jeedom, allez le menu Réglages -> Système -> Configuration
Onglet _>OS/DB, bouton_>Administration Système

Tapez le code dans la zone que j’ai souligné en rouge, et cliquez sur OK

Liste des adaptateurs compatibles.

Zigbee2MQTT est développé pour utiliser un adaptateur USB ou Série.
Voici la liste des adaptateurs actuellement compatibles : https://www.zigbee2mqtt.io/information/supported_adapters.html

Démon NOK ou non stable

Vérifier la configuration de l’adaptateur USB

Dans le menu Configuration du plugin, pour une clé :

ConbeeII

Adaptateur : Conbee II
Port : Non Utilisé

CC2531

Adaptateur : Non Utilisé
Port : /dev/ttyACM0 (ou ACM1 etc…)

Zigate

Adaptateur : Zigate
Port : /dev/ttyUSB0 (ou USB1 etc…)

Popp Elelabs

Adaptateur : EZSP (EFR32/MGM)
Port : /dev/ttyUSB0 (ou USB1 etc…)
Raspberry PI : Branchez la clé sur un Hub USB autoalimenté et en Port USB2 du RPI.

Mise à jour du Firmware

Mise en garde

ATTENTION ces manipulations comportent des risques ! Vous pouvez endommager votre clé USB. Ne faites ces manipulations que si vous êtes sûr de ce que vous faite !

Page de la liste des firmwares

Passez le Firmware de votre adaptateur (USB) en dernière version. Le github de Zigbee2MQTT est super bien fait pour cela.
La plus part des mises à jour sont sur cette page : https://www.zigbee2mqtt.io/information/supported_adapters.html
Il y a une colonne « Flashing ».

Firmware Clé Popp Elelabs (EZSP)

Mettre à jour le firmware, avec Putty:
(git sources : https://github.com/Elelabs/elelabs-zigbee-ezsp-utility et https://github.com/zha-ng/EZSP-Firmware/)

sudo git clone https://github.com/Elelabs/elelabs-zigbee-ezsp-utility.git ~/ezsp/
cd ~/ezsp/
sudo pip3 install -r requirements.txt
Trouver le port usb /dev/ttyUSB0 ou /dev/ttuACM0
sudo ls -l /dev/serial/by-id

Résultat :

lrwxrwxrwx 1 root root 13 May  4 18:48 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0

Généralement, la clé se nomme « usb-1a86_USB_Serial », le port est donc ttyUSB0. Le nom complet du port est donc /dev/ttyUSB0

Effectuer les vérifications :

sudo python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0

Si le résultat ressemble à cela :

root@raspberrypi:/tmp/ezsp# sudo python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 501, in read
    'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "Elelabs_EzspFwUtility.py", line 526, in <module>
    elelabs.probe()
  File "Elelabs_EzspFwUtility.py", line 307, in probe
    ezsp_status = ezsp.initEzspProtocol()
  File "Elelabs_EzspFwUtility.py", line 286, in initEzspProtocol
    ash_status = self.ash.sendResetFrame()
  File "Elelabs_EzspFwUtility.py", line 178, in sendResetFrame
    status, response = self.getResponse()
  File "Elelabs_EzspFwUtility.py", line 153, in getResponse
    receivedbyte = self.serial.read()
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 509, in read
    raise SerialException('read failed: {}'.format(e))
serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

Ce n’est pas bon. Vérifiez que vous avez arrêté le démon de ZigbeeLinker, car apparemment il utilise la clé, et elle ne peut pas être interrogée.

Voici le type de résultat attendu :

root@raspberrypi:/root/ezsp# sudo python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
2021/05/04 20:24:29 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:24:29 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:24:29 Elelabs_EzspFwUtility:   Firmware: 6.0.3-64
2021/05/04 20:24:29 Elelabs_EzspFwUtility:   EZSP v6

Si vous êtes en Elelabs_EzspFwUtility: EZSP v6, on va basculer en V8 (sinon ignorez cette étape.

sudo python3 Elelabs_EzspFwUtility.py ele_update -v v8 -p /dev/ttyUSB0

Le résultat doit-être le suivant :

root@raspberrypi:~/ezsp# sudo python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
2021/05/04 20:48:16 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:48:16 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:48:16 Elelabs_EzspFwUtility:   Firmware: 6.0.3-64
2021/05/04 20:48:16 Elelabs_EzspFwUtility:   EZSP v6
root@raspberrypi:~/ezsp# sudo python3 Elelabs_EzspFwUtility.py ele_update -v v8 -p /dev/ttyUSB0
2021/05/04 20:48:35 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:48:35 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:48:35 Elelabs_EzspFwUtility:   Firmware: 6.0.3-64
2021/05/04 20:48:35 Elelabs_EzspFwUtility:   EZSP v6
2021/05/04 20:48:36 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:48:36 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:48:36 Elelabs_EzspFwUtility:   Firmware: 6.0.3-64
2021/05/04 20:48:36 Elelabs_EzspFwUtility:   EZSP v6
2021/05/04 20:48:36 Elelabs_EzspFwUtility:   Launch in bootloader mode
2021/05/04 20:48:42 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2021/05/04 20:48:42 Elelabs_EzspFwUtility:   Gecko Bootloader v1.A.0
2021/05/04 20:48:43 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
....
2021/05/04 20:49:20 Elelabs_EzspFwUtility:   Firmware upload complete
2021/05/04 20:49:20 Elelabs_EzspFwUtility:   Rebooting NCP...
2021/05/04 20:49:27 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:49:27 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:49:27 Elelabs_EzspFwUtility:   Firmware: 6.7.0-149
2021/05/04 20:49:27 Elelabs_EzspFwUtility:   EZSP v8

On vérifie que la clé USB n’est pas restée dans le bootloader :

sudo python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0

Le résultat doit-être

root@raspberrypi:~/ezsp# python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
2021/05/04 20:50:42 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 20:50:42 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 20:50:42 Elelabs_EzspFwUtility:   Firmware: 6.7.0-149
2021/05/04 20:50:42 Elelabs_EzspFwUtility:   EZSP v8

Si vous n’avez pas ce résultat et que la dernière ligne contient « Bootloader » comme ci-dessous :

root@raspberrypi:~/ezsp# python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
2021/05/04 20:53:42 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2021/05/04 20:53:42 Elelabs_EzspFwUtility:   Gecko Bootloader v1.A.0

Laissez cette commande pour switcher en mode normal :

sudo python3 Elelabs_EzspFwUtility.py restart -m nrml -p /dev/ttyUSB0

Si et seulement si vous êtes en Chipset EFR32MG13 (clé domadoo par exemple) : Téléchargez et installez le firmware conseillé par Zigbee2MQTT :

wget https://github.com/zha-ng/EZSP-Firmware/raw/master/Elelabs-ELU013/efr32mg13p-v8-6780-sw-115200.gbl

sudo python3 Elelabs_EzspFwUtility.py flash -f efr32mg13p-v8-6780-sw-115200.gbl -p /dev/ttyUSB0

Le résultat doit-être le suivant :

root@raspberrypi:~/ezsp# sudo python3 Elelabs_EzspFwUtility.py flash -f efr32mg13p-v8-6780-sw-115200.gbl -p /dev/ttyUSB0
2021/05/04 21:10:24 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 21:10:24 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 21:10:24 Elelabs_EzspFwUtility:   Firmware: 6.7.0-149
2021/05/04 21:10:24 Elelabs_EzspFwUtility:   EZSP v8
2021/05/04 21:10:24 Elelabs_EzspFwUtility:   Launch in bootloader mode
2021/05/04 21:10:30 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2021/05/04 21:10:30 Elelabs_EzspFwUtility:   Gecko Bootloader v1.A.0
2021/05/04 21:10:31 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....

2021/05/04 21:11:09 Elelabs_EzspFwUtility:   Firmware upload complete
2021/05/04 21:11:09 Elelabs_EzspFwUtility:   Rebooting NCP...
2021/05/04 21:11:16 Elelabs_EzspFwUtility:   Elelabs adapter detected:
2021/05/04 21:11:16 Elelabs_EzspFwUtility:   Adapter: ELR023
2021/05/04 21:11:16 Elelabs_EzspFwUtility:   Firmware: 6.7.8-117
2021/05/04 21:11:16 Elelabs_EzspFwUtility:   EZSP v8

Cette ligne permet de vérifier la version : Elelabs_EzspFwUtility: Firmware: 6.7.8-117

Plugin et dépendances à jour

Vérifiez que vous êtes sur la dernière version du plugin : Dans Jeedom, menu Réglages -> Système -> Centre de mise à jour
Cliquez sur le bouton Vérifier les mises à jour, puis vérifiez que le plugin id « zigbee2mqtt » est bien en OK vert

sinon lancez la mise à jour en cliquant sur Mettre à jour sur la même ligne :

Ensuite, allez dans la configuration du plugin, et cliquez sur Relancer dans le cadre des dépendances :

Désactiver les autres Plugin utilisant l’adaptateur

Un adaptateur USB n’est utilisable que par un seul logiciel. Pensez à arrêter le démon des autres plugins pouvant utiliser votre adaptateur Zigbee, puis désactivez le plugin. Pour cela allez dans la configuration du plugin en question, et cliquez sur désactiver :

Puis arrêtez le démon :

Et pour finir désactivez le plugin :

Factory reset

Vous passez d’un autre plugin à ZigbeeLinker, ou vous venez de recevoir votre clé. Faite un factory reset (selon la clé USB, la procédure est différente : Google est votre ami)

Débrancher / Rebrancher l’adaptateur (USB)

L’adaptateur peut avoir besoin d’un reset (reboot). Débranchez le, attendez bien 1mn, et rebranchez le.

Utilisez un port USB2

Le port USB3 (souvent sur le RPI4) peuvent poser des problèmes. Utilisez l’adaptateur USB sur un port USB2.
Un des problèmes constaté, c’est que la clé conbeeII arrivait à recevoir des données, mais il était impossible de rentrer en mode inclusion (Permit Join) ou d’envoyer des données (activer/désactiver une prise).

Adaptateur USB connecté ?

En ssh, tapez

sudo lsusb

Cette ligne permet d’afficher la liste des équipements USB connecté.

Pour une ConbeeII, il s’agit de la ligne Dresden Elektronik, elle est bien connectée.

Adaptateur USB sous-alimenté: Hub USB autoalimenté

Utilisez la ligne au dessus pour vérifier cela (Adaptateur USB connecté).
On va regarder le nombre à côté de Device. Dans notre cas 43.
Ce n’est pas normal. A chaque déconnection (pour sous-alimentation ou autre problème), le nombre à côté de Device va s’incrémenter. S’il est trop élevé, c’est qu’il y a un problème.
Commencez par mettre la clé sur un hub USB autoalimenté (avec sa propre alimentation), et sur un port USB2.

Voici une petite astuce pour surveiller les déconnexions. En ssh, tapez :

sudo journalctl | grep "USB device number"

Les résultats seront du format :

avril 29 16:50:21 raspberry kernel: usb 1-1.3.4: new full-speed USB device number 42 using xhci_hcd
avril 29 16:50:25 raspberry kernel: usb 1-1.3.4: new full-speed USB device number 43 using xhci_hcd

Cela veut dire qu’un périphérique USB s’est déconnecté puis reconnecté 2 fois et a changé de device number : Problème d’alimentation généralement. Si les déconnexions sont rare, vous pouvez ignorer ces messages.

Utilisation d’une rallonge USB : Eloignez la clé !

Parfois cela aide (si vous n’avez pas encore le Hub USB autoalimenté) à éloigner la clé USB de votre équipement où est installé Jeedom. Par exemple un Raspberry avec son Wifi et Bluetooth intégré peut déranger votre adaptateur USB.

J’ai remarqué cela avec les Raspberry PI et les clés POPP EZSP Elelabs… Si la clé est trop proche du RPI, il est impossible d’appairer de nouveaux équipement. Il faut l’éloigner de 1 bon mètre pour que cela fonctionne à nouveau.

Raspberry

Désactiver ModemManager

Modem Manager est un logiciel de gestion de modem qui peut tenter de déconnecter/connecter les périphériques USB nouvellement connectés. Des problèmes ont étés constastés avec certaines clés USB (dont la conbeeII)

sudo systemctl disable ModemManager
sudo systemctl stop ModemManager
sudo apt-get purge modemmanager

Désactivez le Port série, le SPI, le Bluetooth et le Wifi du RPI

Le Bluetooth et le Wifi du Raspberry peuvent faire des interférences avec l’adaptateur. Une box domotique étant généralement branchée au réseau par cable RJ45, et le Bluetooth étant généralement utilisé via une clé SENA ou autre (le Bluetooth du RPI étant trop faible), on peut désactiver ces deux éléments. En ssh :

sudo systemctl disable wpa_supplicant
sudo systemctl disable bluetooth
sudo systemctl disable hciuart

Il faudra maintenant utiliser un logiciel comme Putty et Winscp pour éditer le fichier /boot/config.txt et placer ces lignes à la fin du fichier :

sudo nano /boot/config.txt
enable_uart=0
dtoverlay=disable-wifi
dtoverlay=disable-bt
dtparam=spi=off
#Ctrl+O pour enregistrer, Ctrl+X pour quitter

Redémarrez votre système après ces modifications

Mettez à jour votre Raspberry

Toujours avec un logiciel tel que Putty :

sudo rpi-update

Répondez Yes et redémarrez. Pour tester que votre RPI est à jour sans avoir eu d’erreur tapez en ssh :

sudo modprobe loop

S’il n’y a aucun message, c’est que tout va bien.

Mettez à jour votre système Linux

En ssh :

sudo apt update
sudo apt upgrade -y

Si des messages apparaissent, il faut les traiter. Par exemple :

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libegl-mesa0 libegl1 libevdev2 libgbm1 libgles2 libinput-bin libinput10 libmtdev1 libqt5gui5 libqt5sql5 libqt5sql
  libwayland-server0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-util0 lib
Veuillez utiliser « apt autoremove » pour les supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Des paquets sont installés et ne sont plus nécessaires, faire :

sudo apt autoremove -y

D’autres messages peuvent aussi bloquer l’installation des paquetages nécessaires au système, voici des commandes de réparation :

sudo apt autoclean
sudo apt clean
sudo apt update
sudo dpkg --configure -a
sudo apt -f install
sudo apt --fix-broken install
sudo apt upgrade -y

Pour terminer lancer à nouveau :

sudo apt upgrade -y

Un résultat propre et correct doit donner cela (sans autre message) :

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Zigbee2MQTT s’est arrêté

Réparer Zigbee2MQTT

Si le démon Zigbee2MQTT est en cause, vous pouvez tenter une réparation du plugin. Pour cela allez dans Configuration du plugin, et cliquez sur le bouton « Réparer Zigbee2MQTT »

Après cette étape, cliquez sur le bouton « Relancer » pour relancer l’installation des dépendances.

Débugger le démarrage de Zigbee2MQTT

Dans le log du démon du plugin ZigbeeLinker, le service Zigbee2MQTT démarre, puis après 30 à 60 secondes, le service s’arrête. Une manipulation permet de lancer le service Zigbee2MQTT à la main et voir les messages d’erreur de celui-ci.
Pour commencer on s’assure qu’aucun process Zigbee2MQTT n’est démarré, pour cela en ssh, tapez :

sudo ps -ef | grep "node index.js" | grep -vE "grep|sh -c" | awk '{print $2}' | sudo xargs pwdx | grep "/opt/zigbee2mqtt" | awk -F: '{ st = index($0,":");print $1 }' | xargs sudo kill -9 $1

Des messages d’erreurs peuvent êtres affichés, on les ignores.
De suite après cette commande, tapez :

cd /opt/zigbee2mqtt && sudo ZIGBEE2MQTT_DATA="/var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt/" npm start

Après quelques secondes (30 secondes maximum), des messages vont s’afficher. S’ils ne s’affichent pas et que Jeedom reste en attente, c’est que Zigbee2MQTT a démarré normalement (ce n’était pas nécessaire de faire cette commande et vous devez redémarrer le démon du plugin).
Voici un exemple de résultat :

> zigbee2mqtt@1.18.2 start /opt/zigbee2mqtt
> node index.js

·[32mZigbee2MQTT:info ·[39m 2021-04-30 17:15:42: Logging to console and directory: '/var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt/log/2021-04-30.17-15-41' filename: log.txt
·[32mZigbee2MQTT:info ·[39m 2021-04-30 17:15:42: Starting Zigbee2MQTT version 1.18.2 (commit #abd8a092)
·[32mZigbee2MQTT:info ·[39m 2021-04-30 17:15:42: Starting zigbee-herdsman (0.13.88)
·[31mZigbee2MQTT:error·[39m 2021-04-30 17:15:48: Error while starting zigbee-herdsman
·[31mZigbee2MQTT:error·[39m 2021-04-30 17:15:48: Failed to start zigbee
·[31mZigbee2MQTT:error·[39m 2021-04-30 17:15:48: Check https://www.zigbee2mqtt.io/information/FAQ.html#help-zigbee2mqtt-fails-to-start for possible solutions
·[31mZigbee2MQTT:error·[39m 2021-04-30 17:15:48: Exiting...
·[31mZigbee2MQTT:error·[39m 2021-04-30 17:15:48: Error: failed to connect to zigate adapter [object Object] after 5000ms
    at ZiGateAdapter. (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/zigate/adapter/zigateAdapter.js:79:23)
    at Generator.throw ()
    at rejected (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/zigate/adapter/zigateAdapter.js:25:65)
    at runNextTicks (internal/process/task_queues.js:58:5)
    at listOnTimeout (internal/timers.js:523:9)
    at processTimers (internal/timers.js:497:7)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.18.2 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.18.2 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-04-30T15_15_48_185Z-debug.log

Le message qui nous intéresse est toujours après la ligne Exiting…
Voici donc le message d’erreur important :
Error: failed to connect to zigate adapter [object Object] after 5000ms
On constate que Zigbee2MQTT n’arrive pas à communiquer avec l’adaptateur USB. Il faut vérifier qu’il est bien connecté, et mis à jour avec le bon firmware etc…

Impossible de démarrer le service Client MQTT

Pour une installation complète sur la même machine, essayez en mettant localhost dans votre client MQTT dans le champ « IP du serveur ».

Pour d’autres installations où le serveur MQTT n’est pas installé en local, mettez l’adresse IP dans ce champ, et ouvrez le port 1883 (Port par défaut pour MQTT).

Lenteur ou impossibilité de piloter une prise/ampoule/autres

Débrancher / Rebrancher l’adaptateur (USB)

L’adaptateur peut avoir besoin d’un reset (reboot). Débranchez le, attendez bien 1mn, et rebranchez le.
Attendez 10mn ou redémarrez le démon du plugin (dans Configuration).

Généralement quand ce symptôme est présent, le plugin reçoit des données mais a du mal à envoyer des données (on reçoit les températures des capteurs, mais on arrive pas à piloter une prise, ou difficilement).

Impossible de lancer l’inclusion,

Débrancher / Rebrancher l’adaptateur (USB)

L’adaptateur peut avoir besoin d’un reset (reboot). Débranchez le, attendez bien 1mn, et rebranchez le.
Attendez 10mn ou redémarrez le démon du plugin (dans Configuration).

Lenteurs au démarrage

Symptômes : Au démarrage du démon, l’interface Zigbee2MQTT n’est pas disponible, et il faut attendre avant de pouvoir y accéder.

Aussi, certains équipements peuvent mettre du temps à être utilisables.

Vérifiez que l’option Report est à false dans /var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt/configuration.yaml :

advanced:
  report: false

Cette option n’est plus utilisée, et surtout dès le démarrage du réseau, elle risque de le saturer en essayant de paramétrer le reporting sur les modules.

Zigbee2MQTT ne veut plus passer en Permit Join et impossible de charger la liste des équipements dans l’interface Zigbee2MQTT (:8080)

Vérifiez le fichier de configuration

Le fichier de configuration de Zigbee2MQTT peut-être bugué.
Par défaut le fichier se trouve dans cet emplacement :

/var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt/configuration.yaml

Voici un exemple de contenu :

homeassistant: false
permit_join: false
mqtt:
  base_topic: z2mMaison
  server: 'mqtt://192.168.1.100:1883'
  user: jeedom
  password: jeedom
  include_device_information: true
  keepalive: 60
  reject_unauthorized: true
  version: 4
serial:
  adapter: deconz
frontend:
  port: 8080
  host: 192.168.1.100
devices:
  '0x00158d0003d2c1da':
    friendly_name: Interrupteur
  '0xec1bbdfffeb9bb18':
    friendly_name: Prise
groups:
  '1':
    friendly_name: Mon groupe
    devices:
      - 0xec1bbdfffeb9bb18/1

Vérifiez qu’il n’y ait rien de plus en haut et en bas du fichier (des  »’ ou — par exemple). Supprimez ces lignes inutiles.

Il m’est arrivé de voir une ligne groups: [ ] (ou équivalente).
Si votre système ne contient pas de groupes, supprimez ces lignes. (cela bloque tout)

Interface loading please wait…

Ce message apparaît dans l’interface Zigbee2MQTT (:8080) et est suivi d’un message d’erreur.
Vérifiez tout d’abord votre fichier de configuration comme expliqué juste au dessus.

Désactivez Adblock ou tout bloqueur de popup.

Veuillez exécuter le script : /bin/bash /var/www/html/plugins/zigbee2mqtt/core/class/…

Votre Jeedom n’a pas les droits pour exécuter les scripts. En ssh exécutez les commandes :

sudo su - root
echo "www-data ALL=(ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)
echo "jeedom ALL=(ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)

Puis relancez les dépendances.

Mon équipement ne veut pas s’inclure, ou il est mal inclus (interview incomplet)

Débranchez / rebranchez le contrôleur (la clé usb)

Débranchez la clé USB, attendez 1mn et rebranchez la clé USB. Puis patientez quelques minutes que Zigbee2MQTT se reconnecte à la clé. Vous pouvez alors relancer un Permit Join.

Branchez en port USB2

Préférez le port USB2 surtout sur un Rapsberry.

Eloignez le contrôleur (la clé usb)

N’hésitez pas à éloigner la clé USB de 1 mètre minimum de votre box Jeedom.

Rapprocher l’équipement du contrôleur

Sans supprimer l’équipement, refaites une procédure d’inclusion, mais en rapprochant l’équipement à inclure à 1 à 2 mètres de votre contrôleur USB (de votre Box Jeedom généralement)

Les piles

Vérifiez que les piles de l’équipement sont à 100% !

J’ai inclu un équipement, il a fonctionné, mais maintenant il ne renvoie plus de données.

Les piles !

Changez les piles avant tout (ou vérifiez la charge).

Relancez une inclusion

Directement dans l’interface Zigbee2MQTT, cliquez en haut à droite sur Permit Join (il n’est pas nécessaire de supprimer votre équipement avant cela). Et relancez la procédure d’inclusion de votre équipement.

Le réseau Zigbee

Les routeurs, indispensables !

Un routeur, c’est tout simplement un élément directement connecté à votre réseau électrique. Cela peut-être une ampoule, une prise, interrupteur sur secteur, une sirène ou tout simplement un répéteur.

Ma version pour avoir un réseau stable (et chacun aura la sienne) :
Si votre réseau dépasse les 10 équipements, il vous faut des routeurs !
1 équipement à pile doit-être à moins de 10 mètres sans mur d’un routeur.
Si vous avez des murs, divisé la distance par le nombre de murs (bon sans parler des murs de 50cm… on oublie)
Dans ces règles, 1 équipement à pile doit pouvoir accéder à 2 routeurs minimums.

Pensez aussi à une chose : Une ampoule est un bon routeur si elle est tout le temps alimentée (une ampoule derrière un interrupteur qui coupe l’électricité n’est pas un bon routeur).

L’inclusion

Commencez par inclure vos équipements sur secteur.
Puis lancez l’inclusion de vos équipements à pile.

La force de Zigbee2MQTT est que vous pouvez inclure vos équipements à pile directement sur un routeur (option disponible en haut à droite de l’interface de Zigbee2MQTT)

Pour inclure un équipement, placez vous entre 1 et 2 mètres de point d’inclusion (prise/ampoule/adaptateur USB).
Cliquez sur Permit Join dans Zigbee2MQTT ou sur Activer l’inclusion dans le plugin ZigbeeLinker.
Lancez la procédure d’inclusion sur l’équipement et lorsque celui-ci signale que l’inclusion est faite, cliquez toutes les 5 secondes sur le bouton d’inclusion pour réveiller l’équipement (5 ou 6 fois). Ceci permet d’avoir une interview complète.
Ne soyez pas pressé. Laissez le module posé à moins de 2 mètres du point d’inclusion pendant 5mn.

La map

Une option Map -> Load Map existe dans Zigbee2MQTT, mais elle est assez perturbante car souvent aucun lien n’existe ou alors très peu.

Ne vous en occupez pas. Laissez le système travailler doucement : Si ça fonctionne, ne touchez à rien !