# 🚀 Matter & Gladys Assistant : C’est parti!

**URL:** <https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442>\
**Category:** Demandes livrées\
**Created:** [Mars 21, 2025, 12:31 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442 "2025-03-21T12:31:51Z")\
**Posts on this page:** 20\
**Page:** 1

<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:** [Mars 21, 2025, 12:31 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/1 "2025-03-21T12:31:51Z")

</div>

Salut à tous ! 😃

Le protocole **Matter** devient de plus en plus intéressant : on commence enfin à voir des appareils **stables et convaincants** sur le marché.

Comme je l’expliquais dans mon live [“Projets pour 2025”](https://www.youtube.com/live/_bmsWALVePc?si=Yc_hC8ggGTZB9kLi&t=1437) (à **23:57** ), j’ai **beaucoup d’espoirs** pour Matter et je pense que **Gladys Assistant pourrait en bénéficier énormément**.

👉 À terme, **un seul protocole domotique pourrait dominer** et si c’est Matter, cela réduirait énormément les différences entre Gladys et d’autres solutions en termes d’intégrations. L’enjeu principal deviendrait alors **l’expérience utilisateur** , qui est justement la grande force de Gladys ! 🔥

**🎯 Premier test : une prise connectée Matter / Thread**

Pour avancer sur ce sujet, j’ai commandé une prise [**Eve Energy**](https://amzn.to/426VSn9?tag=gladproj-20) compatible Matter sur le réseau **Thread**.

C’est l’un des **appareils Matter les mieux notés** actuellement ! La marque Eve met un gros focus sur **l’UX et le respect de la vie privée** , ce qui correspond totalement à la philosophie de Gladys.

 ![IMG_3772](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/6/7/67c8c2afeed1c251e58ea1059afe86ccc6402fa7.jpeg)

**🎬 Live coding Matter dans Gladys – Vendredi 28 mars à 10h**

Je serai en direct sur **YouTube** pour un **live coding** où je vais coder l’intégration **Matter** dans Gladys **en direct**!

Comme d’habitude, on démarre petit (un seul appareil) et on étoffera progressivement.

🔴 **Lien du live** : [https://youtube.com/live/gBxSVSGUjJ0](https://youtube.com/live/gBxSVSGUjJ0)

📢 **Pensez à activer la cloche 🔔 pour être notifié !**

Hâte de partager ça avec vous et d’avoir vos retours ! 🚀

---

<div class="post-metadata">

**Author:** ![Einstein8854](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/einstein8854/32/9474_2.png) [@Einstein8854](https://community.gladysassistant.com/u/Einstein8854)\
**Post date:** [Mars 21, 2025, 1:19 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/2 "2025-03-21T13:19:16Z")

</div>

hello @pierre-gilles ,  
stable et convaincant certes et j en suis convaincu.  
mais 2 autres éléments sont aussi importants à mes yeux :  
- que cela soit un protocole ouvert et accessible aux dev (pas un protocole proprietaire qu un lobby de marques s approprierait comme cela arrive trop souvent avec certains type de peripherique et de normes)  
- que les produits proposés restent abordables au meme titre que avec zigbee, car autre produits-procotoles pesent souvent sur le porte monnaie  
- mais aussi que matter ne vienne pas tuer zigbee pour autant !

---

<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:** [Mars 21, 2025, 1:24 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/3 "2025-03-21T13:24:01Z")

</div>

> [@Einstein8854](#):
>
> que cela soit un protocole ouvert et accessible aux dev

C’est le cas ! J’ai déjà fais des tests, et c’est très ouvert. Je n’ai créé ce post qu’après mes investigations 😉

> [@Einstein8854](#):
>
> que les produits proposés restent abordables

Étant donné que le protocole est ouvert, n’importe qui peut créer un appareil Matter, y compris en DIY ! 🚀 Cela devrait avoir le même impact que Zigbee : une concurrence illimitée, poussant les prix vers le bas. 📉

> [@Einstein8854](#):
>
> mais aussi que matter ne vienne pas tuer zigbee pour autant !

Matter n’est pas un concurrent de Zigbee, en revanche Thread est un concurrent de Zigbee.

Matter n’est pas un protocole radio ⚠

Tu peux avoir un appareil Zigbee compatible Matter 🙂

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 27, 2025, 6:55 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/4 "2025-03-27T18:55:59Z")

</div>

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/1/2/1290cf250f79ba1ac0fdd42938f9c1b201074482.png)

Paré pour demain ^^ D’une simplicité déconcertante à installer ^^ Une fois le plugin installé, il trouve tout tous seul … J’étais étonné qu’il n’y ai même pas besoin de configurer les Shelly ^^

---

<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:** [Mars 27, 2025, 7:04 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/5 "2025-03-27T19:04:40Z")

</div>

Exceptionnel ! J’ai hâte de voir tout ça fonctionner avec Gladys 🤩

---

<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:** [Mars 28, 2025, 3:56 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/6 "2025-03-28T15:56:18Z")

</div>

Merci à tous d’être venu pour ce live !

Le replay est disponible ici :

[https://www.youtube.com/live/gBxSVSGUjJ0](https://www.youtube.com/live/gBxSVSGUjJ0)

J’ai poussé le développement de ce matin ici :

> <https://github.com/GladysAssistant/Gladys/pull/2264>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[\] If your changes affects code, did your write the tests?
> \- \[\] Are tests passing? (\`npm test\` on both front/server)
> \- \[\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community (\[french forum\](https://community.gladysassistant.com/)/\[english forum\](https://en-community.gladysassistant.com/)) for testing before merging.
> \- \[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).
> \- \[\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Please provide a description of the change here. It's always best with screenshots, so don't hesitate to add some!

C’est encore WIP, mais c’est déjà une très bonne base, je pense qu’on est pas loin d’avoir quelque chose à publier en production 🙂

@Terdious comme on disait dans le live, je suis preneur d’un test de ta part avec MatterBridge pour m’assurer que les choix que j’ai fais sur l’identification des device/features sont bon 🙂

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 28, 2025, 4:05 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/7 "2025-03-28T16:05:43Z")

</div>

A peine lancé :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/7/0/7070327ca909706231076fb503c1e23788dcd4d4.png)

Ne faudrait-il pas désactiver matter de base ? Et profiter de ton bouton activation dans les settings ? Et sur la page des appareils, renvoyer vers la page de settings si non activé ?

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 28, 2025, 4:22 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/8 "2025-03-28T16:22:12Z")

</div>

Alors … Ca ne passe pas (le pairing code) mais je suppose que la raison :

```auto
2025-03-28T17:19:53+0100 <info> matter.pairDevice.js:38 (MatterHandler.pairDevice) Commissioning device with options: {"commissioning":{"regulatoryLocation":0,"regulatoryCountryCode":"XX","regulatoryLocationType":0},"discovery":{"identifierData":{"shortDiscriminator":15},"discoveryCapabilities":{"ble":false}},"passcode":63702205,"commissioningTimeoutSeconds":60,"commissioningAttempts":3,"commissioningRetryDelayMs":1000}
2025-03-28 17:19:53.938 INFO PeerCommissioner Commissioning device with identifier {"shortDiscriminator":15} and 1 scanners and knownAddress "undefined"
2025-03-28 17:19:53.938 INFO ControllerDiscovery Start Discovering devices using identifier {"shortDiscriminator":15} ...
2025-03-28 17:19:53.939 DEBUG MdnsScanner Registered waiter for query _S15._sub._matterc._udp.local with timeout 30 seconds
2025-03-28 17:19:53.939 DEBUG MdnsScanner Set 2 query records for query _S15._sub._matterc._udp.local: [{"name":"_matterc._udp.local","recordClass":1,"recordType":12},{"name":"_S15._sub._matterc._udp.local","recordClass":1,"recordType":12}]
2025-03-28 17:19:53.940 DEBUG MdnsScanner Sending 2 query records for 1 queries with 0 known answers. Re-Announce in 1.5 seconds
2025-03-28 17:19:53.942 DEBUG NodejsChannel Socket created and bound remoteAddress: undefined:5353 localAddress: 0.0.0.0:5353
2025-03-28 17:19:53.942 DEBUG NodejsChannel Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-03-28 17:19:53.942 DEBUG NodejsChannel Initialize multicast address: 172.26.50.62:5353 interface: eth0 type: udp4
2025-03-28 17:19:53.943 DEBUG NodejsChannel Initialize multicast address: ::%eth0:5353 interface: eth0 type: udp6
2025-03-28 17:19:55.441 DEBUG MdnsScanner Sending 2 query records for 1 queries with 0 known answers. Re-Announce in 3 seconds
2025-03-28 17:19:58.441 DEBUG MdnsScanner Sending 2 query records for 1 queries with 0 known answers. Re-Announce in 6 seconds
2025-03-28 17:20:04.442 DEBUG MdnsScanner Sending 2 query records for 1 queries with 0 known answers. Re-Announce in 12 seconds
2025-03-28 17:20:16.443 DEBUG MdnsScanner Sending 2 query records for 1 queries with 0 known answers. Re-Announce in 24 seconds
2025-03-28 17:20:23.940 DEBUG MdnsScanner Finishing waiter for query _S15._sub._matterc._udp.local, resolving: true
2025-03-28 17:20:23.940 DEBUG MdnsScanner Removing last query _S15._sub._matterc._udp.local and stopping announce timer
2025-03-28 17:20:23.940 INFO ControllerDiscovery Found 0 devices using identifier {"shortDiscriminator":15}

```

Je suis enfermé dans mon linux (dev sous windows).

Je regard…

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 28, 2025, 6:18 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/9 "2025-03-28T18:18:07Z")

</div>

Tout repris, j’ai installé un env de dev sur mon linux avec … vscode ! Je verrais plus tard si Cursor dispo.  
Donc à la connexion

- Côté logs MatterBridge :

```auto
info [18:05:06.148] [Frontend] WebSocketServer client "::ffff:10.1.0.62" connected to Matterbridge
info [18:05:18.685] [PaseServer] Received pairing request from udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:39400.
info [18:05:18.957] [PaseServer] Session 2371 created with udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:39400.
info [18:05:18.968] [InsecureSession] End insecure session insecure/7632973793930278144
info [18:05:19.103] [BehaviorServer] Invoke Matterbridge.armFailSafe online#846f4e6@0 expiryLengthSeconds: 60 breadcrumb: 1
info [18:05:19.120] [BehaviorServer] Invoke Matterbridge.certificateChainRequest online#846f4e8@0 certificateType: 1
info [18:05:19.145] [BehaviorServer] Invoke Matterbridge.certificateChainRequest online#846f4ea@0 certificateType: 2
info [18:05:19.156] [BehaviorServer] Invoke Matterbridge.attestationRequest online#846f4ec@0 attestationNonce: 4715872ecb087233d5d062588e348c5d8327780d7e571a1972df59b9cc5ebeaa
info [18:05:19.167] [BehaviorServer] Invoke Matterbridge.csrRequest online#846f4ee@0 csrNonce: 7a47ebec9f78619baa1423d1cf550ffbc610c9b5b6d5528a56e69821cd2d92cb
info [18:05:19.184] [BehaviorServer] Invoke Matterbridge.addTrustedRootCertificate online#846f4f0@0 rootCaCertificate: 15300101002402013703 ... 65a682b8ff2be688ea18
info [18:05:19.203] [BehaviorServer] Invoke Matterbridge.addNoc online#846f4f2@0 nocValue: 15300101022402013703 ... a05d01243f6df9f3f918 icacValue: ipkValue: 249f416140414c8a8509587f128476f4 caseAdminSubject: 13660266413132073995 adminVendorId: 65521
info [18:05:19.212] [DeviceCommissioner] Announce done fabric: 1 fabricIndex: 1
info [18:05:19.216] [Transaction] Tx reactor#224 waiting on online#846f4f2@0
info [18:05:19.218] [Operationa~edentials] addNoc success, adminVendorId 65521, caseAdminSubject 13660266413132073995
info [18:05:19.257] [AccessControlServer] ACL updated, updating ACL manager { fabricIndex: 1, privilege: 5, authMode: 2, subjects: [13660266413132073995], targets: null }
info [18:05:19.274] [BehaviorServer] Invoke Matterbridge.armFailSafe online#846f4f4@0 expiryLengthSeconds: 60 breadcrumb: 1
info [18:05:19.387] [CaseServer] Received pairing request from udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:39400
notice [18:05:19.418] [Matterbridge] Session opened on server node for Matterbridge: { name: 'secure/2372', nodeId: 18303769249106620906, peerNodeId: 13660266413132073995, fabric: { fabricIndex: 1, fabricId: 1, nodeId: 18303769249106620906, rootNodeId: 13660266413132073995, rootVendorId: 65521, label: '' }, isPeerActive: true, lastInteractionTimestamp: 1743185119417, lastActiveTimestamp: 1743185119417, numberOfActiveSubscriptions: 0 }
info [18:05:19.421] [CaseServer] Session 2372 created with udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:39400 for Fabric FE040D278FB7F1EA (index 1) and PeerNode BD9303ED73EFCC0B with CATs undefined
info [18:05:19.451] [InsecureSession] End insecure session insecure/1863744617825343146
info [18:05:19.468] [BehaviorServer] Invoke Matterbridge.commissioningComplete online#912e3da@bd9303ed73efcc0b (no payload)
info [18:05:19.472] [DeviceCommissioner] All announcements stopped
info [18:05:19.474] [SecureSession] Register Session secure/2371 to close when exchange is ended.
notice [18:05:19.477] [Matterbridge] Server node for Matterbridge was initially commissioned successfully!
notice [18:05:19.479] [Matterbridge] Commissioned fabric index 1 added on server node for Matterbridge: { fabricIndex: 1, fabricId: 1, nodeId: 18303769249106620906, rootNodeId: 13660266413132073995, rootVendorId: 65521, label: '' }
info [18:05:19.480] [Matterbridge] Fabrics: [{ fabricIndex: 1, fabricId: '1', nodeId: '18303769249106620906', rootNodeId: '13660266413132073995', rootVendorId: 65521, rootVendorName: '(MatterServer)', label: '' }]
info [18:05:19.481] [GeneralCom~erHandler] Commissioning completed on fabric #1 as node #18303769249106620906.
info [18:05:19.517] [BehaviorServer] Invoke Matterbridge.updateFabricLabel online#912e3dc@bd9303ed73efcc0b label: Gladys Assistant fabricIndex: 1
info [18:05:19.526] [Transaction] Tx reactor#230 waiting on online#912e3dc@bd9303ed73efcc0b
notice [18:05:19.531] [Matterbridge] Commissioned fabric index 1 updated on server node for Matterbridge: { fabricIndex: 1, fabricId: 1, nodeId: 18303769249106620906, rootNodeId: 13660266413132073995, rootVendorId: 65521, label: 'Gladys Assistant' }
info [18:05:19.531] [Matterbridge] Fabrics: [{ fabricIndex: 1, fabricId: '1', nodeId: '18303769249106620906', rootNodeId: '13660266413132073995', rootVendorId: 65521, rootVendorName: '(MatterServer)', label: 'Gladys Assistant' }]
info [18:05:19.963] [InteractionServer] Successfully created subscription 1167932576 for Session 2372 to peer@1:0xbd9303ed73efcc0b. Updates: 1 - 60 => 62 seconds (sendInterval = 49 seconds)
notice [18:05:19.984] [Matterbridge] Session subscriptions changed on server node for Matterbridge: { name: 'secure/2372', nodeId: 18303769249106620906, peerNodeId: 13660266413132073995, fabric: { fabricIndex: 1, fabricId: 1, nodeId: 18303769249106620906, rootNodeId: 13660266413132073995, rootVendorId: 65521, label: '' }, isPeerActive: true, lastInteractionTimestamp: 1743185119417, lastActiveTimestamp: 1743185119417, numberOfActiveSubscriptions: 1 }

```

L’image de pairing code flashable s’est transformée en :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/4/d43785c9dd709a2dfc238ac08f40b0a3c5f8890e.png)

- Côté Gladys :

```auto
[...]
2025-03-28 19:05:23.461 DEBUG PairedNode Node 18303769249106620906: Creating device 0 {"29":{"deviceTypeList":[{"deviceType":22,"revision":2}],"serverList":[40,31,63,48,60,62,51,29],"clientList":[],"partsList":[1,10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"31":{"acl":[{"privilege":5,"authMode":2,"subjects":["13660266413132073995"],"targets":null,"fabricIndex":1}],"subjectsPerAccessControlEntry":4,"targetsPerAccessControlEntry":3,"accessControlEntriesPerFabric":4,"clusterRevision":1,"featureMap":{},"attributeList":[0,2,3,4,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"40":{"dataModelRevision":17,"vendorName":"Matterbridge","vendorId":65521,"productName":"Matterbridge aggregator","productId":32768,"nodeLabel":"Matterbridge aggregator","location":"XX","hardwareVersion":6,"hardwareVersionString":"6.8.0-52-generic","softwareVersion":2,"softwareVersionString":"2.2.5","productLabel":"Matterbridge aggregator","serialNumber":"SN77b87cfd460bbd72","uniqueId":"UI77b87cfd460bbd72","capabilityMinima":{"caseSessionsPerFabric":3,"subscriptionsPerFabric":3},"specificationVersion":16973824,"maxPathsPerInvoke":10,"clusterRevision":3,"featureMap":{},"attributeList":[0,1,2,3,4,5,6,7,8,9,10,14,15,18,19,21,22,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"48":{"breadcrumb":0,"basicCommissioningInfo":{"failSafeExpiryLengthSeconds":60,"maxCumulativeFailsafeSeconds":900},"regulatoryConfig":2,"locationCapability":2,"supportsConcurrentConnection":true,"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,65533,65532,65531,65529,65528],"acceptedCommandList":[0,2,4],"generatedCommandList":[1,3,5]},"51":{"networkInterfaces":[{"name":"enp2s0","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"7c8334b9fca5","iPv4Addresses":["0a0500e3"],"iPv6Addresses":["00000000"],"type":2},{"name":"docker0","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"0242d0a03741","iPv4Addresses":["ac110001"],"iPv6Addresses":["00000000"],"type":2},{"name":"br-2eecc872cee4","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"02ab40d33c39","iPv4Addresses":["ac120001"],"iPv6Addresses":["00000000"],"type":2},{"name":"veth2417577","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"5e9da348f214","iPv4Addresses":[],"iPv6Addresses":["00000000"],"type":2},{"name":"vethb8de1cb","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"d2e0b4de5248","iPv4Addresses":[],"iPv6Addresses":["00000000"],"type":2},{"name":"vethb8c8d92","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"4ec6e7ff65e7","iPv4Addresses":[],"iPv6Addresses":["00000000"],"type":2},{"name":"veth220f71b","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"36183ec2d11c","iPv4Addresses":[],"iPv6Addresses":["00000000"],"type":2},{"name":"veth2686606","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"d2add5942f62","iPv4Addresses":[],"iPv6Addresses":["00000000"],"type":2}],"rebootCount":3,"upTime":3472,"totalOperationalHours":21,"testEventTriggersEnabled":false,"clusterRevision":2,"featureMap":{"dataModelTest":true},"attributeList":[0,1,2,3,8,65533,65532,65531,65529,65528],"acceptedCommandList":[0,1,3],"generatedCommandList":[2,4]},"60":{"windowStatus":0,"adminFabricIndex":null,"adminVendorId":null,"clusterRevision":1,"featureMap":{"basic":false},"attributeList":[0,1,2,65533,65532,65531,65529,65528],"acceptedCommandList":[0,2],"generatedCommandList":[]},"62":{"nocs":[{"noc":"15300101022402013703241400182604df6d982d26055fa4454237062415012711eaf1b78f270d04fe1824070124080130094104fb834dd94b3f3147570912e12a52f3b43fc459aa33a8185528bcc8da544c5db74da780efe6c6b20fdcffe775040115f90ff9c502a0aba2cc1bc508b67e511b58370a3501280118240201360304020401183004144d6effa5be27c3ba2313b159f4ad233911c0fed4300514ea64585f9d84965b500818dd44a8385db5bc618418300b40a6771706dafea93da1bfad7c458943dfe6b96c836f5dbbc203d1c90af69bb9bcdb563cdeef1d96a9f286686f9763cde97a4c8c301f443ba05d01243f6df9f3f918","icac":null,"fabricIndex":1}],"fabrics":[{"rootPublicKey":"046c5b1b64fcf104c1e3200dedbaa2ca73368e43e75fc0e32386390c5c51bb343180137d6c38c51199f8cb5484b794eda0dbc571bc8c21bb8c4536ed56fb24ef4f","vendorId":65521,"fabricId":"1","nodeId":"18303769249106620906","label":"Gladys Assistant","fabricIndex":1}],"supportedFabrics":254,"commissionedFabrics":1,"trustedRootCertificates":["153001010024020137032414001826047c6c982d2605fca24542370624140018240701240801300941046c5b1b64fcf104c1e3200dedbaa2ca73368e43e75fc0e32386390c5c51bb343180137d6c38c51199f8cb5484b794eda0dbc571bc8c21bb8c4536ed56fb24ef4f370a3501290118240260300414ea64585f9d84965b500818dd44a8385db5bc6184300514ea64585f9d84965b500818dd44a8385db5bc618418300b40e925c4db5cb042668c7b59253d13353f2fb8303f453d20407875fe75bdedf1be6cd5ae3641710b7174f7e6bcd55aec0a07c183fd68947765a682b8ff2be688ea18"],"currentFabricIndex":1,"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,5,65533,65532,65531,65529,65528],"acceptedCommandList":[0,2,4,6,7,9,10,11],"generatedCommandList":[1,3,5,8]},"63":{"groupKeyMap":[],"groupTable":[],"maxGroupsPerFabric":0,"maxGroupKeysPerFabric":1,"clusterRevision":2,"featureMap":{"cacheAndSync":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[0,1,3,4],"generatedCommandList":[2,5]}}
2025-03-28 19:05:23.492 DEBUG PairedNode Node 18303769249106620906: Creating device 1 {"29":{"deviceTypeList":[{"deviceType":14,"revision":1}],"serverList":[29],"clientList":[],"partsList":[10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.495 DEBUG PairedNode Node 18303769249106620906: Creating device 2 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[3,4],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SPEM-003CEBEU","nodeLabel":"Pro3EM Locaux Pro","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"1.4.4-g6d2a586","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Pro3EM Locaux Pro","serialNumber":"shellypro3em-2CBCBBB2DB18","reachable":true,"uniqueId":"e059a4bdf914374eee37f4fce8d8c1bb","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"Switch"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.500 DEBUG PairedNode Node 18303769249106620906: Creating device 3 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.503 DEBUG PairedNode Node 18303769249106620906: Creating device 4 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"29":{"deviceTypeList":[{"deviceType":770,"revision":2}],"serverList":[29,3,1026],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"1026":{"measuredValue":4720,"minMeasuredValue":null,"maxMeasuredValue":null,"tolerance":0,"clusterRevision":4,"featureMap":{},"acceptedCommandList":[],"generatedCommandList":[],"attributeList":[0,1,2,3,65533,65532,65531,65529,65528]}}
2025-03-28 19:05:23.504 DEBUG PairedNode Node 18303769249106620906: Creating device 5 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[6,7,8],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SPSW-003XE16EU","nodeLabel":"Pro3 L1 Bâtiment Perso","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"1.4.4-g6d2a586","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Pro3 L1 Bâtiment Perso","serialNumber":"shellypro3-2CBCBBA5E414","reachable":true,"uniqueId":"9234c6c5e1cba064abc04f37f6707ac0","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"Switch"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.507 DEBUG PairedNode Node 18303769249106620906: Creating device 6 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":true,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.510 DEBUG PairedNode Node 18303769249106620906: Creating device 7 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.512 DEBUG PairedNode Node 18303769249106620906: Creating device 8 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.515 DEBUG PairedNode Node 18303769249106620906: Creating device 9 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[10,11,12],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SPSW-003XE16EU","nodeLabel":"Pro3 L2 Bâtiment Perso","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"1.4.4-g6d2a586","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Pro3 L2 Bâtiment Perso","serialNumber":"shellypro3-2CBCBBA747C0","reachable":true,"uniqueId":"0ef1e597ee48f5f5b2e511a2ced51a5c","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"Switch"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.526 DEBUG PairedNode Node 18303769249106620906: Creating device 10 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.532 DEBUG PairedNode Node 18303769249106620906: Creating device 11 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.535 DEBUG PairedNode Node 18303769249106620906: Creating device 12 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.537 DEBUG PairedNode Node 18303769249106620906: Creating device 13 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[14],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SPEM-003CEBEU","nodeLabel":"Pro3EM Bâtiment Perso","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"1.4.4-g6d2a586","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Pro3EM Bâtiment Perso","serialNumber":"shellypro3em-9454C5B99110","reachable":true,"uniqueId":"c4d1fe0bdf8549110f7afc1617b5b3af","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"PowerMeter"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.545 DEBUG PairedNode Node 18303769249106620906: Creating device 14 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"29":{"deviceTypeList":[{"deviceType":770,"revision":2}],"serverList":[29,3,1026],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"1026":{"measuredValue":4490,"minMeasuredValue":null,"maxMeasuredValue":null,"tolerance":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.553 DEBUG PairedNode Node 18303769249106620906: Creating device 15 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[16],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SHEM-3","nodeLabel":"Puissance L3 Perso","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"v1.14.0-gcb84623","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Puissance L3 Perso","serialNumber":"shellyem3-C8C9A33E667D","reachable":true,"uniqueId":"04e585554a9b108a0de43ef4d45fa738","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"Switch"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.555 DEBUG PairedNode Node 18303769249106620906: Creating device 16 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.557 DEBUG PairedNode Node 18303769249106620906: Creating device 17 {"29":{"deviceTypeList":[{"deviceType":19,"revision":2},{"deviceType":17,"revision":1}],"serverList":[29,57,47,64],"clientList":[],"partsList":[18,19,20],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"47":{"status":1,"order":0,"description":"AC Power","endpointList":[],"clusterRevision":2,"featureMap":{"wired":true,"battery":false,"rechargeable":false,"replaceable":false},"attributeList":[0,1,2,31,65533,65532,65531,65529,65528,5],"acceptedCommandList":[],"generatedCommandList":[],"wiredCurrentType":0},"57":{"vendorName":"Shelly","vendorId":65521,"productName":"SPSW-003XE16EU","nodeLabel":"Pro3 L3 Bâtiment Perso","hardwareVersion":1,"hardwareVersionString":"1.0.0","softwareVersion":1,"softwareVersionString":"1.4.4-g6d2a586","productUrl":"https://www.npmjs.com/package/matterbridge","productLabel":"Pro3 L3 Bâtiment Perso","serialNumber":"shellypro3-FCE8C0DBF970","reachable":true,"uniqueId":"d4d0174a4ba0c81571d931868b458dec","clusterRevision":3,"featureMap":{},"attributeList":[1,2,3,5,7,8,9,10,13,14,15,17,18,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"64":{"labelList":[{"label":"composed","value":"Switch"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.563 DEBUG PairedNode Node 18303769249106620906: Creating device 18 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.565 DEBUG PairedNode Node 18303769249106620906: Creating device 19 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.569 DEBUG PairedNode Node 18303769249106620906: Creating device 20 {"3":{"identifyTime":0,"identifyType":0,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65533,65532,65531,65529,65528],"acceptedCommandList":[0,64],"generatedCommandList":[]},"4":{"nameSupport":{"nameSupport":false,"groupNames":false},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]},"6":{"onOff":false,"clusterRevision":6,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,65533,65532,65531,65529,65528,16384,16385,16386,16387],"acceptedCommandList":[0,64,65,66,1,2],"generatedCommandList":[],"globalSceneControl":false,"onTime":0,"offWaitTime":0,"startUpOnOff":null},"29":{"deviceTypeList":[{"deviceType":266,"revision":3}],"serverList":[29,3,4,6],"clientList":[],"partsList":[],"clusterRevision":2,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65533,65532,65531,65529,65528],"acceptedCommandList":[],"generatedCommandList":[]}}
2025-03-28 19:05:23.572 DEBUG PairedNode Node 18303769249106620906: Endpoints from PartsLists [[0,[1,10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9]],[1,[10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9]],[2,[3,4]],[3,[]],[4,[]],[5,[6,7,8]],[6,[]],[7,[]],[8,[]],[9,[10,11,12]],[10,[]],[11,[]],[12,[]],[13,[14]],[14,[]],[15,[16]],[16,[]],[17,[18,19,20]],[18,[]],[19,[]],[20,[]]]
2025-03-28 19:05:23.573 DEBUG PairedNode Node 18303769249106620906: Endpoint usages {"1":[0],"2":[0,1],"3":[0,1,2],"4":[0,1,2],"5":[0,1],"6":[0,1,5],"7":[0,1,5],"8":[0,1,5],"9":[0,1],"10":[0,1,9],"11":[0,1,9],"12":[0,1,9],"13":[0,1],"14":[0,1,13],"15":[0,1],"16":[0,1,15],"17":[0,1],"18":[0,1,17],"19":[0,1,17],"20":[0,1,17]}
2025-03-28 19:05:23.573 DEBUG PairedNode Node 18303769249106620906: Processing Endpoint [["1",[0]]]
2025-03-28 19:05:23.574 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 1 -> Parent: 0
2025-03-28 19:05:23.576 DEBUG PairedNode Node 18303769249106620906: Endpoint data Cleanup {"0":true}
2025-03-28 19:05:23.576 DEBUG PairedNode Node 18303769249106620906: Processing Endpoint [["2",[1]],["5",[1]],["9",[1]],["13",[1]],["15",[1]],["17",[1]]]
2025-03-28 19:05:23.576 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 2 -> Parent: 1
2025-03-28 19:05:23.577 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 5 -> Parent: 1
2025-03-28 19:05:23.577 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 9 -> Parent: 1
2025-03-28 19:05:23.580 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 13 -> Parent: 1
2025-03-28 19:05:23.581 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 15 -> Parent: 1
2025-03-28 19:05:23.581 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 17 -> Parent: 1
2025-03-28 19:05:23.582 DEBUG PairedNode Node 18303769249106620906: Endpoint data Cleanup {"1":true}
2025-03-28 19:05:23.582 DEBUG PairedNode Node 18303769249106620906: Processing Endpoint [["3",[2]],["4",[2]],["6",[5]],["7",[5]],["8",[5]],["10",[9]],["11",[9]],["12",[9]],["14",[13]],["16",[15]],["18",[17]],["19",[17]],["20",[17]]]
2025-03-28 19:05:23.583 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 3 -> Parent: 2
2025-03-28 19:05:23.584 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 4 -> Parent: 2
2025-03-28 19:05:23.584 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 6 -> Parent: 5
2025-03-28 19:05:23.585 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 7 -> Parent: 5
2025-03-28 19:05:23.585 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 8 -> Parent: 5
2025-03-28 19:05:23.585 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 10 -> Parent: 9
2025-03-28 19:05:23.586 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 11 -> Parent: 9
2025-03-28 19:05:23.586 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 12 -> Parent: 9
2025-03-28 19:05:23.586 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 14 -> Parent: 13
2025-03-28 19:05:23.587 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 16 -> Parent: 15
2025-03-28 19:05:23.587 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 18 -> Parent: 17
2025-03-28 19:05:23.587 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 19 -> Parent: 17
2025-03-28 19:05:23.587 DEBUG PairedNode Node 18303769249106620906: Endpoint structure: Child: 20 -> Parent: 17
2025-03-28 19:05:23.588 DEBUG PairedNode Node 18303769249106620906: Endpoint data Cleanup {"2":true,"5":true,"9":true,"13":true,"15":true,"17":true}
2025-03-28 19:05:23.588 DEBUG InteractionClient Sending read request: attributes: 0x0/OperationalCredentials(0x3e)/fabrics(0x1) and events: undefined
2025-03-28 19:05:23.589 DEBUG MessageExchange New exchange channel: udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 protocol: 1 exId: 1268 sess: secure/34538 peerSess: 2372 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP I
2025-03-28 19:05:23.590 DEBUG InteractionClient Sending read request to udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 for attributes 0x0/OperationalCredentials(0x3e)/fabrics(0x1) and events undefined
2025-03-28 19:05:23.591 DEBUG ExchangeManager Message » for: I/ReadRequest msgId: 2372/1268/152232953 type: 0x1/0x2 reqAck size: 21 payload: 1536001724020024033e2404011818290324ff0c18
2025-03-28 19:05:23.595 DEBUG MessageExchange Message « for: I/ReportData msgId: 34538/1268/240120675 type: 0x1/0x5 acked: 152232953 reqAck size: 145 payload: 1536011535012600309fdc68370124020024033e24040118360215300141046c5b1b64fcf104c1e3200dedbaa2ca73368e43e75fc0e32386390c5c51bb343180137d6c38c51199f8cb5484b794eda0dbc571bc8c21bb8c4536ed56fb24ef4f2502f1ff2403012704eaf1b78f270d04fe2c0510476c6164797320417373697374616e7424fe011818181818290424ff0c18
2025-03-28 19:05:23.598 DEBUG InteractionClient Received read response with attributes 0x0/OperationalCredentials(0x3e)/fabrics(0x1) = [{"rootPublicKey":"046c5b1b64fcf104c1e3200dedbaa2ca73368e43e75fc0e32386390c5c51bb343180137d6c38c51199f8cb5484b794eda0dbc571bc8c21bb8c4536ed56fb24ef4f","vendorId":65521,"fabricId":"1","nodeId":"18303769249106620906","label":"Gladys Assistant","fabricIndex":1}] and events
2025-03-28 19:05:23.598 DEBUG ExchangeManager Message » for: SC/StandaloneAck msgId: 2372/1268/152232954 type: 0x0/0x10 acked: 240120675
2025-03-28T19:05:23+0100 <info> matter.pairDevice.js:42 (MatterHandler.pairDevice) Successfully commissioned device with nodeId 18303769249106620906
2025-03-28T19:05:23+0100 <info> convertToGladysDevice.js:57 () Matter pairing - Cluster client 29
2025-03-28 19:07:46.758 DEBUG MessageExchange New exchange channel: udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 protocol: 1 exId: 62691 sess: secure/34538 peerSess: 34538 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP
2025-03-28 19:07:46.758 DEBUG MessageExchange Message « for: I/ReportData msgId: 34538/62691/240120678 type: 0x1/0x5 reqAck size: 13 payload: 152600a03c9d45290424ff0c18
2025-03-28 19:07:46.759 DEBUG ExchangeManager Message » for: SC/StandaloneAck msgId: 34538/62691/152232957 type: 0x0/0x10 acked: 240120678
2025-03-28T19:08:00+0100 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Fri, 28 Mar 2025 18:08:00 GMT
2025-03-28 19:08:35.667 DEBUG MessageExchange New exchange channel: udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 protocol: 1 exId: 62692 sess: secure/34538 peerSess: 34538 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP
2025-03-28 19:08:35.669 DEBUG MessageExchange Message « for: I/ReportData msgId: 34538/62692/240120679 type: 0x1/0x5 reqAck size: 13 payload: 152600a03c9d45290424ff0c18
2025-03-28 19:08:35.670 DEBUG ExchangeManager Message » for: SC/StandaloneAck msgId: 34538/62692/152232958 type: 0x0/0x10 acked: 240120679
2025-03-28 19:07:46.758 DEBUG MessageExchange New exchange channel: udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 protocol: 1 exId: 62691 sess: secure/34538 peerSess: 34538 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP
2025-03-28 19:07:46.758 DEBUG MessageExchange Message « for: I/ReportData msgId: 34538/62691/240120678 type: 0x1/0x5 reqAck size: 13 payload: 152600a03c9d45290424ff0c18
2025-03-28 19:07:46.759 DEBUG ExchangeManager Message » for: SC/StandaloneAck msgId: 34538/62691/152232957 type: 0x0/0x10 acked: 240120678
2025-03-28T19:08:00+0100 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Fri, 28 Mar 2025 18:08:00 GMT
2025-03-28 19:08:35.667 DEBUG MessageExchange New exchange channel: udp://[fe80::1f9b:dcb9:d14b:707a%enp2s0]:5540 on session secure/34538 protocol: 1 exId: 62692 sess: secure/34538 peerSess: 34538 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP
2025-03-28 19:08:35.669 DEBUG MessageExchange Message « for: I/ReportData msgId: 34538/62692/240120679 type: 0x1/0x5 reqAck size: 13 payload: 152600a03c9d45290424ff0c18
2025-03-28 19:08:35.670 DEBUG ExchangeManager Message » for: SC/StandaloneAck msgId: 34538/62692/152232958 type: 0x0/0x10 acked: 240120679

```

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/8/5/851b01a4a7b77851a10a50a6382476c41c480a26.png)  
Logs réseau :

```auto
[
    {
        "name": "Matterbridge (Matterbridge aggregator)",
        "external_id": "matter:18303769249106620906:1",
        "selector": "matter:18303769249106620906:1",
        "service_id": "1404ff11-4863-47e4-8060-dd25844b67e4",
        "should_poll": false,
        "features": [],
        "params": []
    }
]

```

Plein d’autres choses dans les […] mais trop lourd pour envoyer ici

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/f/0f66b0fa4bdb0f8d9dcc6433666e568007f82587.png)

Maybe autoriser l’appairage via le code sans tirer :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/5/45efe6b2fb1a485b655788edc77015f03500bfd3.png)

---

<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:** [Mars 28, 2025, 7:04 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/10 "2025-03-28T19:04:51Z")

</div>

Merci pour l’investigation !! Je vois que tu n’as qu’un seul appareil détecté, malgré le fait qu’il devrait y en avoir plusieurs chez toi.

En regardant le code, je me rend compte qu’il y a le même souci de .forEach async que j’ai trouvé pendant le live, l’IA s’est encore pris les pieds dans le tapis 😛

 ![Screenshot 2025-03-28 at 20.02.02](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/8/f803c0260d53824da3f8d543ee493cc251b8f40e.png)

Je viens de pousser le correctif.

Sinon, je suis d’accord avec toutes tes remarques :

> [@Terdious](#):
>
> Ne faudrait-il pas désactiver matter de base ?

Oui !

> [@Terdious](#):
>
> Maybe autoriser l’appairage via le code sans tirer :

Oui !

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 28, 2025, 7:16 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/11 "2025-03-28T19:16:34Z")

</div>

Top !

J’ai rajouter un peu de log pour en voir plus.  
Je t’ai mis les logs en expurgeant les Function des objets :

```auto
2025-03-28T19:59:41+0100 <info> matter.init.js:36 (MatterHandler.init) Matter controller started
convertToGladysDevice gladysDevice
Aggregator {
  clusterServers: Map(1) {
    29 => {
      id: 29,
      name: 'Descriptor',
      _type: 'ClusterServer',
      attributes: [Object],
      commands: {},
      events: {},
      datasource: [Getter/Setter],
      _assignToEndpoint: [Function: _assignToEndpoint],
      [...]
    }
  },
  clusterClients: Map(1) {
    29 => {
      id: 29,
      name: 'Descriptor',
      revision: 2,
      _type: 'ClusterClient',
      supportedFeatures: [Object],
      isUnknown: false,
      endpointId: 1,
      attributes: [Object],
      events: {},
      commands: {},
      subscribeAllAttributes: [AsyncFunction: subscribeAllAttributes],
      [...]
    }
  },
  childEndpoints: [
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 2,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    },
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 5,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    },
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 9,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    },
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 13,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    },
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 15,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    },
    ComposedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [Array],
      number: 17,
      uniqueStorageKey: undefined,
      name: 'MA-bridgednode',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array]
    }
  ],
  number: 1,
  uniqueStorageKey: undefined,
  name: 'MA-aggregator',
  structureChangedCallback: [Function: structureChangedCallback],
  descriptorCluster: {
    id: 29,
    name: 'Descriptor',
    _type: 'ClusterServer',
    attributes: {
      deviceTypeList: [FixedAttributeServer],
      serverList: [FixedAttributeServer],
      clientList: [FixedAttributeServer],
      partsList: [AttributeServer],
      clusterRevision: [AttributeServer],
      featureMap: [AttributeServer],
      attributeList: [AttributeServer],
      acceptedCommandList: [AttributeServer],
      generatedCommandList: [AttributeServer]
    },
    commands: {},
    events: {},
    datasource: [Getter/Setter],
    _assignToEndpoint: [Function: _assignToEndpoint],
    [...]
  },
  deviceTypes: [
    {
      name: 'MA-aggregator',
      code: 14,
      deviceClass: 'Simple',
      superSet: undefined,
      revision: 1,
      requiredServerClusters: [],
      optionalServerClusters: [Array],
      requiredClientClusters: [],
      optionalClientClusters: [],
      unknown: false
    }
  ]
}
{
  basicInformation: {
    dataModelRevision: 17,
    vendorName: 'Matterbridge',
    vendorId: 65521,
    productName: 'Matterbridge aggregator',
    productId: 32768,
    nodeLabel: 'Matterbridge aggregator',
    location: 'XX',
    hardwareVersion: 6,
    hardwareVersionString: '6.8.0-52-generic',
    softwareVersion: 2,
    softwareVersionString: '2.2.5',
    productLabel: 'Matterbridge aggregator',
    serialNumber: 'SN77b87cfd460bbd72',
    uniqueId: 'UI77b87cfd460bbd72',
    capabilityMinima: { caseSessionsPerFabric: 3, subscriptionsPerFabric: 3 },
    specificationVersion: 16973824,
    maxPathsPerInvoke: 10
  },
  deviceMeta: {
    ethernetConnected: false,
    wifiConnected: false,
    threadConnected: false,
    rootEndpointServerList: [
      40, 31, 63, 48,
      60, 62, 51, 29
    ],
    isBatteryPowered: false,
    isIntermittentlyConnected: false,
    isThreadSleepyEndDevice: false,
    dataRevision: 1
  }
}
PairedNode {
  events: {
    initialized: BasicObservable {},
    initializedFromRemote: BasicObservable {},
    stateChanged: BasicObservable {},
    attributeChanged: BasicObservable {},
    eventTriggered: BasicObservable {},
    structureChanged: BasicObservable {},
    decommissioned: BasicObservable {}
  },
  nodeId: 9432374632414880343n
}
2025-03-28T19:59:41+0100 <info> convertToGladysDevice.js:62 () Matter pairing - Cluster client 29
{
  id: 29,
  name: 'Descriptor',
  revision: 2,
  _type: 'ClusterClient',
  supportedFeatures: { tagList: false },
  isUnknown: false,
  endpointId: 1,
  attributes: {
    deviceTypeList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 0,
      attribute: [Object],
      name: 'deviceTypeList',
      endpointId: 1,
      clusterId: 29
    },
    serverList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 1,
      attribute: [Object],
      name: 'serverList',
      endpointId: 1,
      clusterId: 29
    },
    clientList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 2,
      attribute: [Object],
      name: 'clientList',
      endpointId: 1,
      clusterId: 29
    },
    partsList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 3,
      attribute: [Object],
      name: 'partsList',
      endpointId: 1,
      clusterId: 29
    },
    clusterRevision: SupportedAttributeClient {
      schema: [TlvNumberSchema],
      id: 65533,
      attribute: [Object],
      name: 'clusterRevision',
      endpointId: 1,
      clusterId: 29
    },
    featureMap: SupportedAttributeClient {
      schema: [TlvWrapper],
      id: 65532,
      attribute: [Object],
      name: 'featureMap',
      endpointId: 1,
      clusterId: 29
    },
    attributeList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 65531,
      attribute: [Object],
      name: 'attributeList',
      endpointId: 1,
      clusterId: 29
    },
    acceptedCommandList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 65529,
      attribute: [Object],
      name: 'acceptedCommandList',
      endpointId: 1,
      clusterId: 29
    },
    generatedCommandList: SupportedAttributeClient {
      schema: [ArraySchema],
      id: 65528,
      attribute: [Object],
      name: 'generatedCommandList',
      endpointId: 1,
      clusterId: 29
    },
    tagList: AttributeClient {
      schema: [ArraySchema],
      id: 4,
      attribute: [Object],
      name: 'tagList',
      endpointId: 1,
      clusterId: 29
    }
  },
  events: {},
  commands: {},
  subscribeAllAttributes: [AsyncFunction: subscribeAllAttributes],
  [...]
}

```

Je pense que le fait que ce soit une passerelle, c’est construit autrement. Peut-être se concentrer sur tes modules pour le moment et revoir une prochaine PR pour les bridges ?  
En tout cas on reçoit bien dans le fichier `convertToGladysDevice` sous `device` les appareils enregistré dans le bridge via : `device.childEndpoints[]` car les propriétés des objets du tableau contiennent dans `device.childEndpoints[].ComposedDevice.number` les numéros des Endpoint des shelly

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/1/d15619504826ccc7eee1492d3a2c203aaf6ee6ce.png)  
A investiguer plus loin au prochain épisode ou quand tu le souhaites.

---

<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:** [Mars 28, 2025, 7:24 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/12 "2025-03-28T19:24:27Z")

</div>

> [@Terdious](#):
>
> Je pense que le fait que ce soit une passerelle, c’est construit autrement. Peut-être se concentrer sur tes modules pour le moment et revoir une prochaine PR pour les bridges ?

Je pense que ça serait bien quand même de comprendre comment ça s’architecture juste pour être sûr qu’on fasse pas fausse route sur le format des external\_id 🙂

Est-ce que tu peux essayer d’avoir le format «&nbsp;simplifié&nbsp;» de ton unique Node ?

Il faudrait réfléchir à quoi ressemble l’external\_id d’un tel device

---

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [Avril 1, 2025, 7:02 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/13 "2025-04-01T07:02:03Z")

</div>

Bonjour tout le monde,

> [@pierre-gilles](#):
>
> C’est le cas ! J’ai déjà fais des tests, et c’est très ouvert. Je n’ai créé ce post qu’après mes investigations 😉

Un peu de lecture concernant le dev de bidulles IoT Matter ici : [ESP LowCode Matter splits system and application firmware for simpler ESP32 device development - CNX Software](https://www.cnx-software.com/2025/04/01/esp-lowcode-matter-splits-system-and-application-firmware-for-simpler-esp32-device-development/) 🙂 On va donc pouvoir encore plus simplement pouvoir «&nbsp;créer&nbsp;» de interfaces physiques via Matter avec ce types de produits dont le SDK est Open 😍

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Avril 2, 2025, 8:23 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/14 "2025-04-02T08:23:44Z")

</div>

Salut @pierre-gilles,

J’ai chercher mais … ^^ je ne sais pas encore comment accéder aux devices derrières un bridge.  
En ajoutant dans `server/services/matter/lib/matter.pairDevice.js` la fonction suivante après le `this.devices.push(gladysDevice);` :

```auto
        const childEndpointsCount = device.childEndpoints?.length || 0;
        if (childEndpointsCount > 0) {
          logger.debug(`Processing ${childEndpointsCount} child endpoints for device ${device.number}`);

          await Promise.each(device.childEndpoints, async (childEndpoint) => {

            console.log('pairDevice childEndpoints');
            console.log(childEndpoint);
            const childDevice = await convertToGladysDevice(
              this.serviceId,
              nodeDetail.nodeId, // ID unique pour le child device
              node,
              childEndpoint, // Le child endpoint est traité comme un device
              nodeDetail.deviceData,
              nodeDetail.unique_id
            );
            this.listenToStateChange(nodeDetail.nodeId, childEndpoint);
            this.devices.push(childDevice);
          });
        }

```

Voilà l’exemple d’un device «&nbsp;childEndpoints&nbsp;» :

```auto
childEndpoints: [
    PairedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [],
      number: 3,
      uniqueStorageKey: undefined,
      name: 'MA-onoffpluginunit',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array],
      declineAddingMoreClusters: true
    },
    PairedDevice {
      clusterServers: [Map],
      clusterClients: [Map],
      childEndpoints: [],
      number: 4,
      uniqueStorageKey: undefined,
      name: 'MA-temperaturesensor',
      structureChangedCallback: [Function: structureChangedCallback],
      descriptorCluster: [Object],
      deviceTypes: [Array],
      declineAddingMoreClusters: true
    }
  ],
  number: 2,
  uniqueStorageKey: undefined,
  name: 'MA-bridgednode',
  structureChangedCallback: [Function: structureChangedCallback],
  descriptorCluster: {
    id: 29,
    name: 'Descriptor',
    _type: 'ClusterServer',
    attributes: {
      deviceTypeList: [FixedAttributeServer],
      serverList: [FixedAttributeServer],
      clientList: [FixedAttributeServer],
      partsList: [AttributeServer],
      clusterRevision: [AttributeServer],
      featureMap: [AttributeServer],
      attributeList: [AttributeServer],
      acceptedCommandList: [AttributeServer],
      generatedCommandList: [AttributeServer]
    },
    commands: {},
    events: {},
    datasource: [Getter/Setter],
    _assignToEndpoint: [Function: _assignToEndpoint],
    _close: [Function: _close],
    isAttributeSupported: [Function: isAttributeSupported],
    isAttributeSupportedByName: [Function: isAttributeSupportedByName],
    isEventSupported: [Function: isEventSupported],
    isEventSupportedByName: [Function: isEventSupportedByName],
    isCommandSupported: [Function: isCommandSupported],
    isCommandSupportedByName: [Function: isCommandSupportedByName],
    getDeviceTypeListAttribute: [Function (anonymous)],
    getServerListAttribute: [Function (anonymous)],
    getClientListAttribute: [Function (anonymous)],
    getPartsListAttribute: [Function (anonymous)],
    setPartsListAttribute: [Function (anonymous)],
    subscribePartsListAttribute: [Function (anonymous)],
    getClusterRevisionAttribute: [Function (anonymous)],
    setClusterRevisionAttribute: [Function (anonymous)],
    subscribeClusterRevisionAttribute: [Function (anonymous)],
    getFeatureMapAttribute: [Function (anonymous)],
    setFeatureMapAttribute: [Function (anonymous)],
    subscribeFeatureMapAttribute: [Function (anonymous)],
    getAttributeListAttribute: [Function (anonymous)],
    setAttributeListAttribute: [Function (anonymous)],
    subscribeAttributeListAttribute: [Function (anonymous)],
    getAcceptedCommandListAttribute: [Function (anonymous)],
    setAcceptedCommandListAttribute: [Function (anonymous)],
    subscribeAcceptedCommandListAttribute: [Function (anonymous)],
    getGeneratedCommandListAttribute: [Function (anonymous)],
    setGeneratedCommandListAttribute: [Function (anonymous)],
    subscribeGeneratedCommandListAttribute: [Function (anonymous)]
  },
  deviceTypes: [
    {
      name: 'MA-bridgednode',
      code: 19,
      deviceClass: 'Utility',
      superSet: undefined,
      revision: 2,
      requiredServerClusters: [Array],
      optionalServerClusters: [Array],
      requiredClientClusters: [],
      optionalClientClusters: [],
      unknown: false
    },
    {
      name: 'MA-powersource',
      code: 17,
      deviceClass: 'Utility',
      superSet: undefined,
      revision: 1,
      requiredServerClusters: [Array],
      optionalServerClusters: [],
      requiredClientClusters: [],
      optionalClientClusters: [],
      unknown: false
    }
  ]

```

Et j’ai

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/9/5/958a5285c2a6897e24c95f360d5ecc029674c865.png)

Mais bon, je ne sais pas si ça t’aide … ^^

Toutefois je regardais pour la problématique de conserver les states d’un appareil meme après decommissionning (mais tu as peut-être résolu ça entre temps ^^), ne devrait-on pas prendre le `uniqueId` pour le `external_id` :  
`matter:${nodeDetail.deviceData.basicInformation.uniqueId}:${device.number}` et seulement conserver le `nodeId` dans un `param` ?

EDIT : Hesite pas à me dire si tu veux qu’on fasse un call ecran partagé.

---

<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:** [Avril 3, 2025, 6:43 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/15 "2025-04-03T06:43:30Z")

</div>

ça aide beaucoup ! 🙂

Je pense qu’on va pouvoir identifier ces appareils en mode:

```auto
node:{node_id}:{device.number}:child_endpoint:${child_endpoint.number}

```

> [@Terdious](#):
>
> Toutefois je regardais pour la problématique de conserver les states d’un appareil meme après decommissionning (mais tu as peut-être résolu ça entre temps ^^), ne devrait-on pas prendre le `uniqueId` pour le `external_id` :

De ce que je lis sur internet, le uniqueId n’est pas un ID standard et on ne peut pas vraiment s’y fier.

Le combo qu’on a fait est une bonne solution 🙂

Je vais continuer de la lire de la documentation sur le sujet !

[https://siliconlabs.github.io/matter/latest/index.html](https://siliconlabs.github.io/matter/latest/index.html)

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Avril 4, 2025, 5:40 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/16 "2025-04-04T05:40:44Z")

</div>

Bonjour @pierre-gilles,  
Je ne suis pas forcément d’accord, si on se place au niveau du device, le nodeId n’est pas fixe. Il est même considéré comme un pont «&nbsp;temporaire&nbsp;». N’importe quelle cause d’avoir pour conséquence un réappairage engendre un changement de nodeId.  
Le uniqueId lui reste fixe de ce que je peux lire/constater  
Preuve en est, ci-dessous j’ai installé 2 matterbridge sur 2 réseau distinct, et j’ai pu appairer mes Shelly sur la 2ème plateforme. Pour info il y a également eu 1 coupure de courant entre temps, je suis donc certains que ces appareils ont redémarré.  
Les UniqueID sont exactement les mêmes, les serialNumber également. Et à chaque réappairage avec MatterBridge (désinstallation du plugin matter-shelly ou redémarrage) ils se «&nbsp;réappairent&nbsp;» identiquement.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/a/0a176ca2f153246ce0b6f1981fcab9d61e9b7fad.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/6/9/690a4bf7b5f8f0fb07939275625dc00b911abcee.png)

Et en dernier lieu on peut toujours utiliser le numéro de série plutôt. Le serieNumber est accessible au même endroit me semble-t-il. Car le nodeId n’a rien d’un ID du device.  
Exemple concret, ton appareil est appairé selon ta méthode. Tu as un thread à côté qui référence ce dernier egalement, lorsque tu vas le connecter tu auras un second appareil de référencé identique car il dépendra du nodeId de cet autre canal…  
Pour moi le nodeID est un paramètre qu’il faudra mettre à jour lorsque ce dernier changera.

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Avril 4, 2025, 7:25 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/17 "2025-04-04T07:25:26Z")

</div>

Après je me trompe peut-être, il faudrait plusieurs plateforme pour tester le uniqueId.

Mais pour le serialNumber … il n’y a aucune raison qu’il soit différent d’une plateforme à l’autre, non ?

---

<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:** [Avril 4, 2025, 7:28 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/18 "2025-04-04T07:28:10Z")

</div>

Je pense qu’il faut vérifier la recommandation officielle et voir comment les autres plateformes font 🙂

Matter est un standard, ce n’est pas à nous de prendre ces décisions !

---

<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:** [Avril 4, 2025, 9:49 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/19 "2025-04-04T09:49:10Z")

</div>

Je suis entrain de lire la spécification Matter 1.4.

Il y a plus de 1000 pages, mais au moins tout a été décrit, c’est très clair.

> **[24-27349-006\_Matter-1.4-Core-Specification-1.pdf](https://csa-iot.org/wp-content/uploads/2025/01/24-27349-006_Matter-1.4-Core-Specification-1.pdf)**
>
> 14.31 MB

Déjà, le champ **uniqueId** n’était pas obligatoire avant Matter 1.4, c’est un ajout récent. Il y a donc des objets dans la nature sans **uniqueId**.

 ![Screenshot 2025-04-04 at 11.21.01](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/2/028a33b9007271d33d7aca2994cdd3a7b88cdd9c.png)

Dans le cas de device «&nbsp;Bridge&nbsp;» comme dans ton cas @Terdious, le **uniqueId** n’est pas stable dans le temps de ce que dit la spec :

 ![Screenshot 2025-04-04 at 11.33.03](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/5/0/5092aef5de72ebe95f6adff19e9259678d18f72f.png)

De manière générale, j’ai l’impression que l’identifiant d’un appareil est l’association de 3 attributs :

- **FabricIndex**
- **NodeId**
- **Endpoint**

On était pas très loin mais il manquait le FabriceIndex car le NodeId peut exister dans un autre Fabric je pense.

**Mon avis**

Le champ **uniqueId** n’est pas une base stable d’identification de ce que je lis de la spécification.

Néanmoins, rien ne nous empêche de sauvegarder ce uniqueId **si il existe** (dans un param par exemple), et ensuite de faire le matching en cas de commissioning d’un appareil qui a visiblement déjà été commissioné dans Gladys !

Je continue de lire la spec…

---

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [Avril 4, 2025, 1:12 UTC](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442/20 "2025-04-04T13:12:41Z")

</div>

Hello,  
si besoin d’info complémentaires sur d’autres produits, je me suis installé un matterbridge avec la passerelle tahoma pour récupérer tous mes volets roulants et stores.  
Je ne pourrais pas aider sur le côté dev mais si besoin de détails d’un device, je pourrai fournir 🙂  
PS : j’ai aussi importé mes devices zigbee donc on a un peu plus de fonctionnalités pour d’autres devices pour plus tard.

[Page suivante](https://community.gladysassistant.com/t/matter-gladys-assistant-c-est-parti/9442.md?page=2)
