Incorporating Matter

Bridge Endpoint always have a unique UID, they also have a supported bridge type UID that can only be the unique type UID of the parent node. So for example,

The unique node type UUID
matter:node_11132772159265776967

The unique bridge endpoint type UUID (which is a child of the node)
matter:bridge-endpoint_11132772159265776967_3

This is so we can dynamically add Channels Groups to things

I am almost sure the framework does not handle properly the case a thing has its type dynamically updated with a new one. In this case, it is no more able to identify entries in inbox matching a thing because the thing type in inbox is the original one, not the thing type created dynamically when initializing the thing.

I find only 7 bindings using ThingTypeProvider, it is not so common: homematic, netatmo, freeathomesystem, mqtt, digitalstrom, siemenshvac and systeminfo.

Hej there,

I got an error when trying to pair a smart plug. 2 others of the same vendor work well. The troublesome one once also.

I resetted I and get the following debug.log:

19:31:11.690 [DEBUG] [rnal.discovery.MatterDiscoveryService] - startScan complete








19:32:28.575 [DEBUG] [nal.controller.MatterControllerClient] - sendMessage: {"id":"1dcacd35-0e09-4594-8d80-286f05ae55b1","namespace":"nodes","function":"pairNode","args":["06199000687"]}
19:32:28.589 [DEBUG] [nternal.client.MatterWebsocketService] - PeerCommissioner: Commissioning device with identifier {"shortDiscriminator":3} and 1 scanners and knownAddress "undefined"
19:32:28.592 [DEBUG] [nternal.client.MatterWebsocketService] - ControllerDiscovery: Start Discovering devices using identifier {"shortDiscriminator":3} ...
19:32:28.596 [DEBUG] [nternal.client.MatterWebsocketService] - ControllerDiscovery: Found 1 devices using identifier {"shortDiscriminator":3}
19:32:28.600 [DEBUG] [nternal.client.MatterWebsocketService] - PeerCommissioner: Commissioning device SII: undefined SAI: undefined SAT: undefined T: 0 DT: 65535 PH: 36 ICD: 0 VP: 4107+8484 DN: undefined RI: 1A00C05670AA40D8C9376A476598D9979F88 PI: 
19:32:29.502 [DEBUG] [nternal.client.MatterWebsocketService] - PaseClient: Pase client: Paired successfully with udp://fe80::ce40:85ff:fe22:c26c%wlan0:5540.
19:32:29.504 [DEBUG] [nternal.client.MatterWebsocketService] - InsecureSession: End insecure session insecure/10260210749961791743
19:32:29.506 [DEBUG] [nternal.client.MatterWebsocketService] - PeerCommissioner: Start commissioning of node 3724500741464499954 into fabric 1 (index 1)
19:32:29.509 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Skipping NetworkCommissioning steps because the device is already on IP network (udp)
19:32:29.511 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 0.1: GetInitialData
19:32:30.732 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 3.1: GeneralCommissioning.ArmFailsafe
19:32:31.213 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 5.1: GeneralCommissioning.ConfigureRegulatoryInformation
19:32:31.651 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 5.2: TimeSynchronization.SynchronizeTime
19:32:31.654 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 6.1: OperationalCredentials.DeviceAttestation
19:32:32.269 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Executing commissioning step 7.1: OperationalCredentials.Certificates
19:32:32.783 [DEBUG] [nternal.client.MatterWebsocketService] - Controller~missioner: Commissioning step 7.1: OperationalCredentials.Certificates failed with error: Commission error for "addNoc": 9, undefined ... Aborting commissioning
19:32:32.983 [DEBUG] [nternal.client.MatterWebsocketService] - Controller: Error executing function pairNode: Commission error for "addNoc": 9, undefined
19:32:32.985 [DEBUG] [nternal.client.MatterWebsocketService] - Controller: Stack trace: Error: Commission error for "addNoc": 9, undefined
19:32:32.988 [DEBUG] [nternal.client.MatterWebsocketService] - Controller: Error name: Error
19:32:32.988 [DEBUG] [nal.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultError","id":"1dcacd35-0e09-4594-8d80-286f05ae55b1","result":"undefined","error":"Commission error for \"addNoc\": 9, undefined"}}
19:32:32.989 [DEBUG] [nternal.client.MatterWebsocketService] - Controller: Full error object: {"stack":"Error: Commission error for \"addNoc\": 9, undefined\n    at #ensureOperationalCredentialsSuccess (webpack://matter-server/./node_modules/@matter/protocol/dist/cjs/peer/ControllerCommissioningFlow.js?:256:11)\n    at #certificates (webpack://matter-server/./node_modules/@matter/protocol/dist/cjs/peer/ControllerCommissioningFlow.js?:501:46)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async ControllerCommissioningFlow.executeCommissioning (webpack://matter-server/./node_modules/@matter/protocol/dist/cjs/peer/ControllerCommissioningFlow.js?:89:24)\n    at async #commissionConnectedNode (webpack://matter-server/./node_modules/@matter/protocol/dist/cjs/peer/ControllerCommissioner.js?:250:7)\n    at async ControllerCommissioner.commissionWithDiscovery (webpack://matter-server/./node_modules/@matter/protocol/dist/cjs/peer/ControllerCommissioner.js?:145:12)\n    at async MatterController.commission (webpack://matter-server/./node_modules/@project-chip/matter.js/dist/cjs/MatterController.js?:243:21)\n    at async CommissioningController.commissionNode (webpack://matter-server/./node_modules/@project-chip/matter.js/dist/cjs/CommissioningController.js?:136:20)\n    at async Nodes.pairNode (webpack://matter-server/./src/client/namespaces/Nodes.ts?:136:36)","message":"Commission error for \"addNoc\": 9, undefined"}
19:32:32.991 [DEBUG] [nal.controller.MatterControllerClient] - result type: resultError 
19:32:32.992 [DEBUG] [nternal.client.MatterWebsocketService] - Controller: Commission error for "addNoc": 9, undefined
19:32:32.993 [DEBUG] [rnal.discovery.MatterDiscoveryService] - startScan complete
“““

