Matter Binding

Please use this thread to discuss any questions or issues in the 5.0 version of the Matter binding.

If you are having issues, please ALWAYS include the following information before posting:

  1. Hardware and Virtualization info (NUC, Pi, Docker, Proxmox, VMWare, etc…)
  2. Operating System and Versions
  3. Network configurations (Vlans, wifi, ethernet, multiple interfaces, etc…)
  4. openHAB version
  5. Logs using DEBUG or TRACE logging
  6. Confirm you have read the Matter README thoroughly
  7. Is this an issue with the controller or bridge feature (see supported modes below)?

Supported modes

This binding supports 2 different types of Matter functionality.

  • A Matter controller
    • This allows openHAB to discover and control other Matter devices like lights, thermostats, window coverings, locks, etc…
  • A Matter Bridge
    • This allows openHAB to expose items as Matter devices to other Matter clients. This allows local control of openHAB devices from 3rd party ecosystems like Apple Home, Amazon Alexa, and Google Home.
6 Likes

Hi Dan, I just tried to install OH 5 M3 in my RPI 5.
The controller thing is ONLINE but all node things have this comm error:

I restored snapshot 4669 (which was before milestone 3 but already with the official Matter binding) and I don’t have this issue.

I had the same error message on one battery device after updating to M3.
After several OH restarts and one OS restart the message changed to “Waiting for data”.
After a couple of minutes the errors went away and everything is working.

1 Like

Thanks for the report, thats an odd error, i’ll take a look right now.

Hmm, so I removed the old matter binding from my addons folder, upgraded to m3, installed the official matter addon, and everything worked out of the box. I’m using the Docker builds FYI.

That error is very strange, its like there is an issue with the nodejs app not able to resolve a class, but i don’t see how that would be possible just yet, since the app does load and accepts connections (and throws an proper error message). Do you know if there is an existing NodeJS installation on your PI? Can you start it up with TRACE logging and send me those logs? Would be curious to see the initialization part where we load the WS connection.

I wonder if this is a timing issue on slower hardware, where not all classes have been loaded (required) do to async loading in the webpack file…its the only thing that makes sense to me.

@Lolodomo what happens if you pause your controller thing, restart the bundle, then start your controller thing again (giving it time to load). If you are using the bridge, maybe disable it for this test. EDIT maybe restart it twice, if the fist time errors.

I think i see the problem, its indeed a async loading issue, not with imports, but our class is not entirely initialized before we accept a request. My guess is on startup or other heavy loaded operations, this condition gets hit, on faster hardware or lower load its rare to see, i’ll have a fix shortly.

Hi Dan,

I think I’m experiencing the same problem (Error: Namespace nodes not found). This the trace log on my Pi running 500M3 in a docker.

2025-06-21 15:02:34.593 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:4640140916271736671' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2025-06-21 15:02:34.600 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:8114361616042164644' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING

==> openhab.log <==
2025-06-21 15:02:34.604 [DEBUG] [.matter.internal.handler.NodeHandler] - initialize node 4640140916271736671
2025-06-21 15:02:34.607 [DEBUG] [r.internal.handler.ControllerHandler] - childHandlerInitialized ready true org.openhab.binding.matter.internal.handler.NodeHandler@5f25310e

==> events.log <==
2025-06-21 15:02:34.608 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:4640140916271736671' changed from INITIALIZING to UNKNOWN: Waiting for data

==> openhab.log <==
2025-06-21 15:02:34.608 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:34.610 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode BEGIN 4640140916271736671
2025-06-21 15:02:34.612 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"3d6a8ffa-2ce6-4601-896e-9cd3985cad21","namespace":"nodes","function":"initializeNode","args":["4640140916271736671",180000]}
2025-06-21 15:02:34.614 [DEBUG] [.matter.internal.handler.NodeHandler] - initialize node 8114361616042164644
2025-06-21 15:02:34.617 [DEBUG] [r.internal.handler.ControllerHandler] - childHandlerInitialized ready true org.openhab.binding.matter.internal.handler.NodeHandler@2233a479
2025-06-21 15:02:34.618 [DEBUG] [r.internal.handler.ControllerHandler] - updateNode BEGIN 8114361616042164644

==> events.log <==
2025-06-21 15:02:34.618 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:8114361616042164644' changed from INITIALIZING to UNKNOWN: Waiting for data

==> openhab.log <==
2025-06-21 15:02:34.619 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"a2a48060-1f86-4d52-85f3-cdcd8cc4813d","namespace":"nodes","function":"initializeNode","args":["8114361616042164644",180000]}
2025-06-21 15:02:34.631 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: 0.0.0.0:5353
2025-06-21 15:02:34.634 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:34.647 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:undefined localAddress: :::55678
2025-06-21 15:02:34.652 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:55678 localAddress: 0.0.0.0:55678
2025-06-21 15:02:34.658 [TRACE] [ternal.client.MatterWebsocketService] - CommissioningController: BLE is not supported on this platform
2025-06-21 15:02:34.670 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"3d6a8ffa-2ce6-4601-896e-9cd3985cad21","namespace":"nodes","function":"initializeNode","args":["4640140916271736671",180000]}
2025-06-21 15:02:34.673 [TRACE] [ternal.client.MatterWebsocketService] - ClientController: Executing function nodes.initializeNode(["4640140916271736671",180000])
2025-06-21 15:02:34.676 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Error executing function initializeNode: Namespace nodes not found
2025-06-21 15:02:34.679 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Stack trace: Error: Namespace nodes not found
2025-06-21 15:02:34.680 [TRACE] [ternal.client.MatterWebsocketService] -     at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)
2025-06-21 15:02:34.682 [TRACE] [ternal.client.MatterWebsocketService] -     at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)
2025-06-21 15:02:34.683 [TRACE] [ternal.client.MatterWebsocketService] -     at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)
2025-06-21 15:02:34.684 [TRACE] [ternal.client.MatterWebsocketService] -     at WebSocket.emit (node:events:517:28)
2025-06-21 15:02:34.686 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)
2025-06-21 15:02:34.687 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.emit (node:events:517:28)
2025-06-21 15:02:34.689 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)
2025-06-21 15:02:34.690 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)
2025-06-21 15:02:34.692 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)
2025-06-21 15:02:34.693 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)
2025-06-21 15:02:34.695 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Error name: Error
2025-06-21 15:02:34.697 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Full error object: {
2025-06-21 15:02:34.697 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultError","id":"3d6a8ffa-2ce6-4601-896e-9cd3985cad21","result":"undefined","error":"Namespace nodes not found","errorId":"undefined"}}
2025-06-21 15:02:34.698 [TRACE] [ternal.client.MatterWebsocketService] -     "stack": "Error: Namespace nodes not found\n    at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)\n    at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)\n    at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)\n    at WebSocket.emit (node:events:517:28)\n    at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)\n    at Receiver.emit (node:events:517:28)\n    at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)\n    at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)\n    at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)\n    at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)",
2025-06-21 15:02:34.700 [TRACE] [ternal.client.MatterWebsocketService] -     "message": "Namespace nodes not found"
2025-06-21 15:02:34.702 [TRACE] [ternal.client.MatterWebsocketService] -   }
2025-06-21 15:02:34.703 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultError","id":"3d6a8ffa-2ce6-4601-896e-9cd3985cad21","result":"undefined","error":"Namespace nodes not found","errorId":"undefined"}}
2025-06-21 15:02:34.703 [TRACE] [ternal.client.MatterWebsocketService] - Controller: --------------------------------
2025-06-21 15:02:34.703 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"a2a48060-1f86-4d52-85f3-cdcd8cc4813d","namespace":"nodes","function":"initializeNode","args":["8114361616042164644",180000]}
2025-06-21 15:02:34.705 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Namespace nodes not found
2025-06-21 15:02:34.706 [TRACE] [ternal.client.MatterWebsocketService] -   at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)
2025-06-21 15:02:34.708 [TRACE] [ternal.client.MatterWebsocketService] -   at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)
2025-06-21 15:02:34.708 [TRACE] [ternal.client.MatterWebsocketService] - ClientController: Executing function nodes.initializeNode(["8114361616042164644",180000])
2025-06-21 15:02:34.708 [DEBUG] [al.controller.MatterControllerClient] - result type: resultError
2025-06-21 15:02:34.709 [TRACE] [ternal.client.MatterWebsocketService] -   at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)
2025-06-21 15:02:34.710 [TRACE] [ternal.client.MatterWebsocketService] -   at WebSocket.emit (node:events:517:28)
2025-06-21 15:02:34.712 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)
2025-06-21 15:02:34.713 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.emit (node:events:517:28)
2025-06-21 15:02:34.715 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)
2025-06-21 15:02:34.716 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)
2025-06-21 15:02:34.718 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)
2025-06-21 15:02:34.719 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultError","id":"a2a48060-1f86-4d52-85f3-cdcd8cc4813d","result":"undefined","error":"Namespace nodes not found","errorId":"undefined"}}
2025-06-21 15:02:34.719 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)
2025-06-21 15:02:34.721 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Error executing function initializeNode: Namespace nodes not found
2025-06-21 15:02:34.723 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Stack trace: Error: Namespace nodes not found
2025-06-21 15:02:34.724 [TRACE] [ternal.client.MatterWebsocketService] -     at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)
2025-06-21 15:02:34.724 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultError","id":"a2a48060-1f86-4d52-85f3-cdcd8cc4813d","result":"undefined","error":"Namespace nodes not found","errorId":"undefined"}}
2025-06-21 15:02:34.726 [DEBUG] [al.controller.MatterControllerClient] - result type: resultError
2025-06-21 15:02:34.728 [TRACE] [ternal.client.MatterWebsocketService] -     at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)
2025-06-21 15:02:34.730 [TRACE] [ternal.client.MatterWebsocketService] -     at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)
2025-06-21 15:02:34.731 [TRACE] [ternal.client.MatterWebsocketService] -     at WebSocket.emit (node:events:517:28)
2025-06-21 15:02:34.733 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)
2025-06-21 15:02:34.734 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.emit (node:events:517:28)
2025-06-21 15:02:34.735 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)
2025-06-21 15:02:34.737 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)
2025-06-21 15:02:34.738 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)
2025-06-21 15:02:34.745 [TRACE] [ternal.client.MatterWebsocketService] -     at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)
2025-06-21 15:02:34.749 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Error name: Error
2025-06-21 15:02:34.728 [DEBUG] [r.internal.handler.ControllerHandler] - Could not update node 8114361616042164644
java.util.concurrent.CompletionException: org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found
	at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniAccept.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) ~[?:?]
	at org.openhab.binding.matter.internal.client.MatterWebsocketClient.lambda$2(MatterWebsocketClient.java:266) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found
	at org.openhab.binding.matter.internal.client.MatterWebsocketClient.lambda$2(MatterWebsocketClient.java:267) ~[?:?]
	... 6 more
