Par contre, si je comprends bien, ça ne marche que pour un utilisateur existant qui veut passer à Ember ?
Un nouvel utilisateur qui sélectionnerait Ember avec une clé sur un ancien firmware n’aura pas ce warning, car Zigbee2mqtt n’arrivera jamais à démarrer, non ?
J’ai implémenté la lecture des logs (comme lors des mises à jour) et buildé une image.
Je ne peux pas tester notre cas spécifique (car mon dongle est à jour) mais je vais faire quelques tests avec d’autres patterns dans les logs.
La revue AI a fait quelques retours sur des resets manquants et je pense que le coverage de tests n’est pas parfait. Je regarde ça.
Est-ce que tu veux attendre la PR complète ou déjà livrer la première partie (sans les logs) ?
@cicoub13 d’ailleurs j’y pense, si l’erreur est inconnue, je pense qu’on peut même afficher l’erreur « raw » dans l’interface, ça évitera qu’on demande aux débutants d’aller voir les logs
J’ai poussé une nouvelle image qui gère à la fois les erreurs connues et les erreurs inconnues
J’ai aussi modifié la lecture des logs pour être en mode stream
Je pense que le fichier readZ2mContainerLogs mérite une bonne review à tête reposée.
Je testerai demain sur RPI
@cicoub13 Je viens de faire un test et j’ai ça dans les logs:
2026-02-25T08:33:23+0100 <warn> readZ2mContainerLogs.js:97 (Zigbee2mqttManager.readZ2mContainerLogs) Zigbee2mqtt: failed to read container logs: stream.on is not a function
J’ai mis à jour et testé ce matin sur RPI. Ça a l’air de fonctionner
J’écoute maintenant en asynchrone pendant 30 secondes en forward:true
Si on rencontre une erreur connue (celle du firmware ember), on arrête l’écoute et on remonte l’erreur. Sinon, on attend la fin des 30 secondes et on remonte la dernière erreur en brut dans le front.
Je n’ai pas pu tester le cas précis du firmware ember, mais j’ai généré d’autres erreurs. Ça ne fonctionne que lors d’un changement de configuration ou à l’activation du service (mais c’est ce qu’on veut je pense).
On peut imaginer remonter la première erreur pour plus de réactivité mais elle n’est pas très significative
[2026-02-25 10:31:08] error: z2m: Error while starting zigbee-herdsman
[2026-02-25 10:31:08] error: z2m: Failed to start zigbee-herdsman
[2026-02-25 10:31:08] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-02-25 10:31:08] error: z2m: Exiting...
[2026-02-25 10:31:08] error: z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
at EmberAdapter.initEzsp (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:666:19)
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)
Je pense que ça va vraiment aider les nouveaux sur Gladys, au delà de l’aspect Ember Bravo
Juste une remarque, est-ce que le message d’erreur ne pourrait pas être amélioré pour indiquer les différentes options : mettre à jour le firmware de la clé, ou sélectionner le driver legacy ezsp ?
Sinon, j’ai testé un truc et je ne comprend pas pourquoi ça fait ça, si je rollback à « ezsp » (je sélectionne l’ancien driver + je cliques sur enregistrer), j’ai ça :
Lors d’un changement de Dongle, le container Z2M est redémarré (avec le nouveau fichier de configuration) et non recréé.
Donc les logs contiennent toujours les erreurs précédentes et les containers sont dans un état bancal.
J’ai poussé un commit et une image docker pour recréer le container en cas de changement de Dongle. Je pense que c’est plus propre. Je n’ai pas pu tester en vrai et je ne pourrai pas regarder demain (jeudi).
Oui, j’ai changé pour ça “Attention : Le firmware de votre coordinateur Ember est obsolète. La version 7.4.x ou supérieure est requise. Vous pouvez suivre ce guide pour le mettre à jour. Dans le cas contraire, sélectionner le dongle (legacy ezsp) dans la configuration.”