Actualización de Matter.js a 0.16

Hola @pierre-gilles,

No hay problema, soy paciente :slight_smile:
Prefiero un trabajo que tome tiempo y esté bien hecho :wink:

Pude volver a probar con matterbridge funcional con la versión estable de Gladys, luego pasé a la versión que indicas:

image

Y me encuentro con el mismo problema.

Te envío los logs en privado

¡Gracias por la respuesta! De hecho, he recibido una respuesta del mantenedor de matter-js y hay un error en el parámetro autoConnect: true de la librería.

¡Ha publicado un parche aquí:

¡Y me dio un truco para solucionar el problema mientras tanto!

¡Te mantendré informado en cuanto tenga un nuevo build funcional y probado! :slight_smile:

Bueno, he hecho un nuevo PR esta mañana, y efectivamente, con el autoConnect funcionando, cambia todo, he podido eliminar el 50% del código que había escrito para esta migración :smiley:

Un nuevo build está disponible en una nueva etiqueta :

gladysassistant/gladys:upgrade-matter-latest

Aproveché para hacer algunas mejoras prácticas :

1/ En los registros, los mensajes de advertencia cuando un dispositivo aún no se ha añadido a Gladys ahora se muestran en una sola línea, al nivel de registro « info », porque en sí no es un error, sino solo una advertencia :

2/ La actualización de la lista de dispositivos Matter, siendo una operación a veces larga en redes Matter grandes que contienen dispositivos no disponibles, he hecho que esta operación no sea bloqueante para el inicio de Gladys para evitar alargar el tiempo de inicio de Gladys.

@prohand ¿puedes volver a probar?

El nuevo PR :

¡Gracias! :slight_smile:

Acabo de probar y parece que sigue habiendo un problema, ya que todo se ve sin conexión.
Después de la migración, veo 3 nodos Matter:

Te envío los registros por mensaje privado.

Quizá haya restos de mis diferentes pruebas.
Si no, debería eliminar Matter por completo y empezar de cero integrando matterbridge como si volviera a instalar desde cero con la última versión estable de Gladys y luego usar upgrade-matter-latest.

¡Gracias por la prueba y los registros, me ayudan mucho!

Tienes un dispositivo que no es accesible, y, en cascada, esto rompe el resto de la integración. Estoy añadiendo código para que esto no ocurra, y te hago un build :slight_smile:

Pregunta rápida: ¿en qué arquitectura pruebas: amd64 o arm64? Los builds de ARM tardan más, así que si es amd64, te hago un build de Docker solo para amd64, así se ahorra tiempo :slight_smile:

Es x86_64 (amd64) :slight_smile:
Gracias

Nueva compilación con parche disponible en :

gladysassistant/gladys:upgrade-matter-latest

Ya no veo los nodos Matter al actualizar.
Me parece que la migración no se está realizando.
Te envío los registros por MP :wink:

El error es bastante claro, ¡es un error de la librería matter.js!

2026-03-23 11:20:33.533 ERROR  ClientNode           [internal] Unsupported async initialization detected when loading known peer
  at ClientNode.initialize (/src/server/services/matter/node_modules/@matter/node/src/node/ClientNode.ts:101:19)
  at ClientNode.[construct] (/src/server/services/matter/node_modules/@matter/node/src/endpoint/Endpoint.ts:896:21)
  at initializer (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:289:80)
  at invokeInitializer (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:598:30)
  at Construction.start (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:290:17)
  at Factory.create (/src/server/services/matter/node_modules/@matter/node/src/node/client/Peers.ts:495:27)
  at Peers.initialize (/src/server/services/matter/node_modules/@matter/node/src/node/client/Peers.ts:108:25)
  at ServerNode.get peers [as peers] (/src/server/services/matter/node_modules/@matter/node/src/node/ServerNode.ts:168:29)
  at ChangeNotificationService.#beginPeerObservation (/src/server/services/matter/node_modules/@matter/node/src/node/integration/ChangeNotificationService.ts:112:27)
  at /src/server/services/matter/node_modules/@matter/node/src/node/integration/ChangeNotificationService.ts:35:50
  at BasicObservable.emit (/src/server/services/matter/node_modules/@matter/general/src/util/Observable.ts:377:26)
  at NodeLifecycle.change (/src/server/services/matter/node_modules/@matter/node/src/endpoint/properties/EndpointLifecycle.ts:226:32)
  at onReady (/src/server/services/matter/node_modules/@matter/node/src/endpoint/properties/Behaviors.ts:264:38)
  at ServerNode.initialize (/src/server/services/matter/node_modules/@matter/node/src/node/ServerNode.ts:188:9)