2025-06-21 15:02:34.754 [TRACE] [ternal.client.MatterWebsocketService] - DeviceNode: Unique ID: MiKuY9eahBRp2UttJqLi5jyqo3sJZ5J3
2025-06-21 15:02:34.715 [DEBUG] [r.internal.handler.ControllerHandler] - Could not update node 4640140916271736671
java.util.concurrent.CompletionException: org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found
	at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniAccept.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) ~[?:?]
	at org.openhab.binding.matter.internal.client.MatterWebsocketClient.lambda$2(MatterWebsocketClient.java:266) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found
	at org.openhab.binding.matter.internal.client.MatterWebsocketClient.lambda$2(MatterWebsocketClient.java:267) ~[?:?]
	... 6 more
2025-06-21 15:02:34.758 [DEBUG] [.matter.internal.handler.NodeHandler] - setEndpointStatus OFFLINE COMMUNICATION_ERROR org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found 8114361616042164644
2025-06-21 15:02:34.759 [DEBUG] [.matter.internal.handler.NodeHandler] - setEndpointStatus OFFLINE COMMUNICATION_ERROR org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found 4640140916271736671
2025-06-21 15:02:34.759 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Full error object: {
2025-06-21 15:02:34.761 [TRACE] [ternal.client.MatterWebsocketService] -     "stack": "Error: Namespace nodes not found\n    at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)\n    at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)\n    at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)\n    at WebSocket.emit (node:events:517:28)\n    at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)\n    at Receiver.emit (node:events:517:28)\n    at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)\n    at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)\n    at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)\n    at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)",
2025-06-21 15:02:34.765 [TRACE] [ternal.client.MatterWebsocketService] -     "message": "Namespace nodes not found"

==> events.log <==
2025-06-21 15:02:34.765 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:8114361616042164644' changed from UNKNOWN: Waiting for data to OFFLINE (COMMUNICATION_ERROR): org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found

==> openhab.log <==
2025-06-21 15:02:34.767 [TRACE] [ternal.client.MatterWebsocketService] -   }
2025-06-21 15:02:34.768 [TRACE] [ternal.client.MatterWebsocketService] - Controller: --------------------------------
2025-06-21 15:02:34.770 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Namespace nodes not found