I am on the latest jar, followed the "update" rules, but deleted that plug. Now I cannot re-pair it...

Hi when you say resetted, what did you reset and how ? I think there is a possible condition where a device actually pairs , but we and up failing . Unfortunately the device now has our pairing very and won’t allow another one with our same cert. can you try hard resetting the device via the manufactures instructions ?

Hard resetting to manufacturer default helped now it works!

But a note: I followed your instructions and it really seems that something stupid is happening when you manually delete the ā€œexisting devices from the old jarā€. The are not listed as matter things anymore in the UI, but somehow they leaves footprints which do not make them ā€œappearā€ again. If that is what your explanation says I am totally fine. (I think that is what you mean)

Is there a way to delete the pairing in my accident case with a factory reset? I do not want to re-pair in e.g. Apple Home.

Sorry , I’m not understanding what you mean , maybe post a screenshot ?

This is up to clients to implement, apple allows you to delete itself or all pairings , but has not built a UI to to manage specific pairings . Eventually I’ll add this to our client

I’ll take a look when I’m back home , but yeah there’s not many using this technique . The MQtt binding , specially changes made a few months ago ( there’s a comment in the code to the PR) served as my starting place .

Just to be clear, the only problem I am discussing is the auto ignore feature in discovery inbox.

I am not sure but if you used the final thing type UID instead of the base thing type UID in the discovery result, I believe it should work and solve the issue ?

So that was my plan as well, and i played with this a bit. I was hopeful i had a cleaver solution overriding getSupportedThingTypes on the discovery service, unfortunately i ran into a few problems with the timing of how thats called (which is after you click scan, but before we discover things and their UIDs to use in this method) . I might play with this some more tomorrow as i not 100% sure whats all involved on the core side of discovery.

I just pushed an update however which i think will make this far less noticeable for now. I was being sloppy calling discovery on nodes/bridge-endpoints for which we already had things for. I changed that, so the inbox should only have nodes or bridges that are not already added.

The latest update also has some matter.js connection changes i have been discussing with the lead dev there. In addition to a bug fix, he added the ability to ā€œtriggerā€ a reconnection of a node, which i added as a thing action. I’m hoping this will help us troubleshoot timing issues when we loose a ping to a node, but are waiting to reconnect. If force reconnection works, then we know we have to be more aggressive about reconnecting and not wait so long. This is a bit tricky, as too aggressively reconnecting can flood thread networks. Ideally MDNS should be helping with this when nodes come back online, but that does not seem to be happening when there are network ā€œblipsā€.

Not clear for me; Is it an action to run for better handling of future ping issues ? Or is it to solve only the current disconnection ? In the second case, it will not help because we as user discover the disconnection too late while a reconnect is alreading in action. We see it when we have thing going into status NOT_YET_READY.
So I hope it is more the first option :wink:

I tried this and I definitely made sure that I noted down the controller id and recreated with old id. However, my old devices (two nanoleaf conos) are not detected. Here are the logs:

old and recreated matter:controller:012d8d3e09

logs after recreation of controller and then scanning


