[RTEX] migration ZigbeeLinker vers JeeZigbee

Bonjour,

Je vous fais un retour d’expérience sur la migration de mes équipements zigbee du plugin ZigbeeLinker vers le plugin JeeZigbee ; ceci sans avoir à ré-appairer les équipements.
en effet, les deux plugins utilisent zigbee2mqtt (z2m) pour dialoguer avec les équipements ; il est donc possible de récupérer les infos d’appairage et de dernier contact.

J’étais très satisfait du plugin ZigbeeLinker ; il fonctionne très bien, le développeur @MrGreen est très réactif. Ce plugin m’a permis d’utiliser zigbee2mqtt avant que l’équipe jeedom ne le permette également.
Je préfère maintenant passer à un plugin officiel, et également m’aligner sur la conf de mon fils, qui utilise jeedom avec JeeZigbee.

Pour réaliser cette migration, il faut être capable d’accèder au système de fichiers, et d’éditer des fichiers.

Pré-requis
Il faut que le plugin MQTT Manager (mqtt2) soit installé ; je n’aborde pas ceci dans ce post.
Pour ma part, j’avais installé ZigbeeLinker avant que le plugin mqtt2 ne soit publié ; je l’avais installé avec son propre serveur mqtt.
Je suis ensuite passé avec mqtt2 : j’en avais besoin pour zwavejs ; j’ai donc supprimé l’option serveur mqtt du plugin ZibgeeLinker, pour qu’il utilise mqtt2

Je précise que dans mon cas, toute l’installation jeedom et ses dépendances tournent sur le même système.

Procédure de migration
En préalable, coté ZigbeeLinker, il faut désactiver la gestion automatique du démon, puis arrêter ce démon

Ensuite, on installe JeeZigbee, avec un paramétrage minimum :

installation et activation du plugin

  • configuration :
    . désactiver la gestion automatique du démon, puis arrêter le démon
    . choisir le mode local, le port de la clé, le type de controleur, et sauvegarder
    . installer les dépendances
    . démarrer le démon ; ceci est nécessaire pour que JeeZigbee crée ses fichiers de conf dans /var/www/html/plugins/z2m/data :
    configuration.yaml, coordinator_backup.json, database.db
    . arrêt du démon

Intervention niveau système de fichiers
Les fichiers de conf z2m de ZigbeeLinker sont dans /var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt, ceux de JeeZigbee dans /var/www/html/plugins/z2m/data

  • sauvegarde par précaution de la conf initiale de JeeZigbee
