Zigbee - Mise à jour driver ezsp vers ember

Suite de la conversation liée à la migration nécessaire pour les dongle Zigbee liés au driver ezsp.

:warning: Je pense qu’une migration automatique est dangereuse et je préfère que les utilisateurs basculent par eux-même, notamment à cause du firmware à mettre à jour.

Je pensais faire dans la page de configuration ZIgbee2Mqtt de Gladys

  • remplacer ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E"par Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E" (driver ezsp déprécié)
  • ajouter une entrée Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E" (driver emberznet)
  • vérifier la version du firmware installé sur le dongle (accessible dans le topic zigbee2mqtt/bridge/info)
  • si la version est < 7.4.x, désactiver l’option emberznet et afficher un message disant « Vous devriez mettre à jour le firmware de votre dongle Zigbee, voici la procédure à suivre :  »
  • si la version est >= 7.4.x, afficher le message « Vous devriez mettre à jour le driver utilisé par z2m en sélectionnant dans la liste ci-dessus Sonoff Zigbee 3.0 USB Dongle Plus V2 model "ZBDongle-E" (driver emberznet) » avec peut-être un lien vers une doc Gladys qui explique le pourquoi et impacts

Le changement de modèle et la sauvegarde par l’utilisateur met à jour la configuration (sans impact sur le réseau/lien avec les appareils) => à vérifier

:thinking: Problème, il y a 6 dongles dans ce cas.

:thinking: Je ne sais pas comment gérer le cas pour une nouvelle installation, l’information de la version du firmware n’étant pas accessible

Merci d’avoir investigué @cicoub13 !

Je suis d’accord! La stabilité c’est le plus important.

Tu peux mettre un message jaune qui s’affiche au dessus si jamais l’utilisateur sélectionne le driver « Ember »: Attention, il faut que votre dongle soit en version de firmware > XX, voilà la procédure pour vérifier la version de votre firmware: XXXXXX"

1 « J'aime »

@henrik_Jensen @Xenicle @Mastho @tellier Est-ce que ça vous conviendrait ?

Salut @cicoub13,

Oui, c’est plutôt clair pour moi !

1 « J'aime »

Bonjour, cela serai très bien !

1 « J'aime »

Bonjour,
Cette évo n’a jamais été livrée finalement ?
Je ne sais pas si je dois flasher mon ZBDONGLE-E, j’ai peur qu’il ne soit plus reconnu dans Gladys.
Le dongle pert des devices sous zigbee2mqtt assez régulièrement et c’est pénible de devoir recommencer l’association, surtout avec les modules ZBMINI-L2 qui sont dans la boîte d’encastrement…
Sinon il reste l’option d’acheter le ZBDONGLE-P mais il n’est plus trouvable qu’en occasion

Bonjour. Effectivement, je n’ai pas fini le développement, car il faut prendre en compte tous les cas pour ne pas mettre à jour le driver alors que le firmware n’est pas à jour.

Mais tu peux tout à fait :

serial:
    adapter: ember
  • redémarrer le container zigbee docker restart gladys-z2m-zigbee2mqtt

Ok super, j’avais un doute. Je tente ça alors merci beaucoup

J’ai acheté un dongle-P assez récemment sur Amazon (pour tester la migration à Zigbee2mqtt 2.x) : Amazon.fr

Il a l’air toujours dispo :slight_smile:

Bonjour,

Comme beaucoup de personnes semblent affectées par ce retard, j’ai fini le développement du driver z2m ember et l’image Docker est disponible pour test ici : docker pull cicoub13/gladys:z2m-ember

Détails :

  • pour permettre aux gens qui n’ont pas mis à jour, j’ai gardé l’option (legacy) driver ezsp
  • :warning: la migration est automatique pour les personnes qui ont un dongle de la liste (sans vérification du firmware). Je pense que la majorité des personnes n’auront pas de souci, mais cela peut casser les installations des personnes qui n’ont pas un firmware > 7.4.x
    @pierre-gilles on peut rediscuter de ce choix
  • les nouvelles installations choisissent leur dongle dans la liste et ont le driver ember

Je teste tous les scénarios aujourd’hui ou demain sur mon RPI4 :construction:

PR = feat(z2m): Migrate to ember driver by cicoub13 · Pull Request #2435 · GladysAssistant/Gladys · GitHub

Pour mettre à jour le firmware => Sonoff Dongle Flasher - SONOFF Dongle

1 « J'aime »

Salut @cicoub13 :slight_smile:

Merci beaucoup pour cette PR !!

À mon avis, il faut oublier la migration automatique, car cela va casser des installations, et la stabilité du projet est une valeur très importante pour moi :slight_smile:

Si la mise à jour se déroule pendant qu’un utilisateur est en congé, cela lui casse sa domotique en son absence, ce qui créera un sentiment à l’avenir que les mises à jour Gladys « ne sont pas sûres », et poussera des utilisateurs à désactiver les mises à jour automatiques, voire à quitter Gladys.

