# Matter over Thread - Découvert mais non accepté

**URL:** <https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881>\
**Category:** Configuration\
**Created:** [Septembre 19, 2026, 8:03 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881 "2026-09-19T08:03:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ruegerth](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/r/dbc845/32.png) [@ruegerth](https://community.gladysassistant.com/u/ruegerth)\
**Post date:** [Septembre 19, 2026, 8:03 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/1 "2026-09-19T08:03:40Z")

</div>

Hallo Miteinander, ich bräuchte eure Hilfe bei der Integration einer Matter Birne.  
Ausgang:  
IKEA Dirigera, ca. 15 Matter over Thread Geräte ( Birnen, Temperatursensoren, Fernbedienungen, ESP32 Chips)  
Bisherige Vorgehensweise:  
Über IKEA Dirigera neuen Code geholt, Gladys Integrationen Matter Gerät hinzufüge, Cod eingeben, Scan starten, hinzufügen.  
Jetzt aber:

1. IKEA Birne:

 ![step1](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/2/d29fb149d80e2b8eeea3f57022c2998bd792c95b.jpeg)

1. Erster Scan:

2. Zweiter Scan:

 ![step3](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/a/f/af1755aa3a4e547aa383a88966e675cc5c27687c.png)

1. Nochmals? OK ein Versuch:

Vous remarquez que Gladys détecte l’ampoule à un moment donné et semble même l’avoir ajoutée, mais elle n’apparaît pas parmi les appareils ?

C’est étrange, je ne connais malheureusement pas de solution pour l’instant.

Jusqu’à présent, j’ai toujours réussi à ajouter tous les appareils Matter de cette manière. La distance entre l’ampoule et le hub est d’environ 5 mètres. Le Wi-Fi fonctionne. Tous les autres appareils fonctionnent.

Voici l’extrait correspondant du journal de Docker :

 ![image1](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/7/7/77d6b87359c851a4f0f1fb39aefe9981f614b9e4.png)

…

 ![image2](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/e/fee3eacac7954b580fb4b54a16184b51e2b58b01.png)

Je serais ravi si quelqu’un avait une idée pour résoudre ce problème. Merci d’avance pour votre attention et votre soutien. Cordialement, Tom

---

<div class="post-metadata">

**Author:** ![cursor-bot](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cursor-bot/32/22252_2.png) [@cursor-bot](https://community.gladysassistant.com/u/cursor-bot)\
**Post date:** [Septembre 21, 2026, 2:40 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/2 "2026-09-21T14:40:40Z")

</div>

Salut tout le monde !

Ce sujet est désormais **en cours de développement**.

Une PR a été ouverte pour corriger l’erreur de pairing Matter « Node ID X is already commissioned » (mise à jour de matter.js vers 0.17.9) :

> <https://github.com/GladysAssistant/Gladys/pull/3122>
>
> \### Description
> 
> Pairing a new Matter device could fail with:
> 
> \`\`\`
> matter.pairDe…vice.js:50 Error commissioning device: Error: Node ID 1 is already commissioned and can not be reused
> \`\`\`
> 
> and, on the next attempt, \`Node ID 2 ...\`, \`Node ID 3 ...\` — one node ID burned per attempt, on a controller that already has nodes 1–16.
> 
> \*\*Root cause (matter.js 0.17.6, the version pinned by the service lockfile):\*\* when allocating the next sequential node ID for a commissioning, \`ControllerBehavior.allocatePeerAddress()\` checks collisions through \`IdentityService.peerAddressInUse()\`, which in 0.17.6 only knew about addresses reserved at runtime (\`peers.added\` events). Nodes already commissioned by the controller were not taken into account, so as soon as the persisted \`nextNodeId\` counter was behind the existing nodes, the allocator handed out an ID that \`ControllerCommissioner\` then rejected against the \`PeerSet\` with \`NodeIdConflictError\`.
> 
> \*\*Fix:\*\* matter.js 0.17.7 ships \*"Fix: Consider existing node IDs when determining the next node ID to commission"\* — \`peerAddressInUse()\` now also consults the \`PeerSet\`:
> 
> \`\`\`diff
> peerAddressInUse(address) {
> \- return this.#reservedPeerAddresses.has(PeerAddress(address));
> + address = PeerAddress(address);
> + return this.#reservedPeerAddresses.has(address) || !!this.#node.env.maybeGet(PeerSet)?.has(address);
> }
> \`\`\`
> 
> 0.17.8 / 0.17.9 additionally bring fixes for unreachable peers and subscription re-establishment.
> 
> \`server/services/matter/package.json\` already declared \`^0.17.6\`, but the service lockfile pinned 0.17.6 and \`cli/install\_service\_dependencies.js\` runs \`npm install\`, which keeps a lockfile that satisfies the range — so nobody ever got the upstream fix. This PR bumps the service dependencies (\`@matter/main\`, \`@project-chip/matter.js\`) and the server devDependency (\`@matter/main\`) to \`^0.17.9\` and refreshes both lockfiles. Lockfile changes are limited to the \`@matter/\*\` packages and their \`@noble/hashes\` dependency. No Gladys code change.
> 
> Verification done locally:
> \- \`npm run test-service --service=matter\`: 302 passing
> \- smoke-loaded the real 0.17.9 modules used by the service (\`@matter/main\`, \`@matter/main/types\`, \`@matter/main/clusters\`, \`@project-chip/matter.js\`) and confirmed the installed \`IdentityService.peerAddressInUse()\` carries the upstream fix
> \- \`prettier --check\` on the four changed manifest files
> 
> \### Related request
> 
> Forum: https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881
> 
> \### Checklist
> 
> \- \[x\] If a forum topic or GitHub issue exists, the description links it (\`Forum: https://community.gladysassistant.com/t/...\` or \`Closes #...\`)
> \- \[x\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed — dependency-only change, no JS lines touched; the Matter service suite (302 tests) passes locally
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[x\] No undocumented breaking change
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_01ThmubNV1qfGSC65L5cD3qc
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_01ThmubNV1qfGSC65L5cD3qc)\_

N’hésitez pas à suivre la PR, à tester (optionnel, surtout pour les petites demandes) et à faire vos retours ici si besoin.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 21, 2026, 2:43 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/3 "2026-09-21T14:43:16Z")

</div>

Salut Tom,

Merci pour les logs, ils sont très parlants ! Le message clé est celui-ci :

```auto
Error commissioning device: Error: Node ID 1 is already commissioned and can not be reused

```

puis `Node ID 2 ...` à l’essai suivant. Ce n’est donc ni ta lampe, ni le Wi-Fi, ni la Dirigera : l’appairage lui-même se passe bien (on voit que Gladys parle à l’ampoule), c’est la librairie Matter utilisée par Gladys (matter.js 0.17.6) qui attribue à la nouvelle ampoule un numéro de node déjà pris par un de tes appareils existants. Tu as 16 nodes (tes appareils + la Dirigera), et le compteur interne est reparti de 1 : chaque tentative « brûle » un numéro, échoue, et recommence au suivant. C’est un bug de matter.js, corrigé en amont dans la version 0.17.7.

J’ai préparé le correctif côté Gladys (mise à jour de matter.js en 0.17.9) : [#3122](https://github.com/GladysAssistant/Gladys/pull/3122).

Il sera dans la prochaine release.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 21, 2026, 6:40 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/4 "2026-09-21T18:40:16Z")

</div>

@ruegerth Le fix est live dans Gladys Assistant 5.1.0 🙂

---

<div class="post-metadata">

**Author:** ![ruegerth](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/r/dbc845/32.png) [@ruegerth](https://community.gladysassistant.com/u/ruegerth)\
**Post date:** [Septembre 21, 2026, 10:02 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/5 "2026-09-21T22:02:11Z")

</div>

Waouh, waouh, waouh… Merci beaucoup, vraiment beaucoup, pour cette réponse ultra-rapide et pour votre aide… J’étais déjà au bord du désespoir. Je vais tester ça demain et je vous tiendrai au courant.  
Cordialement,  
Tom

---

<div class="post-metadata">

**Author:** ![ruegerth](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/r/dbc845/32.png) [@ruegerth](https://community.gladysassistant.com/u/ruegerth)\
**Post date:** [Septembre 21, 2026, 10:21 UTC](https://community.gladysassistant.com/t/matter-over-thread-decouvert-mais-non-accepte/10881/6 "2026-09-21T22:21:36Z")

</div>

Déjà testé, Gladys version 5.1.0 :

C’est tellement rapide qu’on n’a même pas le temps de « regarder »… Tout est réglé en quelques secondes.

Excellent travail, merci beaucoup pour votre aide

 ![test1](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/a/0/a0ae78958dd69b925e05ee4d6ef7be262dfcafeb.png)

 ![test2](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/7/1/7130b02d553d65dc339a8fcb6c800eac9a5ed75c.png)

ladys | 2026-09-22T00:15:24+0200 matter.handleNode.js:138 (MatterHandler.handleNode) Matter: Node 13 handled, 1 device(s) with features (connected)  
gladys | 2026-09-22T00:15:24+0200 matter.handleNode.js:138 (MatterHandler.handleNode) Matter: Node 12 handled, 2 device(s) with features (connected)  
gladys | 2026-09-22T00:15:24+0200 matter.handleNode.js:138 (MatterHandler.handleNode) Matter: Node 11 handled, 3 device(s) with features (connected)  
gladys | 2026-09-22T00:15:24+0200 matter.handleNode.js:138 (MatterHandler.handleNode) Matter: Node 3 handled, 2 device(s) with features (connected)  
gladys | 2026-09-22T00:15:24+0200 matter.refreshDevices.js:30 (MatterHandler.refreshDevices) Matter: Refresh complete, 19 device(s) with features discovered  
gladys | 2026-09-22 00:15:59.959 WARN PeerConnection @1:8 udp://[fd1a:9a82:f69e:1:6e6a:3dcd:5d61:badd]:5540 Peer error (retry in 5m): [channel-status-response] (Failure (1) / NoSharedTrustRoots (1)) Received general error status for protocol 0 (Sigma2(Resume))  
gladys | 2026-09-22T00:18:05+0200 matter.setValue.js:72 (MatterHandler.setValue) Setting value for node 17, value = 0  
gladys | 2026-09-22T00:18:06+0200 matter.setValue.js:72 (MatterHandler.setValue) Setting value for node 17, value = 1  
gladys | 2026-09-22T00:19:26+0200 device.getDuckDbMigrationState.js:11 (DeviceManager.getDuckDbMigrationState) Device : getDuckDbMigrationState  
gladys | 2026-09-22T00:19:26+0200 system.runHostPowerDbusCommand.js:156 (System.runHostPowerDbusCommand) System: running host power command CanReboot via docker-helper  
gladys | 2026-09-22T00:19:26+0200 system.isDocker.js:13 (System.isDocker) System.isDocker: This system is running inside Docker.  
gladys | 2026-09-22T00:19:26+0200 device.getDuckDbMigrationState.js:20 (DeviceManager.getDuckDbMigrationState) Device : getDuckDbMigrationState : isDuckDbMigrated: true  
gladys | 2026-09-22T00:19:26+0200 device.getDuckDbMigrationState.js:21 (DeviceManager.getDuckDbMigrationState) Device : getDuckDbMigrationState : duckDbDeviceStateCount: 495039  
gladys | 2026-09-22T00:19:26+0200 device.getDuckDbMigrationState.js:22 (DeviceManager.getDuckDbMigrationState) Device : getDuckDbMigrationState : sqliteDeviceStateCount: 0  
gladys | 2026-09-22T00:19:26+0200 device.getDuckDbMigrationState.js:23 (DeviceManager.getDuckDbMigrationState) Device : getDuckDbMigrationState : sqliteDeviceStateAggregateCount: 0  
gladys | 2026-09-22T00:19:27+0200 system.detectHostPowerManagement.js:69 (probeHostPowerCapabilities) System: host power management not reachable via docker-helper: Host power helper container exited with status 1: �Failed to open connection to «&nbsp;system&nbsp;» message bus: Failed to connect to socket /run/dbus/system\_bus\_socket: No such file or directory  
gladys |  
gladys | 2026-09-22T00:19:57+0200 system.isDocker.js:13 (System.isDocker) System.isDocker: This system is running inside Docker.  
gladys | 2026-09-22T00:20:27+0200 system.isDocker.js:13 (System.isDocker) System.isDocker: This system is running inside Docker.  
gladys | 2026-09-22T00:20:57+0200 system.runHostPowerDbusCommand.js:156 (System.runHostPowerDbusCommand) System: running host power command CanReboot via docker-helper  
gladys | 2026-09-22T00:20:57+0200 system.isDocker.js:13 (System.isDocker) System.isDocker: This system is running inside Docker.  
gladys | 2026-09-22T00:20:57+0200 system.detectHostPowerMan