# cd /var/www/html/plugins/z2m/data
# mkdir init
# cp -p configuration.yaml init/
# cp -p coordinator_backup.json init/
# cp -p database.db init/
  • modification du paramétrage de JeeZigbee
    . fichiers de log (facultatif)
    /bin/rm -r /var/www/html/plugins/z2m/data/log/*

    . fichier coordinator_backup.json
    On le supprime :
    rm /var/www/html/plugins/z2m/data/coordinator_backup.json

    . fichier database.db
    On l’écrase, avec celui de ZigbeeLinker :
    cp -p /var/www/html/plugins/zigbee2mqtt/data/zigbee2mqtt/database.db /var/www/html/plugins/z2m/data/database.db

    . fichier configuration.yaml
    On va récupérer certaines infos du fichier de ZigbeeLinker
    . section mqtt : rien à modifier. Il faut vérifier que la directive « include_device_information: true » est bien présente, c’est le cas.
    . section serial : rien à modifier
    . section advanced :
    recopier les directives ‹ channel ›, ‹ pan_id › (absentes du fichier de JeeZigbee)
    modifier la directive ‹ network_key ›, qui est différente
    . section devices : elle est absente, ou vide
    recopier l’ensemble de la section devices

Démarrage du démon JeeZigbee
C’est magique : tous les équipements zigbee enregistrés avec le plugin ZigbeeLinker vont se créer automatiquement sous le plugin JeeZigbee. Cerise sur le gateau, ils se créent avec le même nom que sous ZigbeeLinker : c’est le ‹ FriendlyName › de z2m ; merci @Loic.

En cas de problème, voir la log Z2md

Récupération de la conf jeedom, des historiques, des commandes dans les scénarios, …
Je ne rentre pas dans le détail ; il faut utiliser l’excellent outil ‹ remplacer ›
Pour pouvoir le faire, il faut que les équipements des deux plugins aient un nom différent ; J’ai renommé les équipements du plugin ZigbeeLinker, en ajoutant le préfixe ‹ OLD_ › au nom de chacun.

Finalisation
Il faut ensuite vérifier que tout fonctionne correctement ; puis supprimer le plugin ZigbeeLinker.
Avant cette suppression, j’ai supprimé dans jeedom les équipements de ZigbeeLinker un par un : à chaque suppression, un message indique les différents liens de celui-ci avec les différents éléments jeedom ; ca permet de vérifier qu’il n’y a pas eu d’erreur quelque part.

Je n’ai pas une installation domotique très importante ; mais cette procédure a fonctionné parfaitement.

5 « J'aime »

Merci beaucoup pour ces explications claires ! J’ai pu migrer sur JeeZigbee sans ré-appairer mes équipements !

Bonjour, cela n’a pas fonctionné pour moi :cry:

Quelqu’un, pourrait-il m’aider?

Bonjour,
La log que tu donnes ne montre pas de problème.

Quand tu lances l’interface zigbee2mqtt, qu’est-ce que ca donne ?
Est-ce que tu vois les équipements zigbee qui ont été appairés sous ZigbeeLinker ?

Pour lancer l’interface, il faut aller dans l’onglet configuration du plugin, et, sur la ligne ‹ Interface z2m ›, cliquer sur ‹ Ici ›.
Auparavant, il faut copier l’identifiant, qui te sera demandé au premier lancement de cette interface.

Bonjour

Apparement le plugin ne trouve pas ma cle Conbee2

J’ai mis le port en AUTO, en dev/tty/ACM0 et en /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2150318-if00 (trouvé dans le menu deroulant du port)

Je precise que ma connection MQTT est sécurisé par login et pass. J’ai rajoute le pass dans le fichier config

Dans l’interface Z2m, tout est vide

z2md.txt (2,9 Ko)

Dans le fichier « configuration.yaml », j’ai bien recopié les infos qui etaient indiquées, mais j’ai « ext_pan_id: » dans le nouveau fichier que je n’avais pas dans l’ancien

Une idée ?

Merci pour votre aide

Thierry

PS : j’ai copié les 2 fichiers DATABASE(indiqué dans le tuto) et CONFIGURATION de zigbeelinker vers jeezigbee et cela a bien fonctionné

Bonjour,

Qu’est-ce qui te fait dire que le plugin ne trouve pas ta clé connbee ?

Concernant la connexion mqtt, ca a l’air de bien se passer (à la lecture de la log)

Pour le ext_pan_id ; tu veux dire que z2m l’a mis dans le fichier configuration.yaml généré automatiquement lors du premier lancement du plugin ?
Etrange, je n’avais pas ce paramètre lorsque j’ai fait l’installation. Par contre, je l’avais dans coordinator_backup.json

D’ailleurs, je ne l’ai toujours pas dans configuration.yaml, alors que je l’ai dans coordinator_backup.json, qui a été regénéré automatiquement lors de la procédure de migration (second redémarrage, après avoir adapté le fichier configuration.yaml).

Essaie de faire un ‹ grep pan_id › * dans l’ancien dossier (celui de zigbeelinker) ; afin de voir s’il se trouve dans configuration.yaml et/ou coordinator_backup.json

Ce que j’essaierais de faire, si on suppose que le plugin communique bien en MQTT et voit bien la clé connbee :

  • arrêt du démon z2m
  • sauvegarde par précaution de configuration.yaml et coordinator_backup.json
  • suppression de l’entrée ext_pan_id dans le fichier configuration.yaml, ou reprise de celui qui était dans le plugin zeegbeelinker
  • suppression du fichier coordinator_backup.json
  • redémarrage du démon z2m

C’est un peu pifométrique, mais j’essaierais cela …

Bonjour

Comme indiqué dans mon precedent post, j’ai copié les 2 fichiers dans DATA du nouveau plugin et cela fonctionne

Merci

Thierry