2024-12-08 10:37:37.076 [DEBUG] [r.internal.handler.ControllerHandler] - refresh
2024-12-08 10:37:37.078 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"a47679dc-2735-4004-acf2-8941a86fdf0f","namespace":"nodes","function":"listNodes","args":[]}
2024-12-08 10:37:37.091 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"a47679dc-2735-4004-acf2-8941a86fdf0f","result":["9976085064129733980","5860659056090857746"],"error":"undefined"}}
2024-12-08 10:37:37.093 [DEBUG] [al.controller.MatterControllerClient] - result type: resultSuccess 
2024-12-08 10:37:37.095 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode BEGIN 9976085064129733980
2024-12-08 10:37:37.097 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"c388ecc2-d4fc-4ef6-ba1f-8f308a4f1e5b","namespace":"nodes","function":"getNode","args":["9976085064129733980"]}
2024-12-08 10:37:37.105 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode BEGIN 5860659056090857746
2024-12-08 10:37:37.105 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"17d2a54e-57d8-49f3-9af3-41aa49c8efbb","namespace":"nodes","function":"getNode","args":["5860659056090857746"]}
2024-12-08 10:37:37.115 [DEBUG] [ternal.client.MatterWebsocketService] - PairedNode: Node 9976085064129733980: Created paired node with device data { ethernetConnected: false, wifiConnected: false, threadConnected: true, rootEndpointServerList: [ 29, 31, 40, 42, 48, 49, 51, 53, 60, 62, 63, 65 ], isBatteryPowered: false, isIntermittentlyConnected: false, isThreadSleepyEndDevice: false, dataRevision: 1 }
2024-12-08 10:37:37.167 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"nodeStateInformation","data":{"nodeId":"9976085064129733980","state":"Reconnecting"}}}
2024-12-08 10:37:37.168 [DEBUG] [al.controller.MatterControllerClient] - nodeStateInformation message {"nodeId":"9976085064129733980","state":"Reconnecting"}
2024-12-08 10:37:37.170 [DEBUG] [r.internal.handler.ControllerHandler] - Node onEvent: node 9976085064129733980 is Reconnecting
2024-12-08 10:37:37.206 [DEBUG] [ternal.client.MatterWebsocketService] - PairedNode: Node 5860659056090857746: Created paired node with device data { ethernetConnected: false, wifiConnected: false, threadConnected: true, rootEndpointServerList: [ 4, 29, 31, 40, 48, 49, 51, 53, 60, 62, 63, 64, 65 ], isBatteryPowered: false, isIntermittentlyConnected: false, isThreadSleepyEndDevice: false, dataRevision: 1 }
2024-12-08 10:37:37.221 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterHelper: Unknown cluster 0x5 requested: UnknownCluster instance added.
2024-12-08 10:37:37.224 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Added unknown attribute 0x0 to cluster 0x5
2024-12-08 10:37:37.226 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Added unknown attribute 0x1 to cluster 0x5
2024-12-08 10:37:37.227 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Added unknown attribute 0x2 to cluster 0x5
2024-12-08 10:37:37.228 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Added unknown attribute 0x3 to cluster 0x5
2024-12-08 10:37:37.229 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Added unknown attribute 0x4 to cluster 0x5
2024-12-08 10:37:37.230 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 0 at cluster 0x5
2024-12-08 10:37:37.231 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 1 at cluster 0x5
2024-12-08 10:37:37.232 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 2 at cluster 0x5
2024-12-08 10:37:37.233 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 3 at cluster 0x5
2024-12-08 10:37:37.234 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 4 at cluster 0x5
2024-12-08 10:37:37.235 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 5 at cluster 0x5
2024-12-08 10:37:37.236 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 6 at cluster 0x5
2024-12-08 10:37:37.237 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 64 at cluster 0x5
2024-12-08 10:37:37.238 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 65 at cluster 0x5
2024-12-08 10:37:37.239 [DEBUG] [ternal.client.MatterWebsocketService] - ClusterClient: Ignoring unknown command 66 at cluster 0x5
2024-12-08 10:37:37.252 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"nodeStateInformation","data":{"nodeId":"5860659056090857746","state":"Reconnecting"}}}
2024-12-08 10:37:37.252 [DEBUG] [al.controller.MatterControllerClient] - nodeStateInformation message {"nodeId":"5860659056090857746","state":"Reconnecting"}
2024-12-08 10:37:37.253 [DEBUG] [r.internal.handler.ControllerHandler] - Node onEvent: node 5860659056090857746 is Reconnecting
2024-12-08 10:37:37.684 [DEBUG] [ternal.client.MatterWebsocketService] - CaseClient: Case client: Paired successfully with udp://fd7b:8ba:24f3:1:33aa:f7e2:fcf:6880:5540 and parameters idleIntervalMs: 800 activeIntervalMs: 800 activeThresholdMs: 4000 dataModelRevision: 17 interactionModelRevision: 11 specificationVersion: 0 maxPathsPerInvoke: 1
2024-12-08 10:37:37.691 [DEBUG] [ternal.client.MatterWebsocketService] - InsecureSession: End insecure session insecure/15725714875020874687
==> /var/log/openhab/events.log <==
2024-12-08 10:37:38.041 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'AZNano_theduck_effect' updated to Warm worm
2024-12-08 10:37:38.041 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'AZNano_Theduck' updated to OFF
2024-12-08 10:37:38.043 [INFO ] [openhab.event.GroupStateUpdatedEvent] - Group 'LichterOG' updated to OFF through LichterAZ
2024-12-08 10:37:38.044 [INFO ] [openhab.event.GroupStateUpdatedEvent] - Group 'LichterAZ' updated to OFF through AZNano_Theduck
2024-12-08 10:37:38.044 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'AZNano_theduck_color' updated to 0,0,0
2024-12-08 10:37:38.045 [INFO ] [openhab.event.GroupStateUpdatedEvent] - Group 'Lights' updated to ON through LichterOG
2024-12-08 10:37:38.066 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'AZNanotheduck_State' updated to raw type (image/png): 8134 bytes
==> /var/log/openhab/openhab.log <==
2024-12-08 10:37:39.095 [DEBUG] [ternal.client.MatterWebsocketService] - InteractionClient: Subscription successfully initialized with ID 278534260 and maxInterval 60s.
2024-12-08 10:37:39.165 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"attributeChanged","data":{"path":{"nodeId":"9976085064129733980","endpointId":1,"clusterId":4,"attributeId":0,"attributeName":"nameSupport"},"version":3214401409,"value":{"nameSupport":true,"groupNames":true}}}}
2024-12-08 10:37:39.166 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {"path":{"nodeId":"9976085064129733980","endpointId":1,"clusterId":4,"attributeId":0,"attributeName":"nameSupport"},"version":3214401409,"value":{"nameSupport":true,"groupNames":true}}
2024-12-08 10:37:39.169 [DEBUG] [r.internal.handler.ControllerHandler] - No handler found for node 9976085064129733980
2024-12-08 10:37:39.182 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"eventTriggered","data":{"path":{"nodeId":"9976085064129733980","endpointId":0,"clusterId":42,"eventId":0,"eventName":"stateTransition"},"events":[{"path":"undefined","eventNumber":"196743","priority":1,"systemTimestamp":1296708510,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196745","priority":1,"deltaSystemTimestamp":2,"data":{"previousState":2,"newState":1,"reason":2,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196746","priority":1,"deltaSystemTimestamp":2,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196747","priority":1,"deltaSystemTimestamp":3447,"data":{"previousState":2,"newState":1,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196748","priority":1,"deltaSystemTimestamp":13180251,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196749","priority":1,"deltaSystemTimestamp":3209,"data":{"previousState":2,"newState":1,"reason":1,"targetSoftwareVersion":null}}]}}}
2024-12-08 10:37:39.183 [DEBUG] [al.controller.MatterControllerClient] - eventTriggered message {"path":{"nodeId":"9976085064129733980","endpointId":0,"clusterId":42,"eventId":0,"eventName":"stateTransition"},"events":[{"path":"undefined","eventNumber":"196743","priority":1,"systemTimestamp":1296708510,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196745","priority":1,"deltaSystemTimestamp":2,"data":{"previousState":2,"newState":1,"reason":2,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196746","priority":1,"deltaSystemTimestamp":2,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196747","priority":1,"deltaSystemTimestamp":3447,"data":{"previousState":2,"newState":1,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196748","priority":1,"deltaSystemTimestamp":13180251,"data":{"previousState":1,"newState":2,"reason":1,"targetSoftwareVersion":null}},{"path":"undefined","eventNumber":"196749","priority":1,"deltaSystemTimestamp":3209,"data":{"previousState":2,"newState":1,"reason":1,"targetSoftwareVersion":null}}]}
2024-12-08 10:37:39.185 [DEBUG] [r.internal.handler.ControllerHandler] - No handler found for node 9976085064129733980
2024-12-08 10:37:39.186 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"eventTriggered","data":{"path":{"nodeId":"9976085064129733980","endpointId":0,"clusterId":42,"eventId":2,"eventName":"downloadError"},"events":[{"path":"undefined","eventNumber":"196744","priority":1,"systemTimestamp":1296720055,"data":{"softwareVersion":0,"bytesDownloaded":0,"progressPercent":null,"platformCode":null}}]}}}
2024-12-08 10:37:39.187 [DEBUG] [al.controller.MatterControllerClient] - eventTriggered message {"path":{"nodeId":"9976085064129733980","endpointId":0,"clusterId":42,"eventId":2,"eventName":"downloadError"},"events":[{"path":"undefined","eventNumber":"196744","priority":1,"systemTimestamp":1296720055,"data":{"softwareVersion":0,"bytesDownloaded":0,"progressPercent":null,"platformCode":null}}]}
2024-12-08 10:37:39.187 [DEBUG] [r.internal.handler.ControllerHandler] - No handler found for node 9976085064129733980
2024-12-08 10:37:39.198 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"event","message":{"type":"nodeStateInformation","data":{"nodeId":"9976085064129733980","state":"Connected"}}}
2024-12-08 10:37:39.198 [DEBUG] [al.controller.MatterControllerClient] - nodeStateInformation message {"nodeId":"9976085064129733980","state":"Connected"}
2024-12-08 10:37:39.199 [DEBUG] [r.internal.handler.ControllerHandler] - Node onEvent: node 9976085064129733980 is Connected
2024-12-08 10:37:39.199 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode BEGIN 9976085064129733980

