Por cierto, si entiendo bien, esto solo funciona para un usuario existente que quiera cambiar a Ember, ¿verdad?
Un nuevo usuario que seleccione Ember con una clave en un firmware antiguo no tendrá esta advertencia, porque Zigbee2mqtt nunca llegará a iniciarse, ¿no?
He implementado la lectura de los registros (como durante las actualizaciones) y he construido una imagen.
No puedo probar nuestro caso específico (ya que mi dongle está actualizado), pero voy a hacer algunas pruebas con otros patrones en los registros.
La revisión de IA ha dado algunos comentarios sobre reinicios faltantes y creo que la cobertura de pruebas no es perfecta. Lo estoy revisando.
¿Quieres esperar a que la PR esté completa o ya entregar la primera parte (sin los registros)?
@cicoub13 por cierto, si el error es desconocido, creo que incluso podemos mostrar el error « crudo » en la interfaz, así evitaremos pedir a los principiantes que revisen los registros
He subido una nueva imagen que gestiona tanto los errores conocidos como los desconocidos
También he modificado la lectura de los logs para que sea en modo stream
Creo que el archivo readZ2mContainerLogs merece una buena revisión con la mente despejada.
Lo probaré mañana en RPI
@cicoub13 Acabo de hacer una prueba y tengo esto en los registros:
2026-02-25T08:33:23+0100 <warn> readZ2mContainerLogs.js:97 (Zigbee2mqttManager.readZ2mContainerLogs) Zigbee2mqtt: no se pudo leer los registros del contenedor: stream.on no es una función
He actualizado y probado esta mañana en RPI. Parece que funciona
Ahora escucho de forma asíncrona durante 30 segundos en forward:true
Si se encuentra un error conocido (el del firmware ember), se detiene la escucha y se informa del error. De lo contrario, se espera a que terminen los 30 segundos y se informa del último error en bruto en el front.
No he podido probar el caso específico del firmware ember, pero he generado otros errores. Solo funciona durante un cambio de configuración o al activar el servicio (pero creo que es lo que queremos).
Podríamos considerar informar del primer error para mayor reactividad, pero no es muy significativo
[2026-02-25 10:31:08] error: z2m: Error al iniciar zigbee-herdsman
[2026-02-25 10:31:08] error: z2m: No se pudo iniciar zigbee-herdsman
[2026-02-25 10:31:08] error: z2m: Consulte https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html para posibles soluciones
[2026-02-25 10:31:08] error: z2m: Salida...
[2026-02-25 10:31:08] error: z2m: Error: No se pudo iniciar la capa EZSP con estado=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)
Creo que esto realmente ayudará a los nuevos en Gladys, más allá del aspecto de Ember ¡Bravo !
Solo una observación, ¿no podría mejorarse el mensaje de error para indicar las diferentes opciones: actualizar el firmware de la llave o seleccionar el controlador legado ezsp?
Por lo demás, probé algo y no entiendo por qué ocurre esto, si hago un rollback a « ezsp » (selecciono el controlador antiguo + hago clic en guardar), obtengo esto:
Al cambiar el Dongle, el contenedor Z2M se reinicia (con el nuevo archivo de configuración) y no se recrea.
Por lo tanto, los registros aún contienen los errores anteriores y los contenedores están en un estado inestable.
He realizado un commit y una imagen de Docker para recrear el contenedor en caso de cambio de Dongle. Creo que es más limpio. No he podido probarlo en la práctica y no podré revisarlo mañana (jueves).
Sí, lo he cambiado para esto: “Atención: El firmware de su coordinador Ember está obsoleto. Se requiere la versión 7.4.x o superior. Puede seguir esta guía para actualizarlo. En caso contrario, seleccione el dongle (legacy ezsp) en la configuración.”