==> events.log <==
2025-06-21 15:02:34.772 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:385a4b8ee5:4640140916271736671' changed from UNKNOWN: Waiting for data to OFFLINE (COMMUNICATION_ERROR): org.openhab.binding.matter.internal.client.MatterRequestException: Namespace nodes not found

==> openhab.log <==
2025-06-21 15:02:34.774 [TRACE] [ternal.client.MatterWebsocketService] -   at ClientController.executeCommand (webpack://matter-server/./src/client/ClientController.ts?:54:19)
2025-06-21 15:02:34.775 [TRACE] [ternal.client.MatterWebsocketService] -   at ClientController.handleRequest (webpack://matter-server/./src/Controller.ts?:23:33)
2025-06-21 15:02:34.777 [TRACE] [ternal.client.MatterWebsocketService] -   at WebSocket.eval (webpack://matter-server/./src/app.ts?:101:32)
2025-06-21 15:02:34.778 [TRACE] [ternal.client.MatterWebsocketService] -   at WebSocket.emit (node:events:517:28)
2025-06-21 15:02:34.779 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.receiverOnMessage (webpack://matter-server/./node_modules/ws/lib/websocket.js?:1220:20)
2025-06-21 15:02:34.781 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.emit (node:events:517:28)
2025-06-21 15:02:34.782 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.dataMessage (webpack://matter-server/./node_modules/ws/lib/receiver.js?:596:14)
2025-06-21 15:02:34.783 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.getData (webpack://matter-server/./node_modules/ws/lib/receiver.js?:496:10)
2025-06-21 15:02:34.784 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver.startLoop (webpack://matter-server/./node_modules/ws/lib/receiver.js?:167:16)
2025-06-21 15:02:34.786 [TRACE] [ternal.client.MatterWebsocketService] -   at Receiver._write (webpack://matter-server/./node_modules/ws/lib/receiver.js?:94:10)
2025-06-21 15:02:34.873 [TRACE] [ternal.client.MatterWebsocketService] - CertificateAuthority: Loaded stored credentials with ID 0
2025-06-21 15:02:34.893 [TRACE] [ternal.client.MatterWebsocketService] - MatterController: Used existing fabric
2025-06-21 15:02:34.918 [TRACE] [ternal.client.MatterWebsocketService] - SessionManager: restoring resumption record for node 18236742828535288776 and peer node 18236742828535288776 for fabric index 1
2025-06-21 15:02:34.922 [TRACE] [ternal.client.MatterWebsocketService] - SessionManager: restoring resumption record for node 4640140916271736671 and peer node 4640140916271736671 for fabric index 1
2025-06-21 15:02:34.924 [TRACE] [ternal.client.MatterWebsocketService] - SessionManager: restoring resumption record for node 8114361616042164644 and peer node 8114361616042164644 for fabric index 1
2025-06-21 15:02:34.935 [TRACE] [ternal.client.MatterWebsocketService] - MdnsScanner: MDNS Scanner started listening for MDNS messages
2025-06-21 15:02:34.937 [TRACE] [ternal.client.MatterWebsocketService] - MdnsScanner: MDNS Scan targets updated : commissionable = true Targets: E1926E7F41670501
2025-06-21 15:02:34.943 [TRACE] [ternal.client.MatterWebsocketService] - DeviceAdvertiser: Announcing fabricIndex: 1 fabricId: 1
2025-06-21 15:02:34.962 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: E1926E7F41670501-4B0A6A497A40F6B8 qname: E1926E7F41670501-4B0A6A497A40F6B8._matter._tcp.local port: 55678 interface: eth0
2025-06-21 15:02:34.965 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: E1926E7F41670501-4B0A6A497A40F6B8 qname: E1926E7F41670501-4B0A6A497A40F6B8._matter._tcp.local port: 55678 interface: br-f2264b7636d0
2025-06-21 15:02:34.967 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: E1926E7F41670501-4B0A6A497A40F6B8 qname: E1926E7F41670501-4B0A6A497A40F6B8._matter._tcp.local port: 55678 interface: tailscale0
2025-06-21 15:02:34.970 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: E1926E7F41670501-4B0A6A497A40F6B8 qname: E1926E7F41670501-4B0A6A497A40F6B8._matter._tcp.local port: 55678 interface: veth4fa493d
2025-06-21 15:02:34.990 [TRACE] [ternal.client.MatterWebsocketService] - ClientController: Started Node
2025-06-21 15:02:34.996 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: 0.0.0.0:5353
2025-06-21 15:02:34.997 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:34.999 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: 0.0.0.0:5353
2025-06-21 15:02:35.002 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:35.006 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: 0.0.0.0:5353
2025-06-21 15:02:35.011 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:35.012 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Socket created and bound remoteAddress: undefined:5353 localAddress: :::5353
2025-06-21 15:02:35.014 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: 192.168.1.246:5353 interface: eth0 type: udp4
2025-06-21 15:02:35.015 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: ::%eth0:5353 interface: eth0 type: udp6
2025-06-21 15:02:35.017 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: 172.18.0.1:5353 interface: br-f2264b7636d0 type: udp4
2025-06-21 15:02:35.020 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: ::%br-f2264b7636d0:5353 interface: br-f2264b7636d0 type: udp6
2025-06-21 15:02:35.022 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: 100.85.227.112:5353 interface: tailscale0 type: udp4
2025-06-21 15:02:35.024 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: ::%tailscale0:5353 interface: tailscale0 type: udp6
2025-06-21 15:02:35.026 [TRACE] [ternal.client.MatterWebsocketService] - NodejsChannel: Initialize multicast address: ::%veth4fa493d:5353 interface: veth4fa493d type: udp6

I have a PR to fix this issue :crossed_fingers:

1 Like

Hi Dan,
I managed to setup Matter Binding as a bridge for MQTT elements (I want to control my HVAC system with Alexa). So, using the GUI, I created an Item group and added all HVAC Items (modes, fans, temperatures, etc.) as members. I added Matter metadata and configured “Matter Attributes Mapping” with (I think) the corresponding elements. Then I searched and found the new Matter device (“Clima”) in the Alexa app. The “Clima” device gives me the option to set the mode (Heating, Cooling, Auto, Off but not Drying), but when I select the mode in the app I see that the command received from the “mode” element is a number and not a string as needed (0 and not “off”, 1 and not “heat_cool”, etc.) and therefore it is not executed. I saw that I can configure the mapping, but despite what is written in the “Mapping options” text box, when I set the mode via the app I always get a number as a command in the mode Item.
Where am I going wrong?
Thanks for any help.

Hi @p-ranit , this is likely an issue with the UI, I have to admit i probably did not test that as extensively as i should of, and the UI code is actually pretty complex to handle all the different tagging cases. I’ll look at this today and see if i can find a workaround for you in the mean time.

@p-ranit after adding your mappings , did you select “Update Group Members” before saving?

Thanks Dan for the quick reply,
I confirm that I have applied “update group members” when I did the configuration (otherwise the changes are not kept even if you save the configuration).

Ok, its a UI bug. As a workaround, you can modify the yaml in the UI until i get it fixed.

After you save your mappings and click update group members, go back to items and edit your "mode’ item, and edit the Matter metadata. You won’t see the mappings in the UI, but if you click on the code tab, you will see your mappings, like:

We need to remove the “thermostat.systemmode:” entry from under the config, and then unindent the rest of the values (so select them and click “shift tab” ). It should look like this:

But of course with your mappings (i use _heat and so on just for testing). Once you change this, it won’t show up as mapped in the group item, but it should still work. Let me know how that goes.

Fix for UI issue

Thanks for all of your work on this binding.

As described in more detail at the following, this is in regards to a Tapo s505d Matter Wifi Smart Dimmer Switch. This is my second Matter device. The other, a simple on/off wall switch, is working as expected.

This issue that I have encountered is that the binding detects the node for the device and creates a node Thing. But it only provides one channel, a dimmer “levelcontol-level” channel. There is no channel for onoffcontrol-onoff, though the trace log shows that Matter is aware of it both controller clusters.

As described in the link above, if the dimmer channel receives ON, OFF or a number representing the level, it performs the appropriate action on the device. With a virtual switch, I created a rule that makes everything work as expected (ON/OFF switch works both ways as does the dimmer. But I would think that both of these endpoints should be available. I checked the Thing Inbox, and there are no EndPoint Things for the Matter binding there.

openhabian@oh-s:~ $ cat /var/log/openhab/openhab.log | grep -i matter | grep send
2025-06-21 09:39:19.256 [DEBUG] [.matter.internal.handler.NodeHandler] - sendClusterCommand 1637427550786769949 1 OnOff
2025-06-21 09:39:19.257 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"dcdaac79-db13-444e-b6c8-cd68c8b39237","namespace":"clusters","function":"command","args":["1637427550786769949",1,"OnOff","on",{}]}
2025-06-21 09:39:25.920 [DEBUG] [.matter.internal.handler.NodeHandler] - sendClusterCommand 1637427550786769949 1 OnOff
2025-06-21 09:39:25.921 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"40b25b11-84bd-4523-9f5e-de234e67014e","namespace":"clusters","function":"command","args":["1637427550786769949",1,"OnOff","off",{}]}
2025-06-21 09:42:49.011 [DEBUG] [.matter.internal.handler.NodeHandler] - sendClusterCommand 1637427550786769949 1 LevelControl
2025-06-21 09:42:49.012 [DEBUG] [al.controller.MatterControllerClient] - sendMessage: {"id":"3b9ef5a2-b56a-4cc3-bed3-8bb13f0bb1b6","namespace":"clusters","function":"command","args":["1637427550786769949",1,"LevelControl","moveToLevelWithOnOff",{"level":130,"transitionTime":0,"optionsMask":{"executeIfOff":false,"coupleColorTempToLevel":false},"optionsOverride":{"executeIfOff":false,"coupleColorTempToLevel":false}}]}
2025-06-21 09:42:50.079 [DEBUG] [.matter.internal.handler.NodeHandler] - sendClusterCommand 1637427550786769949 1 OnOff
openhabian@oh-s:~ $ 

Seems like it would be appropriate for both the dimmer level and on/off channels to be provided automatically. Happy to help in anyway I can.

Thanks Dan,
I did as you suggested and now it works!!!

1 Like

Dan, I just installed the snapshot 4698 and the problem did not occur.
Thank you for the fix.

1 Like

This is by design. Since a dimmer accepts ON and OFF , there is no point to having 2 channels. If an ON or OFF command is received, we use the ONOFF cluster in matter, we also respond to ONOFF matter events. And just FYI the matter spec requires dimmer devices to alway include a ONOFF cluster, its not something a vendor has the option of not including.

I’m reading your other post, this definitely seems like a Main UI bug, you can link a Switch item to a dimmer channel in openHAB without a profile, i do that in my file based items all the time. We should open an issue up to fix that in the MainUI.

Thanks for the response. Makes complete sense - just need the UI to support it.

When you say “we”, is this something I should do, or is it something who knows more about what needs to be done who needs to open the issue?