it says ā€œho handler found for node ā€¦ā€ in the above logs.

…in worst case: I reset the two devices…

but funnily it discovered a lightbulb in my house which I don’t even know where it is :joy:

What is weird about this ^, I added the thing as follows:

and when I rescan it comes up again in my inbox:

2024-12-08 10:51:51.741 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"616a2098-0956-4072-9d6f-4a3ec7b07530","result":{"id":"5860659056090857746","rootEndpoint":{"number":0,"clusters":{"Groups":{"id":4,"name":"Groups","nameSupport":{"nameSupport":true,"groupNames":true},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,3,4,5],"generatedCommandList":[0,1,2,3]},"Descriptor":{"id":29,"name":"Descriptor","deviceTypeList":[{"deviceType":22,"revision":1}],"serverList":[4,29,31,40,48,49,51,53,60,62,63,64,65],"clientList":[],"partsList":[1],"clusterRevision":1,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"AccessControl":{"id":31,"name":"AccessControl","acl":[{"privilege":5,"authMode":2,"subjects":["1651454442726409342"],"targets":null,"fabricIndex":2}],"extension":[],"subjectsPerAccessControlEntry":4,"targetsPerAccessControlEntry":3,"accessControlEntriesPerFabric":3,"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"BasicInformation":{"id":40,"name":"BasicInformation","dataModelRevision":1,"vendorName":"Nanoleaf","vendorId":5142,"productName":"SQUB01","productId":2817,"nodeLabel":"","location":"XX","hardwareVersion":100,"hardwareVersionString":"1.0.0","softwareVersion":197120,"softwareVersionString":"3.5.46","manufacturingDate":"20200101","partNumber":"","productUrl":"","productLabel":"Cono Lamp","serialNumber":"S24020CO0013B","localConfigDisabled":false,"reachable":true,"uniqueId":"6DCE34A8FB376FFE","capabilityMinima":{"caseSessionsPerFabric":3,"subscriptionsPerFabric":3},"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"GeneralCommissioning":{"id":48,"name":"GeneralCommissioning","breadcrumb":0,"basicCommissioningInfo":{"failSafeExpiryLengthSeconds":60,"maxCumulativeFailsafeSeconds":900},"regulatoryConfig":0,"locationCapability":0,"supportsConcurrentConnection":true,"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,65528,65529,65531,65532,65533],"acceptedCommandList":[0,2,4],"generatedCommandList":[1,3,5]},"NetworkCommissioning":{"id":49,"name":"NetworkCommissioning","maxNetworks":1,"networks":[{"networkId":"6db3e577647a47e5","connected":true}],"interfaceEnabled":true,"lastNetworkingStatus":0,"lastNetworkId":"6db3e577647a47e5","lastConnectErrorValue":null,"scanMaxTimeSeconds":10,"connectMaxTimeSeconds":20,"clusterRevision":1,"featureMap":{"wiFiNetworkInterface":false,"threadNetworkInterface":true,"ethernetNetworkInterface":false},"attributeList":[0,1,2,3,4,5,6,7,65528,65529,65531,65532,65533],"acceptedCommandList":[0,3,4,6,8],"generatedCommandList":[1,5,7]},"GeneralDiagnostics":{"id":51,"name":"GeneralDiagnostics","networkInterfaces":[{"name":"NEST-PAN-9ACB","isOperational":true,"offPremiseServicesReachableIPv4":null,"offPremiseServicesReachableIPv6":null,"hardwareAddress":"5c590220005b0215","iPv4Addresses":[],"iPv6Addresses":[],"type":4}],"rebootCount":98,"upTime":85,"totalOperationalHours":0,"bootReason":1,"activeHardwareFaults":[],"activeRadioFaults":[],"activeNetworkFaults":[],"testEventTriggersEnabled":false,"clusterRevision":1,"featureMap":{"dataModelTest":false},"attributeList":[0,1,2,3,4,5,6,7,8,65528,65529,65531,65532,65533],"acceptedCommandList":[0],"generatedCommandList":[]},"ThreadNetworkDiagnostics":{"id":53,"name":"ThreadNetworkDiagnostics","channel":18,"routingRole":5,"networkName":"NEST-PAN-9ACB","panId":39627,"extendedPanId":"7904914071914956773","meshLocalPrefix":"40fd40bdb457210000","neighborTable":[{"extAddress":"11997219996963235066","age":7,"rloc16":32768,"linkFrameCounter":1115146,"mleFrameCounter":134618,"lqi":3,"averageRssi":-51,"lastRssi":-58,"frameErrorRate":0,"messageErrorRate":0,"rxOnWhenIdle":true,"fullThreadDevice":true,"fullNetworkData":true,"isChild":false},{"extAddress":"10866334939741329580","age":1,"rloc16":43008,"linkFrameCounter":980572,"mleFrameCounter":207744,"lqi":3,"averageRssi":-78,"lastRssi":-79,"frameErrorRate":7,"messageErrorRate":0,"rxOnWhenIdle":true,"fullThreadDevice":true,"fullNetworkData":true,"isChild":false}],"routeTable":[{"extAddress":"9127028302924215504","rloc16":26624,"routerId":26,"nextHop":42,"pathCost":1,"lqiIn":3,"lqiOut":0,"age":0,"allocated":true,"linkEstablished":false},{"extAddress":"11997219996963235066","rloc16":32768,"routerId":32,"nextHop":42,"pathCost":2,"lqiIn":3,"lqiOut":3,"age":7,"allocated":true,"linkEstablished":true},{"extAddress":"1063392863961549170","rloc16":35840,"routerId":35,"nextHop":63,"pathCost":0,"lqiIn":0,"lqiOut":0,"age":0,"allocated":true,"linkEstablished":false},{"extAddress":"10866334939741329580","rloc16":43008,"routerId":42,"nextHop":32,"pathCost":2,"lqiIn":3,"lqiOut":3,"age":1,"allocated":true,"linkEstablished":true},{"extAddress":"2230874439864341391","rloc16":54272,"routerId":53,"nextHop":42,"pathCost":4,"lqiIn":0,"lqiOut":0,"age":12,"allocated":true,"linkEstablished":false}],"partitionId":1543132435,"weighting":65,"dataVersion":250,"stableDataVersion":31,"leaderRouterId":26,"activeTimestamp":"108795968661471","pendingTimestamp":0,"delay":0,"securityPolicy":{"rotationTime":672,"flags":8207},"channelPage0Mask":"001fffe0","operationalDatasetComponents":{"activeTimestampPresent":true,"pendingTimestampPresent":false,"masterKeyPresent":true,"networkNamePresent":true,"extendedPanIdPresent":true,"meshLocalPrefixPresent":true,"delayPresent":false,"panIdPresent":true,"channelPresent":true,"pskcPresent":true,"securityPolicyPresent":true,"channelMaskPresent":true},"activeNetworkFaultsList":[0,0,0,0],"clusterRevision":1,"featureMap":{"packetCounts":true,"errorCounts":true,"mleCounts":true,"macCounts":true},"attributeList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,65528,65529,65531,65532,65533],"acceptedCommandList":[0],"generatedCommandList":[],"overrunCount":0,"detachedRoleCount":1,"childRoleCount":1,"routerRoleCount":1,"leaderRoleCount":0,"attachAttemptCount":1,"partitionIdChangeCount":1,"betterPartitionAttachAttemptCount":0,"parentChangeCount":0,"txTotalCount":660,"txUnicastCount":650,"txBroadcastCount":11,"txAckRequestedCount":652,"txAckedCount":646,"txNoAckRequestedCount":11,"txDataCount":666,"txDataPollCount":0,"txBeaconCount":0,"txBeaconRequestCount":0,"txOtherCount":0,"txRetryCount":173,"txDirectMaxRetryExpiryCount":7,"txIndirectMaxRetryExpiryCount":0,"txErrCcaCount":0,"txErrAbortCount":0,"txErrBusyChannelCount":0,"rxTotalCount":274,"rxUnicastCount":227,"rxBroadcastCount":34,"rxDataCount":264,"rxDataPollCount":0,"rxBeaconCount":0,"rxBeaconRequestCount":0,"rxOtherCount":0,"rxAddressFilteredCount":0,"rxDestAddrFilteredCount":0,"rxDuplicatedCount":3,"rxErrNoFrameCount":0,"rxErrUnknownNeighborCount":16,"rxErrInvalidSrcAddrCount":0,"rxErrSecCount":0,"rxErrFcsCount":0,"rxErrOtherCount":0},"AdministratorCommissioning":{"id":60,"name":"AdministratorCommissioning","windowStatus":0,"adminFabricIndex":null,"adminVendorId":null,"clusterRevision":1,"featureMap":{"basic":false},"attributeList":[0,1,2,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2],"generatedCommandList":[]},"OperationalCredentials":{"id":62,"name":"OperationalCredentials","nocs":[{"noc":"153001010324020137032414001826041b90e62c26059bc693413706241501271112c1f8435c3e55511824070124080130094104f278fd521b54688dcc47c47ad1df098df6fc008e60e660367744147c9b5ba2fd0facaa5ef3f825e59a604cdaab47efbf0a811ff3340c73e5f58f467cbad99387370a350128011824020136030402040118300414fa0972b309e74d24a8f236ee4cd507aa0dbd8b37300514b7c69fa09014efd99b65c8b0f059266795fb742918300b4051fae95483d431f4a0a08159af65a17d92c3e787d192d51873720aa2630be57f4a69937ee9ca1f125a72a9c0d780f96ed213fb3cbcf529406a783ab896832cb918","icac":null,"fabricIndex":2}],"fabrics":[{"rootPublicKey":"0499b376be68dded3b2b099c9f6f629e4e9f229240f2e65af2122d079021d21fb7481101aac3a276be6d63ab34a91422c365e77d6bf6bae4a9b882f9a0cfd6ad8d","vendorId":65521,"fabricId":"1","nodeId":"5860659056090857746","label":"","fabricIndex":2}],"supportedFabrics":5,"commissionedFabrics":2,"trustedRootCertificates":["153001010124020137032c840255532c0706476f6f676c652c010b4d617474657220526f6f74271401000000feffffff1826047fd2432926057f945be537062c840255532c0706476f6f676c652c010b4d617474657220526f6f74271401000000feffffff18240701240801300941045b37df6549c20dc8d722a6b8acb660a8a764ce7baf6c6c224f7ee84349684ad7d809ff650033d1527dcf1fbaac6a9c3ad8b41edac909f7b5c760fd542c892375370a350129012402011824026030041472c201f7571913b348ca00ca7b45f4774668c97e30051472c201f7571913b348ca00ca7b45f4774668c97e18300b4065164b166adff18c15610a8ce91bd703e9c1f677b711ce133505152df0da15111675ac5591cee786851cdd9efdad296674bebcb2a3a3209bcde7b309db552c6f18","15300101002402013703241400182604377fe62c2605b7b593413706241400182407012408013009410499b376be68dded3b2b099c9f6f629e4e9f229240f2e65af2122d079021d21fb7481101aac3a276be6d63ab34a91422c365e77d6bf6bae4a9b882f9a0cfd6ad8d370a3501290118240260300414b7c69fa09014efd99b65c8b0f059266795fb7429300514b7c69fa09014efd99b65c8b0f059266795fb742918300b40f5e1a39beb776ade2b05dbe52c475572c72799ccad02a8e0756b6f69e80fb20a2c954e7fb09cd1e7a2c17c2303d48985a7533178ba92edacda606b9b5104fc4318"],"currentFabricIndex":2,"clusterRevision":1,"featureMap":{},"attributeList":[0,1,2,3,4,5,65528,65529,65531,65532,65533],"acceptedCommandList":[0,2,4,6,7,9,10,11],"generatedCommandList":[1,3,5,8]},"GroupKeyManagement":{"id":63,"name":"GroupKeyManagement","groupKeyMap":[],"groupTable":[],"maxGroupsPerFabric":3,"maxGroupKeysPerFabric":3,"clusterRevision":1,"featureMap":{"cacheAndSync":false},"attributeList":[0,1,2,3,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,3,4],"generatedCommandList":[2,5]},"FixedLabel":{"id":64,"name":"FixedLabel","labelList":[{"label":"room","value":"bedroom 2"},{"label":"orientation","value":"North"},{"label":"floor","value":"2"},{"label":"direction","value":"up"}],"clusterRevision":1,"featureMap":{},"attributeList":[0,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"UserLabel":{"id":65,"name":"UserLabel","labelList":[],"clusterRevision":1,"featureMap":{},"attributeList":[0,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]}},"children":[{"number":1,"clusters":{"Identify":{"id":3,"name":"Identify","identifyTime":0,"identifyType":2,"clusterRevision":4,"featureMap":{},"attributeList":[0,1,65528,65529,65531,65532,65533],"acceptedCommandList":[0,64],"generatedCommandList":[]},"Groups":{"id":4,"name":"Groups","nameSupport":{"nameSupport":true,"groupNames":true},"clusterRevision":4,"featureMap":{"groupNames":true},"attributeList":[0,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,3,4,5],"generatedCommandList":[0,1,2,3]},"Unknown cluster 0x5":{"id":5,"name":"Unknown cluster 0x5","clusterRevision":4,"featureMap":{},"attributeList":[0,1,2,3,4,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,3,4,5,6,64,65,66],"generatedCommandList":[0,1,2,3,4,6,64,65,66],"unknownAttribute_0x0":0,"unknownAttribute_0x1":0,"unknownAttribute_0x2":0,"unknownAttribute_0x3":false,"unknownAttribute_0x4":0},"OnOff":{"id":6,"name":"OnOff","onOff":true,"clusterRevision":4,"featureMap":{"lighting":true,"deadFrontBehavior":false,"offOnly":false},"attributeList":[0,16384,16385,16386,16387,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,64,65,66],"generatedCommandList":[],"globalSceneControl":true,"onTime":1,"offWaitTime":1,"startUpOnOff":1},"LevelControl":{"id":8,"name":"LevelControl","currentLevel":122,"maxLevel":254,"options":{"executeIfOff":false,"coupleColorTempToLevel":false},"onOffTransitionTime":1,"onLevel":122,"clusterRevision":5,"featureMap":{"onOff":true,"lighting":true,"frequency":false},"attributeList":[0,1,2,3,15,16,17,16384,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,3,4,5,6,7],"generatedCommandList":[],"minLevel":1,"remainingTime":0,"startUpCurrentLevel":254},"Descriptor":{"id":29,"name":"Descriptor","deviceTypeList":[{"deviceType":269,"revision":1}],"serverList":[3,4,5,6,8,29,30,768],"clientList":[],"partsList":[],"clusterRevision":1,"featureMap":{"tagList":false},"attributeList":[0,1,2,3,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"Binding":{"id":30,"name":"Binding","binding":[],"clusterRevision":1,"featureMap":{},"attributeList":[0,65528,65529,65531,65532,65533],"acceptedCommandList":[],"generatedCommandList":[]},"ColorControl":{"id":768,"name":"ColorControl","remainingTime":0,"colorMode":2,"options":{"executeIfOff":false},"numberOfPrimaries":null,"enhancedColorMode":2,"colorCapabilities":{"hueSaturation":true,"enhancedHue":false,"colorLoop":false,"xy":true,"colorTemperature":true},"clusterRevision":5,"featureMap":{"hueSaturation":true,"enhancedHue":false,"colorLoop":false,"xy":true,"colorTemperature":true},"attributeList":[0,1,2,3,4,7,8,15,16,16385,16394,16395,16396,16397,16400,65528,65529,65531,65532,65533],"acceptedCommandList":[0,1,2,3,4,5,6,7,8,9,10,64,65,66,67,68,71,75,76],"generatedCommandList":[],"currentHue":0,"currentSaturation":0,"currentX":0,"currentY":0,"colorTemperatureMireds":370,"colorTempPhysicalMinMireds":153,"colorTempPhysicalMaxMireds":470,"coupleColorTempToLevelMinMireds":0,"startUpColorTemperatureMireds":null}},"children":[]}]}},"error":"undefined"}}
2024-12-08 10:51:51.743 [DEBUG] [al.controller.MatterControllerClient] - result type: resultSuccess 
2024-12-08 10:51:51.760 [DEBUG] [al.controller.MatterControllerClient] - Cluster not found: Unknown cluster 0x5
2024-12-08 10:51:51.763 [DEBUG] [r.internal.handler.ControllerHandler] - discoverChildNode 5860659056090857746
2024-12-08 10:51:51.764 [DEBUG] [nal.discovery.MatterDiscoveryService] - discoverThing: matter:node:012d8d3e09:5860659056090857746 matter:controller:012d8d3e09 5860659056090857746
2024-12-08 10:51:51.870 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'matter:node:012d8d3e09:5860659056090857746' to inbox.
2024-12-08 10:51:51.871 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode END 5860659056090857746

with a slightly different id.

With the last version released when a thing is disabled this thing is finally discovered. Fine and presumably the expected behaviour.
When I enable the thing it goes ONLINE but the entry in inbox is not marked as ignored while it is as I understand what is supposed to happen (via the method I pointed). I did not have time to check the inbox entry in JSON registry but I will do when back, to check now what thing type it contains.

Not discovering things that already exist was apparently working and that’s a real improvement, thank you.

This shows it picked up your existing Matter Fabric , with 2 nodes "9976085064129733980","5860659056090857746"

There are no handlers b/c you deleted those things previously per the instructions and now you scan and then add them back, then the handlers will be there. So theres no problem here.

Did you hard reset the device? The id is generated by the controller (openHAB) when a device is commissioned, and so changes each time its paired, so if you hard reset the device, but did not decommission it first from openHAB, it still thinks that existing ID is assigned to a device. Since you paired it again, we think there are 2 devices. There is a thing action to decommission a node, you can use that to remove it.

its a tool to mainly use for troubleshooting to help further improvements to the matter.js connection logic. I mainly wanted it so i can give feedback about reconnection times when there are network blips and auto connection is not working fast enough. We were also discussing some other tactics to improve this, like more aggressive MDNS broadcasts as well as using some additional matter requests.

So for my smart bulb that regularly disconnects/reconnects, I run this action and then what ?

if you have matter logs to PM me when the device goes offline then back online that would be great, it would help tremendously in troubleshooting reconnect logic. If the device is disconnected for a few minutes, i would try the reconnection action. If it works then we need to be more aggressive about graceful reconnects, if it does not then the node is really not reachable/pingable . This may more be a tool for me, so feel free to not use it.

I will setup a separate log file. You provided the instructions earlier in this discussion but then the pointed class was moved and renamed.
Do you want TRACE logs for org.openhab.binding.matter.internal.client.MatterWebsocketService ?

Regarding the auto-ignore feature of discovery results, I checked the content of my inbox entry and it still contain matter:node as thing type so no chance to work with current code in core framework.

  "matter:node:openhab:7295849862824570778": {
    "class": "org.openhab.core.config.discovery.internal.DiscoveryResultImpl",
    "value": {
      "bridgeUID": {
        "segments": [
          "matter",
          "controller",
          "openhab"
        ],
        "uid": "matter:controller:openhab"
      },
      "thingUID": {
        "segments": [
          "matter",
          "node",
          "openhab",
          "7295849862824570778"
        ],
        "uid": "matter:node:openhab:7295849862824570778"
      },
      "thingTypeUID": {
        "segments": [
          "matter",
          "node"
        ],
        "uid": ""
      },
      "properties": {
        "nodeId": "7295849862824570778"
      },
      "representationProperty": "nodeId",
      "flag": "NEW",
      "label": "Matter Device: Tapo Smart Multicolor Bulb",
      "timestamp": "2024-12-09T08:03:29.945451195Z",
      "timeToLive": -1
    }
  }