En plus, peu d’intérêt à modifier des installations qui fonctionnent bien ! :wink:

Je comprends tout à fait l’approche.

Du coup, je propose plutôt :

  • les nouveaux utilisateurs avec un dongle à jour choisissent le dongle et ember est installé
  • les nouveaux utilisateurs avec un ancien dongle choisissent le dongle (legacy) et ezsp est installé (pour rester compatible avec des dongles non à jour)
  • les anciens utilisateurs restent avec le driver ezsp et peuvent changer dans le sélecteur de dongle pour installer ember
3 « J'aime »

C’est ce que je voyais ! C’est parfait ! :slight_smile:

Est-ce que j’ajoute des informations pour expliquer ici Gérez ses appareils Zigbee dans sa domotique avec une clé USB Zigbee et Zigbee2mqtt | Gladys Assistant ?

Oui carrément !

Proposition pour la documentation docs(z2m): Add warning about ember dongles by cicoub13 · Pull Request #333 · GladysAssistant/v4-website · GitHub

L’image docker et la PR pour la partie dev sont prêtes (sans migration automatique)

Testé ce matin sur RPI4

  • d’une installation originale avec Sonoff Dongle-E sur ezsp
  • installation de la nouvelle image qui gère le driver ember et démarrage :white_check_mark:
  • la migration de donnée en base (pour garder le driver legacy eszp) :white_check_mark:
  • dans l’UI choix du nouveau driver ember => installation de la configuration et redémarrage :white_check_mark:
4 « J'aime »

Salut @cicoub13 :slight_smile:

Testé ce matin sur Beelink S13 + Sonoff ZBDongle-E !

On a bien fait de ne pas mettre la mise à jour automatique, car chez moi le passage à Ember ne fonctionne pas (firmware trop vieux, même sur un dongle acheté en 2025 !) :

[2026-02-20 09:00:00] info: 	z2m: Starting zigbee-herdsman (7.0.4)
[2026-02-20 09:00:00] info: 	zh:ember: Using default stack config.
[2026-02-20 09:00:00] info: 	zh:ember: ======== Ember Adapter Starting ========
[2026-02-20 09:00:00] info: 	zh:ember:ezsp: ======== EZSP starting ========
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: Serial port opened
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-02-20 09:00:01] info: 	zh:ember:uart:ash: ======== ASH connected ========
[2026-02-20 09:00:01] info: 	zh:ember:uart:ash: ======== ASH started ========
[2026-02-20 09:00:01] info: 	zh:ember:ezsp: ======== EZSP started ========
[2026-02-20 09:00:01] error: 	z2m: Error while starting zigbee-herdsman
[2026-02-20 09:00:01] error: 	z2m: Failed to start zigbee-herdsman
[2026-02-20 09:00:01] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-02-20 09:00:01] error: 	z2m: Exiting...
[2026-02-20 09:00:01] error: 	z2m: Error: Adapter EZSP protocol version (12) is not supported by Host [13-18].
    at EmberAdapter.emberVersion (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1408:19)
    at EmberAdapter.initEzsp (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:670:9)
    at EmberAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1539:24)
    at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/controller/controller.ts:143:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:101:13)
    at start (/app/index.js:149:5)
Using '/app/data' as data directory

Sinon, la PR fonctionne comme voulu, la mise à jour n’a pas été automatique, j’ai dû tester de faire la mise à jour manuellement !

Par contre, je me demande si l’expérience de la mise à jour ne pourrait pas être améliorée, car en l’état, aucun moyen de tester la mise à jour sans accès aux logs, c’est très obscure pour l’utilisateur.

Je me demande si on aurait moyen d’accéder à cette erreur pour pouvoir l’afficher dans l’UI ?

Error: Adapter EZSP protocol version (12) is not supported by Host [13-18].

La solution pourrait être juste de surveiller les logs Z2M au démarrage comme on fait par exemple avec Watchtower pour les mises à jour ( Gladys/server/lib/system/system.installUpgrade.js at master · GladysAssistant/Gladys · GitHub ), et de parser les logs pour afficher les erreurs.

Tu en penses quoi ? :slight_smile:

Merci encore pour la PR sinon, ça fait parfaitement le travail :raising_hands:

1 « J'aime »

De souvenir, on peut récupérer la version du firmware dans zigbee2mqtt/bridge/info

Donc on pourrait vérifier la version et afficher un message d’avertissement ou même bloquer la sélection du driver ember.

Je regarde les options possibles.

2 « J'aime »

J’ai poussé un commit un peu plus conséquent pour :

  • récupérer les informations du firmware
  • les retourner au front dans le status
  • ajouter un check dans le front (driver = ember + firmware < 7.4.X)
  • afficher un message d’avertissement proposant de mettre à jour le firmware (je peux changer le message si besoin)

Image docker en cours de build :hourglass_not_done:

3 « J'aime »