Mise à jour de Matter.js vers 0.16

Salut @pierre-gilles,

Pas de soucis je suis patient :slight_smile:
Je préfère un travail qui prend du temps et est bien fait :wink:

Je pu refaire le test avec matterbridge fonctionnel avec la version de Gladys stable, je suis ensuite passé sur la version que tu indiques :

image

Et je rencontre le même problème.

Je t’envoi les logs en PV

1 « J'aime »

Merci pour le retour, en fait j’ai eu un retour du mainteneur de matter-js et il y a bien un bug dans le paramètre autoConnect: true de la librairie.

Il a publié un correctif ici :

Et il m’a donné une astuce en attendant pour corriger le souci !

Je te tiens au courant dès que j’ai un nouveau build fonctionnel et testé :slight_smile:

1 « J'aime »

Bon, j’ai refais une PR du coup ce matin, et effectivement avec le autoConnect qui fonctionne, ça change tout, j’ai pu supprimer 50% du code que j’avais écris pour cette migration :smiley:

Un nouveau build est disponible sur un nouveau tag :

gladysassistant/gladys:upgrade-matter-latest

J’en ai profité pour faire quelques améliorations pratiques :

1/ Dans les logs, les messages d’avertissement quand un appareil n’est pas encore ajouté à Gladys sont désormais affichés sur une seule ligne, au niveau de log « info », car en soi ce n’est pas une erreur mais juste un avertissement :

2/ Le rafraîchissement de la liste des appareils Matter, étant une opération parfois longue sur les gros réseaux Matter comportant des appareils non disponibles, j’ai rendu cette opération non bloquante pour le démarrage de Gladys afin d’éviter de rallonger le temps de démarrage de Gladys.

@prohand tu peux re-tester ?

La nouvelle PR :

Merci :slight_smile:

Je viens de tester et il semble toujours y avoir un problème car tout est vu offline
Après la migration je vois 3 noeuds matter :

Je t’envoi les logs en MP

Il y a peut-être des reliquats du à mes différents tests.
Sinon il faudrait que je supprime complétement matter et que je reparte de zero en intégrant matterbridge comme si je repartais d’une installation avec la dernière version stable de Gladys et ensuite utiliser upgrade-matter-latest

Merci pour le test et les logs, ça m’aide beaucoup !

Tu as un appareil qui n’est pas joignable, et, en cascade, ça casse le reste de l’intégration. J’ajoute du code pour que ça ne soit pas le cas, et je te fais un build :slight_smile:

Petite question : tu testes sur quelle architecture: amd64 ou arm64 ? Les builds ARM sont plus longs, donc si c’est amd64 je te fais un build Docker amd64 uniquement, ça gagne du temps :slight_smile:

C’est de l’amd64 :slight_smile:
Merci

1 « J'aime »

Nouveau build avec correctif disponible sur :

gladysassistant/gladys:upgrade-matter-latest

Je ne vois plus les noeuds matter en mettant à jour.
J’ai l’impression que la migration ne se fait pas.
Je t’envoi les logs en MP :wink:

L’erreur est assez claire, c’est un bug de librairie 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

J’ai envoyé l’erreur au mainteneur, je te tiens au courant

1 « J'aime »

Je remets mon message ici pour s’en souvenir, le mainteneur de matter.js me demande une archive de ton dossier matter (/var/lib/gladysassistant/matter dans Gladys), ça va lui permettre de rejouer la migration et de voir ce qui crash dans ton cas.

Merci !

Je t’envoi le dossier en MP :slight_smile:

1 « J'aime »