Wiren BoardDocumentation
Documentation · Français

Configuration et dépannage de Zigbee

révision 108432

Description

Pour utiliser des appareils Zigbee avec un contrôleur Wiren Board, il vous faut :

  1. Module d’extension WBE2R-R-ZIGBEE v.2 (WBE2R-R-ZIGBEE v.1) ou une clé USB Zigbee.
  2. Logiciels supplémentaires :

Les instructions d’installation figurent ci-dessous.

Copiez les commandes de ces instructions, collez-les dans la console du contrôleur à l’aide de Shift+Insert et exécutez-les en appuyant sur Enter. En cas d’erreur, lisez attentivement la sortie pour y trouver des instructions et des indications.

Installation et configuration de zigbee2mqtt

Procédure d’installation

Le paquet zigbee2mqtt de la version stable peut être plus ancien que la version amont. La dernière version est toujours disponible dans la version testing.

Nous recommandons d’installer un paquet précompilé depuis notre dépôt. Deux paquets sont disponibles :

  • zigbee2mqtt — la dernière version ; recommandée.
  • zigbee2mqtt-1.18.1 — pour les anciens adaptateurs WBE2R-R-ZIGBEE v.1 fabriqués avant janvier 2022. Tableau des révisions.

Pour installer la dernière version, exécutez :

apt update && apt install zigbee2mqtt

Pour installer la version 1.18.1, nécessaire pour les révisions v1.1A–v1.2D de Zigbee v1, exécutez :

apt update && apt install zigbee2mqtt-1.18.1

Pour installer la version 2.1.1 pour les révisions v1.2D/2, v1.2E et v1.2F de Zigbee v1, exécutez :

apt update && apt install zigbee2mqtt-2.1.1

Vous pouvez également compiler le logiciel à partir du code source en suivant les instructions.

Configurez ensuite la passerelle ; consultez Configuration.

Configuration du démarrage automatique

Après l’installation du paquet, zigbee2mqtt démarre automatiquement au démarrage du contrôleur. Utilisez ces commandes pour désactiver ou activer le démarrage automatique :

systemctl disable zigbee2mqtt
systemctl enable zigbee2mqtt

Configuration

Si vous utilisez le module d’extension WBE2R-R-ZIGBEE, vérifiez que le bon module est sélectionné dans l’interface web Settings → Configs → Hardware Modules Configuration.

Nom du port :

  • avec le module d’extension WBE2R-R-ZIGBEE, le port est nommé /dev/ttyMODx, où x est le numéro du port ;
  • avec une clé USB, le port est nommé /dev/ttyUSBx, où x est le numéro du port, à partir de zéro.
  • Numérotation des ports des modules d’extension (WB 6.7–8.4)
    Numérotation des ports des modules d’extension (WB 6.7–8.4)
  • Numérotation des ports des modules d’extension (WB 8.5, 8M)
    Numérotation des ports des modules d’extension (WB 8.5, 8M)
  • Configuration :

    1. Ouvrez le fichier de configuration pour le modifier (référence complète des paramètres en anglais):
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
      Le fichier de configuration par défaut se présente ainsi :
      homeassistant: false
      permit_join: false
      mqtt:
        base_topic: zigbee2mqtt
        server: 'mqtt://localhost'
      serial:
        port: /dev/ttyMOD4
        adapter: zstack
      advanced:
        rtscts: false
        last_seen: epoch
        channel: 11
        pan_id: GENERATE
        network_key: GENERATE
      ota:
          image_block_response_delay: 50
          default_maximum_data_size: 60
      
    2. Modifiez les paramètres nécessaires :
      • Le paramètre port indiquez le connecteur dans lequel le module est physiquement installé. Si le bon port est déjà indiqué, laissez le fichier inchangé.
      • Après le premier démarrage de la passerelle, des valeurs remplacent GENERATE ; ne les modifiez pas . Si vous les modifiez, mettez à jour ou supprimez la sauvegarde.
    3. Cliquez sur Ctrl+S pour enregistrer les modifications, Ctrl+X — pour quitter l’éditeur.
    4. Redémarrez le service zigbee2mqtt:
      systemctl restart zigbee2mqtt
      

    Vous pouvez maintenant installer le convertisseur, et les appareils Zigbee apparaîtront dans l’onglet Devices de l’interface web standard du contrôleur.


    Problèmes possibles :

    • Si vous sélectionnez un numéro de connecteur incorrect pour le module d’extension Zigbee dans l’interface web, le journal affichera cette erreur : z2m: Error: Error: Input/output error setting custom baud rate of 115200

    Exemple de journal :

    # journalctl -u zigbee2mqtt --no-pager -n 30
    
    May 12 13:53:25 wirenboard-AQLNJER2 systemd[1]: Started zigbee2mqtt.
    May 12 13:53:25 wirenboard-AQLNJER2 npm[27834]: > zigbee2mqtt@2.1.1 start
    May 12 13:53:25 wirenboard-AQLNJER2 npm[27834]: > node index.js
    May 12 13:53:26 wirenboard-AQLNJER2 npm[27846]: Starting Zigbee2MQTT without watchdog.
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info:         z2m: Logging to console, file (filename: log.log)
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info:         z2m: Starting Zigbee2MQTT version 2.1.1 (commit #unknown)
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info:         z2m: Starting zigbee-herdsman (3.2.5)
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info:         zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyMOD3","baudRate":115200,"rtscts":false,"autoOpen":false}
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error:         z2m: Error while starting zigbee-herdsman
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error:         z2m: Failed to start zigbee-herdsman
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error:         z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error:         z2m: Exiting...
    May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error:         z2m: Error: Error: Input/output error setting custom baud rate of 115200
    May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
    May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
    May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 10.578s CPU time.
    May 12 13:54:22 wirenboard-AQLNJER2 systemd[1]: Stopped zigbee2mqtt.
    May 12 13:54:22 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 10.578s CPU time.
    

    Interface web (frontend)

    Illustration de la configuration et du dépannage de Zigbee
    Interface zigbee2mqtt

    L’interface web de zigbee2mqtt utilise un port distinct et peut présenter un risque de sécurité — ne l’activez pas si vous ne l’utilisez pas : les appareils peuvent être ajoutés et supprimés via notre convertisseur.

    Disponible dans la version testing L’accès à l’interface web peut être protégé par l’authentification des utilisateurs du contrôleur. Consultez Services tiers dans l’interface web de Wiren Board.

    Si vous avez besoin de l’interface web native de zigbee2mqtt, activez-la dans le fichier de paramètres :

    1. Ouvrez le fichier configuration.yaml pour le modifier :
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Ajoutez ce bloc :
      frontend:
        enabled: true
        port: 8081
        host: 0.0.0.0
      
    3. Enregistrez et fermez le fichier.
    4. Redémarrez le service zigbee2mqtt:
      systemctl restart zigbee2mqtt
      

    L’interface web de la passerelle zigbee2mqtt sera accessible à l’adresse http://wb-ip-address:PORT. Par exemple, si l’adresse IP du contrôleur est 192.168.42.1et que le port configuré est 8081, l’interface web sera accessible à l’adresse http://192.168.42.1:8081.

    Accès via le cloud

    L’interface web de zigbee2mqtt est également accessible depuis l’extérieur du réseau local. Si le contrôleur est connecté à Wiren Board Cloud, cliquez sur Services sur la page du contrôleur et ajoutez Zigbee2MQTT. Un bouton apparaîtra pour ouvrir l’interface depuis tout appareil connecté à votre compte cloud.

    Vérification de l’état

    Deux méthodes permettent de vérifier si z2m a démarré correctement :

    1) Vérifiez brièvement son état de fonctionnement.

    Voici une sortie normale, sans erreur :

    # systemctl status zigbee2mqtt
    ● zigbee2mqtt.service - zigbee2mqtt
         Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
         Active: active (running) since Thu 2025-03-06 10:23:02 UTC; 1s ago
       Main PID: 630240 (npm start)
          Tasks: 26 (limit: 2340)
         Memory: 34.0M
            CPU: 2.087s
         CGroup: /system.slice/zigbee2mqtt.service
                 ├─630240 npm start
                 ├─630262 sh -c node index.js
                 └─630263 node index.js
    
    Mar 06 10:23:02 wirenboard-AQLNJER2 systemd[1]: Started zigbee2mqtt.
    Mar 06 10:23:03 wirenboard-AQLNJER2 npm[630240]: > zigbee2mqtt@2.1.1 start
    Mar 06 10:23:03 wirenboard-AQLNJER2 npm[630240]: > node index.js
    

    Remarquez la ligne Active: active (running) since ... et l’absence d’erreurs ou d’avertissements.

    Si vous avez indiqué un numéro de connecteur de module incorrect à l’étape précédente, la sortie ressemblera à ceci :

    # systemctl status zigbee2mqtt
    ● zigbee2mqtt.service - zigbee2mqtt
         Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
         Active: activating (auto-restart) (Result: exit-code) since Thu 2025-03-06 10:19:33 UTC; 5s ago
       Main PID: 628249 (code=exited, status=1/FAILURE)
          Tasks: 0 (limit: 2340)
         Memory: 0B
            CPU: 0
         CGroup: /system.slice/zigbee2mqtt.service
    

    La ligne PID ci-dessus indique une erreur : Main PID: 628249 (code=exited, status=1/FAILURE).

    2) Examinez en détail le journal de zigbee2mqtt.

    # journalctl -u zigbee2mqtt --no-pager -n 30
    -- Journal begins at Tue 2025-03-04 16:14:09 UTC. --
    Mar 06 14:17:00 wirenboard-AQLNJER2 npm[27126]: [2025-03-06 14:17:00] error:         z2m: Exiting...
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: [2025-03-06 14:17:01] error:         z2m: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]:     at ZStackAdapter.start (/mnt/data/root/zigbee2mqtt/node_modules/.pnpm/zigbee-herdsman@3.2.5/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:113:27)
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]:     at Controller.start (/mnt/data/root/zigbee2mqtt/node_modules/.pnpm/zigbee-herdsman@3.2.5/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]:     at Zigbee.start (/mnt/data/root/zigbee2mqtt/lib/zigbee.ts:69:27)
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]:     at Controller.start (/mnt/data/root/zigbee2mqtt/lib/controller.ts:142:13)
    Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]:     at start (/mnt/data/root/zigbee2mqtt/index.js:161:5)
    Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
    Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
    Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 14.449s CPU time.
    Mar 06 14:18:19 wirenboard-AQLNJER2 systemd[1]: Stopped zigbee2mqtt.
    ...
    

    Des problèmes et des erreurs au démarrage peuvent empêcher les démarrages ultérieurs du service. Dans ce cas, la commande suivante permet de réinitialiser les erreurs :

    # systemctl reset-failed zigbee2mqtt.service
    

    Par exemple, cela peut aider à résoudre l’erreur suivante après une modification du numéro de port dans les paramètres de z2m :

    # systemctl restart zigbee2mqtt
    Job for zigbee2mqtt.service failed because the control process exited with error code.
    See "systemctl status zigbee2mqtt.service" and "journalctl -xe" for details.
    # systemctl reset-failed zigbee2mqtt.service
    # systemctl restart zigbee2mqtt
    

    Mise à jour

    Pour mettre à jour zigbee2mqtt vers la dernière version, mettez à jour le logiciel du contrôleur en suivant les instructions. Tous les paramètres et les appareils appairés seront conservés.

    Si vous possédez un ancien adaptateur WBE2R-R-ZIGBEE v.1fabriqué avant janvier 2022, la nouvelle version ne fonctionnera pas. Trois possibilités s’offrent à vous :

    Réglage de la puissance d’émission

    La puissance d’émission par défaut est de 9 dBm. Pour l’augmenter (valeurs disponibles : 0…20 dBm) :

    1. Ouvrez le fichier configuration.yaml pour le modifier :
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Ajoutez au bloc advanced:
      advanced:
        transmit_power: 20
      
    3. Enregistrez et fermez le fichier.
    4. Redémarrez le service zigbee2mqtt:
      systemctl restart zigbee2mqtt
      


    Convertisseur wb-mqtt-zigbee

    Disponible depuis la version wb-2606

    Description

    Illustration de la configuration et du dépannage de Zigbee
    Appareil Zigbee dans l’onglet Devices — l’en-tête affiche le friendly_name

    wb-mqtt-zigbee est le nouveau convertisseur qui associe les données zigbee2mqtt aux topics des appareils virtuels. Il affiche les appareils Zigbee dans l’interface web du contrôleur Wiren Board et permet de les commander.

    Le convertisseur traduit les noms des commandes des appareils Zigbee wb-mqtt-zigbee en russe à l’aide de son propre dictionnaire. Si le nom d’une commande reste en anglais, il ne figure pas encore dans le dictionnaire. Contactez-nous via le portail d’assistance technique, et nous ajouterons la traduction dans une prochaine mise à jour.

    Principe de fonctionnement

    Zigbee2mqtt se connecte au coordinateur Zigbee, découvre les appareils et publie toutes les informations sur le broker MQTT. L’espace de noms des topics est configuré dans la configuration de zigbee2mqtt (/mnt/data/root/zigbee2mqtt/data/configuration.yaml, paramètre base_topic), et sa valeur par défaut est zigbee2mqtt. Le convertisseur effectue ensuite les opérations suivantes :

    1. Il s’abonne aux topics zigbee2mqtt/ et reçoit l’état de la passerelle, la liste des appareils, les journaux et les événements.
    2. Il crée des appareils WB virtuels dans /devices/ — en publiant les métadonnées (/meta) et les valeurs des commandes conformément aux conventions MQTT de WB.
    3. Il relaie les commandes en sens inverse : lorsqu’un utilisateur sélectionne une valeur dans une liste déroulante, déplace un curseur ou actionne un interrupteur dans l’interface web du contrôleur, le service reçoit une commande de /devices/.../on et publie la requête correspondante dans zigbee2mqtt/bridge/request/....

    Le schéma ci-dessous montre le flux de données via le broker MQTT (mosquitto) : les topics zigbee2mqtt à gauche et les topics du contrôleur Wiren Board à droite. Les flèches sont bidirectionnelles : les états des appareils circulent de gauche à droite, les commandes de droite à gauche.

    Illustration de la configuration et du dépannage de Zigbee
    Flux de données via le convertisseur wb-mqtt-zigbee

    Installation

    Attention : l’installation du nouveau convertisseur peut perturber le fonctionnement des scripts personnalisés wb-rules, notamment lorsque les règles utilisaient la valeur de chaîne ONet utilisent maintenant la valeur booléenne 1 pour un interrupteur. wb-mqtt-zigbee est installé automatiquement avec le paquet zigbee2mqttsi wb-zigbee2mqttn’était pas déjà installé. Sinon, installez-le avec :

    apt update && apt install wb-mqtt-zigbee
    

    L’interface web standard du contrôleur affichera ensuite l’appareil Zigbee2MQTT dans l’onglet Devices.

    Ajout d’appareils

    Illustration de la configuration et du dépannage de Zigbee
    Ajout d’un appareil ; dernier appareil appairé '0xa4c1385da71ff53c'

    Les appareils peuvent être ajoutés séparément ou ensemble. Pour ajouter de nouveaux appareils :

    1. Ouvrez l’interface web du contrôleur et sélectionnez l’onglet Devices.
    2. Recherchez le widget de l’appareil Zigbee2MQTT et vérifiez son état dans le champ State. Il doit indiquer online. Si zigbee2mqtt vient d’être installé, attendez quelques minutes.
    3. Activez l’interrupteur Permit join.
    4. Suivez les instructions de l’appareil Zigbee : en général, maintenez son bouton pair enfoncé pendant quelques secondes et attendez que le voyant clignote.
    5. Pendant l’ajout d’un appareil, le champ Last joined du widget Zigbee2MQTT affiche l’adresse IEEE de l’appareil (par exemple 0xa4c1385da71ff53c), et le nombre d’appareils augmente de un pour chaque appareil ajouté.
    6. Répétez les étapes 4 et 5 pour chaque appareil Zigbee.
    7. Terminez l’ajout d’appareils en désactivant Permit join.

    Modification de friendly_name

    friendly_name est un nom d’appareil défini par l’utilisateur. Conservez le nom par défaut ou définissez le vôtre :

    1. Ouvrez le fichier de configuration pour le modifier :
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Recherchez, dans la section devices votre appareil.
    3. Variation friendly_name.
    4. Enregistrez le fichier de configuration et redémarrez le service :
      systemctl restart zigbee2mqtt
      
    5. Un appareil portant le nom spécifié doit apparaître dans l’onglet Devices.
    6. Supprimez le widget portant l’ancien nom en cliquant sur l’icône de corbeille dans son en-tête.

    Le nouveau nom doit être unique pour chaque appareil, ne doit pas contenir de barre oblique / et doit respecter les exigences du paramètre et le conventions MQTT de Wiren Board.

    Commande d’un appareil

    Illustration de la configuration et du dépannage de Zigbee
    Exemples de commandes d’appareil : un interrupteur et une liste déroulante

    Les appareils sont pilotés à l’aide de commandes standard : interrupteurs ou listes déroulantes.

    Suppression d’appareils

    1. Vérifiez que, dans le widget de l’appareil Zigbee2MQTT , l’interrupteur Permit join est désactivé.
    2. Désappairez l’appareil du coordinateur. Cela nécessite généralement de maintenir son bouton d’appairage enfoncé pendant 5 secondes ; consultez la documentation de l’appareil.
    3. Vérifiez que, dans l’appareil Zigbee2MQTT widget affiche dans son champ , le champ Last removed affiche le nom de l’appareil en cours de suppression.
    4. Supprimez le widget de l’appareil Zigbee déconnecté de l’interface web en cliquant sur l’icône de corbeille dans son en-tête.

    Traduction des canaux des appareils

    Disponible depuis la version wb-2609 Les noms des canaux des appareils Zigbee sont affichés dans la langue sélectionnée pour l’interface web.

    Modèle d’appareil

    Disponible depuis la version wb-2609 Pour les nouveaux appareils, le modèle apparaît désormais dans le titre de la carte. Les appareils Zigbee2MQTT disposent également d’un canal Model.

    Dépannage

    En cas de dysfonctionnement de zigbee2mqtt, vérifiez l’état du service et les journaux détaillés. Pour exécuter des commandes, connectez-vous au contrôleur via SSH.

    Pour afficher l’état actuel et les derniers messages du journal, exécutez :

    # systemctl status zigbee2mqtt
    ● zigbee2mqtt.service - zigbee2mqtt
       Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
       Active: activating (auto-restart) (Result: exit-code) since Fri 2022-05-13 10:06:04 +04; 3s ago
      Process: 25986 ExecStart=/usr/bin/npm start (code=exited, status=1/FAILURE)
     Main PID: 25986 (code=exited, status=1/FAILURE)
    
    May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
    May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Unit entered failed state.
    May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
    
    Illustration de la configuration et du dépannage de Zigbee
    Exemple de problèmes au démarrage de zigbee2mqtt avec npm start
    Illustration de la configuration et du dépannage de Zigbee
    Exemple de démarrage réussi de zigbee2mqtt avec npm start

    L’étape précédente révèle souvent un problème sans en identifier la cause. Dans ce cas, examinez les journaux :

    1. Arrêtez le service :
      systemctl stop zigbee2mqtt
      
    2. Accédez au répertoire de zigbee2mqtt :
      cd /mnt/data/root/zigbee2mqtt/
      
    3. Démarrez zigbee2mqtt manuellement, en affichant tous les messages dans la console, avec npm start:
      # npm start
      
       > zigbee2mqtt@1.18.1 start /mnt/data/root/zigbee2mqtt
       > node index.js
      
      Zigbee2MQTT:info  2022-05-13 09:59:30: Logging to console and directory: '/mnt/data/root/zigbee2mqtt/data/log/2022-05-13.09-59-19' filename: log.txt
      Zigbee2MQTT:info  2022-05-13 09:59:30: Starting Zigbee2MQTT version 1.18.1 (commit #unknown)
      Zigbee2MQTT:info  2022-05-13 09:59:30: Starting zigbee-herdsman (0.13.71)
      Zigbee2MQTT:error 2022-05-13 09:59:39: Error while starting zigbee-herdsman
      Zigbee2MQTT:error 2022-05-13 09:59:39: Failed to start zigbee
      Zigbee2MQTT:error 2022-05-13 09:59:39: Exiting...
      Zigbee2MQTT:error 2022-05-13 09:59:39: Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyUSB01'
          at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:136:32)
          at Generator.next (<anonymous>)
          at /mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:27:71
          at new Promise (<anonymous>)
          at __awaiter (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:23:12)
          at SerialPort.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:134:49)
          at SerialPort._error (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:198:14)
          at /mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:242:12
      npm ERR! code ELIFECYCLE
      npm ERR! errno 1
      npm ERR! zigbee2mqtt@1.18.1 start: `node index.js`
      npm ERR! Exit status 1
      npm ERR! 
      npm ERR! Failed at the zigbee2mqtt@1.18.1 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/2022-05-13T05_59_39_596Z-debug.log
      
      Ici, il apparaît immédiatement que le port configuré est incorrect.
    4. Après avoir identifié et corrigé le problème, redémarrez le service :
      systemctl start zigbee2mqtt
      

    Si l’exécution de npm start démarre automatiquement le service avec succès, arrêtez-le en appuyant sur Ctrl+C.

    Il est parfois nécessaire de désactiver le démarrage automatique du service. Utilisez ces commandes pour le contrôler :

    systemctl disable zigbee2mqtt
    systemctl enable zigbee2mqtt
    

    Résolution des problèmes

    La version 1.18.1 ne démarre pas après une mise à jour

    La console affiche :

    Zigbee2MQTT version 1.18.1. Does not accept version node. Zigbee2MQTT requires node version ^10  ^12  ^14 |
    | ^15 || ^16, you are running v20.5.1!
    

    Installez la version précédente du paquet nodejs :

    apt install nodejs=16.20.2-deb-1nodesource1
    

    zigbee2mqtt signale une erreur de module

    Déterminez si le problème provient de zigbee2mqtt, de sa configuration ou du module.

    Vérifiez d’abord que le module est correctement configuré ; consultez la documentation du module d’extension.

    Si la configuration est correcte, testez le module à l’aide du script tiers check-cc2652p:

    1. Téléchargez le script en suivant les instructions du dépôt.
    2. Arrêtez zigbee2mqtt :
      systemctl stop zigbee2mqtt
      
    3. Exécutez la commande en remplaçant le port par le vôtre :
      python3 ./check_cc2652p.py /dev/ttyMOD4
      

    Si la réponse contient les informations de version du micrologiciel et du module, le module fonctionne. Le problème provient donc de zigbee2mqtt : port incorrect ou autre défaillance.

    Exemple de sortie indiquant un succès :

    # python3 ./check_cc2652p.py /dev/ttyMOD4
    SYS Version response detected for CC2652:
    Transport Version: 2
    Product ID: 1 — CC2652 Zigbee Module.
    Major Release: 2
    Minor Release: 7
    Maintenance Release: 1
    Stack Version: 2.7.1 — Indicates Z-Stack compatibility.
    Revision: 6bb1340100 — Firmware Revision Details.
    Additional asynchronous data detected. Skipping:
    Raw data: 81fe0345c4f2dd00ad
    

    Problème lors de la mise à jour de zigbee2mqtt vers la version 2.1.1

    Si zigbee2mqtt ne démarre pas après la mise à jour vers la version 2.1.1 et présente les symptômes suivants :

    > zigbee2mqtt@2.1.1 start
    > node index.js
    node:internal/modules/cjs/loader:1051
      throw err;
      ^
    Error: Cannot find module 'semver'
    Require stack:
    - /mnt/data/root/zigbee2mqtt/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
    

    essayez les étapes suivantes :

    1. Sauvegardez le fichier configuration.yaml.
    2. Supprimez la version actuelle : apt remove zigbee2mqtt.
    3. Dans le fichier configuration.yaml ajoutez le type d’adaptateur adapter à la section serial. Exemple pour notre module :
      serial:
        port: /dev/ttyMOD1
        adapter: zstack
      
    4. Réinstallez le paquet : apt update && apt install zigbee2mqtt.

    Remplacement accidentel du fichier de configuration lors de la mise à jour de zigbee2mqtt vers la version 2.1.1

    Lors de la mise à jour de zigbee2mqtt vers la version 2.1.1 depuis une version antérieure, le système vous demande si vous souhaitez installer un nouveau fichier de configuration ou conserver l’ancien :

    File configuration «/mnt/data/root/zigbee2mqtt/data/configuration.yaml»
     ==> Modified s since installation (by you or by a script).
     ==> The author of the package has supplied an updated version.
      What should be done? The following options are available:
       Y or I : install the version provided by the maintainer of the package
       N or O : keep the installed at the current time version
          D    : show the differences between the versions
          Z    : start a shell command line to inspect the situation
     By default the system keeps the current version file configuration. *** configuration.yaml (Y/I/N/O/D/Z) [by default N] ? y
    

    Si vous avez choisi par erreur de remplacer le fichier et que zigbee2mqtt ne démarre pas en affichant une erreur comme celle-ci :

    zh:adapter:zstack:manager: Configuration is not consistent with adapter state/backup!
    zh:adapter:zstack:manager: - PAN ID: configured=43787, adapter=47905
    zh:adapter:zstack:manager: - Extended PAN ID: configured=00124b0030d540fa, adapter=00124b0030d540fa
    zh:adapter:zstack:manager: - Network Key: configured=d9bf90f96d74b793c1f136ecee3660cf, adapter=ab64f03813fd7cc36c6f3383b7d58ad9
    zh:adapter:zstack:manager: - Channel List: configured=11, adapter=11
    zh:adapter:zstack:manager: Please update configuration to prevent further issues.
    zh:adapter:zstack:manager: If you wish to re-commission your network, please remove coordinator backup at /mnt/data/root/zigbee2mqtt/data/coordinator_backup.json.
    zh:adapter:zstack:manager: Re-commissioning your network will require re-pairing of all devices!
    z2m: Error while starting zigbee-herdsman
    z2m: Failed to start zigbee-herdsman
    

    rétablissez le démarrage et restaurez la configuration supprimée comme suit :

    • Ne supprimez pas le fichier ~/zigbee2mqtt/data/coordinator_backup.json. Sa suppression imposerait d’appairer à nouveau tous les appareils.
    • Arrêtez le service avec systemctl stop zigbee2mqtt.
    • Sauvegardez la configuration existante :
      cp ~/zigbee2mqtt/data/configuration.yaml ~/zigbee2mqtt/data/configuration.yaml-wb-backup
    • Restaurez la configuration précédente :
      cp ~/zigbee2mqtt/data/configuration.yaml.dpkg-old ~/zigbee2mqtt/data/configuration.yaml
    • Vérifiez que le fichier indique le type d’adaptateur : il doit contenir la ligne adapter: zstack. Si elle est absente, ajoutez-la à la section serial.
    • Redémarrez le service avec systemctl restart zigbee2mqtt.

    zigbee2mqtt devrait démarrer avec la configuration qui existait avant la mise à jour.

    Archive de toutes les versions (Pool)

    Cette archive contient tous les paquets z2m, aussi bien les versions de test que les versions publiées. Elle fournit également les dates de publication, que le dépôt normal n’affiche pas. Elles permettent de déterminer quand un bogue ou une fonctionnalité a été introduit dans le système.

    Tous les paquets z2m

    Historique d’une version spécifique (par exemple 2.1.1)

    Objectif : analyser les incidents et retrouver la date de publication d’une compilation précise.

    Version officielle (Packages)

    Il s’agit de la liste approuvée des paquets qu’un contrôleur (par exemple WB7) voit via apt update. Un paquet n’y figure qu’après avoir été testé et officiellement enregistré dans une version (par exemple la branche 2507).

    Liste pour WB7 (version 2507)

    Objectif : vérifier quelle version de z2m est disponible pour une installation vierge ou une mise à jour sur le contrôleur d’un utilisateur.

    Ancien convertisseur

    • wb-zigbee2mqtt

    Liens utiles