2026-03-23T11:20:33+0100 <warn> service.start.js:44 (Service.start) Unable to start service matter [crashed-dependency] MatterController unavailable due to initialization error
      at crashedError (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:623:32)
      at handleRejection (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:325:69)
    Caused by: [crashed-dependency] matter-controller-data.peer2 initialization failed
      at Object.assertActive (/src/server/services/matter/node_modules/@matter/general/src/util/Lifecycle.ts:48:23)
      at Construction.assert (/src/server/services/matter/node_modules/@matter/general/src/util/Construction.ts:298:23)
      at Behaviors.#backingFor (/src/server/services/matter/node_modules/@matter/node/src/endpoint/properties/Behaviors.ts:736:41)
      at Object.get [as commissioning] (/src/server/services/matter/node_modules/@matter/node/src/endpoint/properties/Behaviors.ts:799:32)
      at ClientNode.maybeStateOf (/src/server/services/matter/node_modules/@matter/node/src/endpoint/Endpoint.ts:225:22)
      at Peers.get (/src/server/services/matter/node_modules/@matter/node/src/node/client/Peers.ts:184:46)
      at MatterController.#migrateNodeData (/src/server/services/matter/node_modules/@project-chip/matter.js/src/MatterController.ts:695:45)
      at /src/server/services/matter/node_modules/@project-chip/matter.js/src/MatterController.ts:399:17

He enviado el error al mantenedor, te mantendré informado

Vuelvo a poner mi mensaje aquí para recordarlo, el mantenedor de matter.js me pide un archivo de tu carpeta matter (/var/lib/gladysassistant/matter en Gladys), esto le permitirá volver a ejecutar la migración y ver qué falla en tu caso.

¡Gracias!

Te envío la carpeta por mensaje privado :slight_smile:

Hola @pierre-gilles
acabo de probar tu última compilación y tengo mejoras en mi integración Matter.

Primero, ¡veo de nuevo el nodo matterbridge en los ajustes de Matter! Mis persianas Somfy pasaron a desconectadas. Pude « recuperarlas » compartiendo una de las persianas desde Apple Casa en iOS: ingresé el código de compartir y luego mis dispositivos pasaron a Actualizar (que apliqué) pero el control no es funcional (no importa por el momento).

Luego intenté reintegrar mi interruptor SONOFF (que no aparece en los nodos Matter): compartir el código desde HA, agregar en Gladys y problema:


Mi gran problema es que no sé cómo eliminar este dispositivo que no veo en ninguna parte.

@pierre-gilles ¿Tienes noticias del desarrollador de Matter.js?

¡Gracias por probar @mutmut!

¿Tienes los registros de Gladys en el momento del inicio del contenedor?

Esta versión de Matter.js introduce muchos cambios breaking y lanza una migración de archivos. Quizás, como @prohand, hayas encontrado errores durante esta migración, lo que podría haber provocado la pérdida de tus dispositivos?

¿No los ves en ningún sitio? ¿Ni siquiera en « Configuración » → « Nodos Matter »?

¡Ninguna noticia! Acabo de volver a contactarlo, hace una semana.

Si es necesario, crearemos un issue en Github del lado de matter.js.

He recibido noticias esta mañana, @prohand te mantendré informado en cuanto tenga novedades :slight_smile:

nada de nada, solo veo mi nodo matterbridge :confused:

Vale, ¿has tenido algún log particular cuando lanzaste el contenedor por primera vez? En la última versión de Matter.js hay una migración de archivos, y puede que eso haya fallado. Si tienes los logs, puedo enviárselos al mantenedor de Matter.js.

Todavía no hay noticias, he creado un ticket en Github para que no se le olvide :slight_smile:

Bueno, he tomado el toro por los cuernos y he intentado corregir el error yo mismo :grinning_face_with_smiling_eyes:

El mantenedor me ayudó a identificar el problema, y creemos haberlo encontrado.

He abierto una PR en el repositorio de Matter.js:

También voy a backportar el parche a la versión 0.16.x para que podamos beneficiarnos de él rápidamente, sin esperar el lanzamiento de la 0.17, que no está previsto hasta dentro de unas dos semanas.

El backport: