Passer de sonoff E à P

Bonjour,

Je suis principalement en zigbee avec un dongle sonoff version E, avec à peu près 90 appareils (la moitié en 220v). J’ai de temps en temps des décrochages sur les interrupteurs (ne répondent pas aux commandes locales et pas de remontées dans les logs).

Du coup je me demande si ça vaut le coup de passer sur un dongle P, et comment faire.

Dans zigbee2mqtt, il y a une option de sauvegarde dans les paramètres mais pas vu d’option pour recharger cette config, à moins qu’il ne faille copier manuellement la sauvegarde.

Ou alors va t’il falloir réappairer un à un tous les appareils, j’avoue que j’ai pas trop envie.

Est-ce qu’il y a des gens qui ont fait le saut, et/ou qui pourraient me conseiller ?

Merci.

Salut,
c’est deux clés zigbee avec un chipset différent. Va falloir tout réappairer .

@WarC0zes Merci pour la déception :wink:

Mais sinon est ce que ça permettrait d’améliorer le réseau ?

La Sonoff E est en mode expérimental sous Z2M, comparer a la P. Oui tu aura un réseau plus stable avec la P.

C’est bien préciser dans la doc Z2M

Experimental

The adapters below are experimental, don’t use these if you want a stable setup.

2 « J'aime »

Salut,

En fait c’est possible de passer de E à P et vis versa en utilisant zigpy, et sans reappairer quoi que ce soit. je viens de le faire il y a quelques jours.

edit: Je colle mon post ici, car je vais faire supprimer tout mes contenus du forum Jeedom…

Je poste ici un recap de la procédure qui permet de migrer sans aucun rappairage d’une clef zigbee EZSP vers une clef Zstack ( Texas Instrument ) . Dans mon cas une SonOff-E v2 vers SonOFF-P v1.
Pourquoi ? Parce que les chipset Texas Instrument sont mieux supportés que les EZSP avec Z2M.
Ayant plus de 50 appareils zigbee sur mon réseau, autant vous dire que tout réappairer serait une corvée sans nom. D’autant que pas mal de module sont dans les murs.

Les infos présentent ici résument la discussion sur ce thread: migrating coordinator from ZBDongle-E to ZBDongle-P · Koenkk/zigbee2mqtt · Discussion #16478 · GitHub

1/ Faire un backup de la clef EZSP
. Installer Zigpy: GitHub - zigpy/zigpy-cli: Command line interface for zigpy
. Stopper Z2M
. Sauvegarder la clef:

zigpy radio ezsp /dev/ttyUSB0 backup ezsp-backup.json

2/ Flasher la clef Zstack avec le dernier firmware et change son adresse IEEE par celle de l’autre clef EZSP
. flasher la nouvelle clef avec le dernier fw, en changeant l’adresse ( paramètre -i ), et le bon device ( param -p )
les clefs EZSP en general apparaissent sous l’adresse /dev/ttyACMx vs les Zstack sous /dev/ttyUSBx )

sudo ./cc2538-bsl.py -evw -i e0:xx:xx:xx:xx:xx:xx:xx -p /dev/ttyUSB0 --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20230507.hex

3/ Cloner les paramètres de la clef EZSP vers la clefs Zstack en utilisant zigpy:
. prendre note de l’adresse IEEE de la clef EZSP dans le fichier ezsp-backup.json
« coordinator_ieee »: « e0xxxxxxxxxxxx »,
. flasher la config sauvegardée en étape 1 dans la nouvelle clef ( notez que le parametre -v radio à changé pour znp à la place de ezsp )

sudo .local/bin/zigpy -v radio znp /dev/ttyUSB0 restore ezsp-backup.json

4/ sauvegarder la base de donnée de z2m dans le dossier de config et déplacer l’ancienne sauvegarde présente:

mkdir backup
mv database.db backup/
mv coordinator_backup.json backup/

5/ stopper z2m et retirer l’ancienne clef, insérer la nouvelle clef
. important, les 2 clefs ne doivent jamais etre alimenté en même temps vu qu’elles ont la meme adresse maintenant )

6/ couper tout vos routeurs présents sur le réseau ( pas besoin de virer les capteurs, juste les routeurs , c’est essentiel sinon vous ne pourrez pas démarrer z2m pour la prochaine étape ) . Sinon il faut mettre la clef sans antenne dans une cage de faraday, autant faire sauter le courant.

7/ editer configuration.yaml
. changer le param port par le bon chemin du nouveau device /dev/ttyUSB0 en ce qui me concerne, à la place de /dev/ttyACM0
. changer le param adapter de ezsp par zstack
. changer le baudrate si necessaire, 115200 en general.

8/ Démarrer Z2M une première fois, attendre que l’interface web soit accessible. Z2M va générer une nouvelle bdd database.db et sauvegarde coordinator_back.json

9/ Stopper z2m. Editer la base de donnée crée et ne garder que la première ligne ( {« id »:1,« type »:« Coordinator »,« ieeeAddr »: … )

Copier toutes les lignes suivantes de l’ancienne bdd dans la nouvelle

10/ Redémarrer z2M.
Vous pouvez rallumer vos routeurs.
Si tout s’est bien passé, vous avez un z2m fonctionnel. Tous vos devices se sont reconnectés à la nouvelle clef sans broncher.

1 « J'aime »

Oui, mais faut flasher la clé. A faire avec précaution.

Intéressant.
Par contre, avec une installation haos, c’est pas simple à dérouler. Mieux vaut prévoir une installation linux classique à côté le temps de la manipulation.

PS : Pendant un moment j’ai cru qu’un bout de code jeedom serait utile à HA
Season 1 Omg GIF by America's Got Talent

HA utilise zigpy sous le manteau il me semble.

Les procédures de migration utilisées par ha ou z2m doivent aussi flasher la clef pour lui donner la même adresse IEE et lui copier la conf.
La procédure décrite ici nous fait exécuter ça à la main certe, mais c’est pas méchant. :slight_smile:

Sinon, tu fais comme moi : une Sonoff type P avec Z2M et une Sonoff type E (flashée avec un firmware multiprotocole) sous ZHA. Je n’ai plus de souci depuis quelques jours (semaines) avec cette solution. 53 appareils sous ZHA et 34 sous Z2M.

Tu oublie un point important… HA c’est uniquement du container (jeedom c’est de l’os ou de la vm).
Donc même si le binaire zigpy est disponible quelque part (disons dans le container z2m), pas moyen de le lancer depuis le container shell… Et en plus il faut rendre les backup accessibles (et pas que lecture entre les deux).
Donc sans un peu d’adaptation, c’est pas direct.
Très honnêtement, une distribution Linux sur une SD (ou même un jeedom temporairement à partir des images) pour les 10 minutes de manipulation c’est plus rapide que de se prendre la tête.

A mon avis vous pouvez faire tourner zigpy même sous windows si besoin.

Perso j’ai fait ça depuis un shell linux dans une de mes vm existantes.

D’ailleurs, j’ai du coup configuré l’ancienne clef sonoff-E en solution de secours sur un PI qui se lance tout seul et fait tourner z2m si un soucis avec le z2m qui tourne sous docker dans une VM.
Comme elles ont maintenant la même adresse, et la même config, le relai se fait de manière transparente ( le pi récupère le dernier backup de l’autre clef au demarrage, le flash sur la clef de backup et lance z2m tant que l’instance principale n’est pas opérationnelle. )