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

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:

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

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

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:

Salut @pierre-gilles
je viens de tester ta dernière build à l’instant et j’ai du mieux sur mon intégration Matter.

Premièrement, je vois de nouveau le noeud matterbridge dans les paramètres de Matter !
Mes volets somfy sont passés déconnectés. J’ai pu les « récupérer » via le partage d’un des volets depuis Apple Maison sur iOS : j’ai mis le code de partage et ensuite mes appareils sont passés en Mettre à jour (que j’ai appliquée) mais le pilotage n’est pas fonctionnel (pas grave pour le moment).

Ensuite j’ai essayé de réintégrer mon interrupteur SONOFF (qui n’apparait toujours pas dans les noeuds Matter) : partage du code depuis HA, ajout dans Gladys et problème :


Mon gros soucis est que je ne sais pas comment supprimer cet appareil que je ne vois nulle part.

@pierre-gilles Tu as des nouvelles du développer de Matter.js ?

Merci d’avoir testé @mutmut !

Est-ce que tu as les logs de Gladys au moment du démarrage du container ?

Cette version de Matter.js introduit pas mal de changements breaking et lance une migration des fichiers. Peut-être que, comme @prohand, tu as rencontré des erreurs lors de cette migration, ce qui aurait pu entraîner la perte de tes appareils ?

Tu ne les vois vraiment nul part ? Même pas dans « Paramètres » → « Noeuds Matter » ?

Aucunes nouvelles non ! Je viens de le relancer, ça fait 1 semaine.

Si besoin, on créera une issue Github côté matter.js.

J’ai eu des nouvelles ce matin, @prohand je te tiens au courant dès que j’ai du nouveau :slight_smile:

rien de rien, je ne vois que mon noeud matterbridge :confused:

Ok, est-ce que tu as eu des logs particulières quand tu as lancé le container pour la première fois ? Dans la dernière version de Matter.js, il y a une migration de fichier, et c’est peut-être ça qui a échoué. Si tu as les logs je peux les transmettre au mainteneur de Matter.js !

Toujours pas de nouvelles, j’ai créé un ticket côté Github pour ne pas qu’il oublie :slight_smile:

Bon, j’ai pris le taureau par les cornes et j’ai essayé de corriger le bug moi-même :grinning_face_with_smiling_eyes:

Le mainteneur m’a bien aidé à identifier le problème, et on pense avoir trouvé !

J’ai ouvert une PR sur le repo Matter.js :

Je vais aussi backporter le correctif sur la version 0.16.x pour qu’on puisse en bénéficier rapidement, sans attendre la sortie de la 0.17 qui n’est pas prévue avant environ deux semaines.

Le backport: