I’m about to open a PR to fix it right now
Hi Dan,
Openhab 5.0.0.M3 using the 5.0.0.M3 Matter binding.
I have some questions about the binding and the channels it makes available. Sorry if these reflect a lack of knowledge .
My WOOX power plug Switch works fine. Is it a limitation of WOOX that there are no channels to capture the values linked to power management?
Aqara motion detector is working as expected .
Aqara Climate Sensor W100 provides temperature and humidity. It also has 3 buttons which could be used to trigger something. Discovery generated many channels per button. Image shows all channels related to one button.
From this I understood I could differentiate different actions like short press, long press…but it seems different channels are triggered at the same time. Here is the events log when pressing button 1 labelled + on the device:
2025-06-24 20:03:08.252 [INFO ] [openhab.event.ChannelTriggeredEvent ] - matter:node:385a4b8ee5:5693461742513239117:3#switch-initialpress triggered {"newPosition":1}
2025-06-24 20:03:08.253 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Test_Climate_Sensor_W100_Initial_Press_Trigger' received command {"newPosition":1}
2025-06-24 20:03:08.254 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Test_Climate_Sensor_W100_Initial_Press_Trigger' predicted to become {"newPosition":1}
2025-06-24 20:03:08.265 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Climate_Sensor_W100_Switch' changed from 0 to 1
2025-06-24 20:03:08.266 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Test_Climate_Sensor_W100_Switch' changed from 0 to 1
2025-06-24 20:03:09.241 [INFO ] [openhab.event.ChannelTriggeredEvent ] - matter:node:385a4b8ee5:5693461742513239117:3#switch-shortrelease triggered {"previousPosition":1}
2025-06-24 20:03:09.243 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Test_Climate_Sensor_W100_Short_Release_Trigger' received command {"previousPosition":1}
2025-06-24 20:03:09.245 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Test_Climate_Sensor_W100_Short_Release_Trigger' predicted to become {"previousPosition":1}
2025-06-24 20:03:09.249 [INFO ] [openhab.event.ChannelTriggeredEvent ] - matter:node:385a4b8ee5:5693461742513239117:3#switch-multipresscomplete triggered {"previousPosition":1,"totalNumberOfPressesCounted":1}
2025-06-24 20:03:09.262 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Climate_Sensor_W100_Switch' changed from 1 to 0
2025-06-24 20:03:09.264 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Test_Climate_Sensor_W100_Switch' changed from 1 to 0
Is this the expected behaviour?
Thanks
I would need to see the JSON initialization message from TRACE logs, but its likely thats not exposed over matter (that device sounds familiar) or is using a non standard cluster.
We are reporting on exactly what the device sends us, so those events are being fired from the device, so you have a press start, press release (you could single, double or triple click) and complete event, you can decide which one is best for your rules like this i use for my fancy switch:
rules.when()
.channel('matter:node:main:2345205497775333246:5#switch-multipresscomplete').triggered().then( e => {
const data = JSON.parse(e.payload.event);
console.log("Switch Data: ", data);
const isOn = items.F1_DansOffice_Light.state > 0;
switch(data.totalNumberOfPressesCounted) {
case 1:
items.F1_DansOffice_Light.sendCommand(isOn ? "OFF" : "ON");
break;
case 2:
items.F1_DansOffice_Light.sendCommand("100");
break;
case 3:
items.F1_DansOffice_Light.sendCommand("OFF");
break;
}
}).build('Matter Trigger: multipresscomplete', 'Matter Trigger event for multipresscomplete');
This allows a single click, double click, and triple click to execute different commands (1 , 2, 3)
Thanks Dan. I’m using DSL rules but I presume I can replicate the same result.
I’m running 5.0.0.M3 version of the matter binding and I have a fan defined as
Switch sMasterBedFan "Master Bedroom Ceiling Fan" {channel="insteon:device:home:242f74:switch", matter="Fan, onOff.onOff"}
When I manually turn off the fan, for some reason the matter binding is sending commands. Sometimes, it sends ON followed by OFF commands. If you look at the logs below, you see that item properly changed state, followed by OFF and ON commands. If remove matter="Fan, onOff.onOff"
, I only get the item state changed event.
2025-06-25 19:17:23.282 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-25 19:17:23.295 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:23.296 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:23.303 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:23.304 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:25.904 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from OFF to ON
2025-06-25 19:17:25.925 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:25.926 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:25.931 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:25.932 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:31.549 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-25 19:17:31.565 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:31.567 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:31.569 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:31.570 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:31.982 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from OFF to ON
2025-06-25 19:17:31.990 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:31.992 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:31.994 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:31.996 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:35.613 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-25 19:17:35.623 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:35.625 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:35.627 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:35.628 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:37.967 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from OFF to ON
2025-06-25 19:17:37.976 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:37.977 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:37.981 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:37.983 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:41.596 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-25 19:17:41.606 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:41.607 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:41.610 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-25 19:17:41.611 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-25 19:17:43.932 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from OFF to ON
2025-06-25 19:17:43.952 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:43.953 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
2025-06-25 19:17:43.961 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command ON
2025-06-25 19:17:43.962 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become ON
Thats super odd, let me see if i can reproduce on a test system today.
So, i don’t think this is right, in the README our example uses {matter="Fan, fanControl.fanMode"}
for a single Switch item. I’ll probably need to add a check to ignore invalid configurations.
We worked through this earlier this year.
Hmm, ok, i’ll keep looking, nothing changed there which is whats odd.
@ranielsen could you put the binding in TRACE mode and try again and send me those logs?
Here you go:
2025-06-26 12:46:08.164 [DEBUG] [er.internal.bridge.devices.FanDevice] - sMasterBedFan state changed from ON to OFF
2025-06-26 12:46:08.166 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"28f3d584-c49f-43e8-b305-b2af8a684f19","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","onOff","onOff",false]}
2025-06-26 12:46:08.167 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"526eae4e-4bf4-4348-bfbb-64c97e7ba04d","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","fanMode",0]}
2025-06-26 12:46:08.169 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"c0c3025c-5845-4f95-849a-0918422b73d2","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentCurrent",0]}
2025-06-26 12:46:08.170 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"28f3d584-c49f-43e8-b305-b2af8a684f19","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 12:46:08.170 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"6544d377-9ec3-4ebe-881d-ddd9aba8b568","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentSetting",0]}
2025-06-26 12:46:08.171 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 12:46:08.176 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"526eae4e-4bf4-4348-bfbb-64c97e7ba04d","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 12:46:08.178 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 12:46:08.178 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"c0c3025c-5845-4f95-849a-0918422b73d2","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 12:46:08.179 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 12:46:08.179 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"6544d377-9ec3-4ebe-881d-ddd9aba8b568","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 12:46:08.180 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 12:46:08.189 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"fanMode","data":0}}}}
2025-06-26 12:46:08.190 [DEBUG] [r.internal.bridge.MatterBridgeClient] - bridgeEvent message {"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"fanMode","data":0}}
2025-06-26 12:46:08.193 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"percentSetting","data":0}}}}
2025-06-26 12:46:08.194 [DEBUG] [r.internal.bridge.MatterBridgeClient] - bridgeEvent message {"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"percentSetting","data":0}}
events.log:
2025-06-26 12:46:08.165 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-26 12:46:08.196 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-26 12:46:08.197 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-26 12:46:08.198 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-26 12:46:08.201 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
Also after removing matter from the item, here’s what’s logged after turning the fan off then back on again:
2025-06-26 13:19:17.089 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-26 13:19:24.782 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from OFF to ON
So thats log helpful, but different then what happened before where it kept turning the switch on and off? The log you showed me says it turned off, and then received 2 more off commands, but remained off and did not toggle back on (so in essence this is working). Also were there more events? It would be helpful to get more logs if there were any, or let me know if that was it.
Also thats DEBUG level, it would be helpful if you could enable TRACE logging.
It’s only got into this state a couple of times.The commands are only getting sent when matter is enabled for the device.
Sorry, here’s trace logs, when I turned off the switch for the fan.
2025-06-26 15:40:19.531 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://[fe80::18d7:f05f:7826:4e34%end0]:5540 on session secure/33329 protocol: 1 exId: 42224 sess: secure/33329 peerSess: 53972 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP I
2025-06-26 15:40:19.531 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » for: I/ReportData subId: 2758992679 empty suppressResponse msgId: 53972/42224/56656168 type: 0x1/0x5 reqAck size: 13 payload: 15260027e372a4290424ff0c18
2025-06-26 15:40:19.564 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « for: SC/StandaloneAck msgId: 33329/42224/124413606 type: 0x0/0x10 acked: 56656168
2025-06-26 15:40:33.812 [DEBUG] [er.internal.bridge.devices.FanDevice] - sMasterBedFan state changed from ON to OFF
2025-06-26 15:40:33.813 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"67f6b398-1eee-487a-bc82-2a0c94a1502c","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","onOff","onOff",false]}
2025-06-26 15:40:33.813 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"32fd0a7b-8554-47ab-a059-028ea6eb314f","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","fanMode",0]}
2025-06-26 15:40:33.814 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"391026a7-c978-4dcf-8b96-7f2efd9718b4","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentCurrent",0]}
2025-06-26 15:40:33.814 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"2a82900d-f7f7-4c6f-9aa3-397d825fbea0","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentSetting",0]}
2025-06-26 15:40:33.814 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"67f6b398-1eee-487a-bc82-2a0c94a1502c","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.815 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"67f6b398-1eee-487a-bc82-2a0c94a1502c","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","onOff","onOff",false]}
2025-06-26 15:40:33.815 [TRACE] [ternal.client.MatterWebsocketService] - BridgeController: Executing function bridge.setEndpointState(["sMasterBedFan","onOff","onOff",false])
2025-06-26 15:40:33.816 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultSuccess","id":"67f6b398-1eee-487a-bc82-2a0c94a1502c","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.816 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"32fd0a7b-8554-47ab-a059-028ea6eb314f","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","fanMode",0]}
2025-06-26 15:40:33.816 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 15:40:33.816 [TRACE] [ternal.client.MatterWebsocketService] - BridgeController: Executing function bridge.setEndpointState(["sMasterBedFan","fanControl","fanMode",0])
2025-06-26 15:40:33.817 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"391026a7-c978-4dcf-8b96-7f2efd9718b4","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentCurrent",0]}
2025-06-26 15:40:33.817 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"32fd0a7b-8554-47ab-a059-028ea6eb314f","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.817 [TRACE] [ternal.client.MatterWebsocketService] - BridgeController: Executing function bridge.setEndpointState(["sMasterBedFan","fanControl","percentCurrent",0])
2025-06-26 15:40:33.817 [TRACE] [ternal.client.MatterWebsocketService] - Controller: Received request: {"id":"2a82900d-f7f7-4c6f-9aa3-397d825fbea0","namespace":"bridge","function":"setEndpointState","args":["sMasterBedFan","fanControl","percentSetting",0]}
2025-06-26 15:40:33.817 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"391026a7-c978-4dcf-8b96-7f2efd9718b4","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.818 [TRACE] [ternal.client.MatterWebsocketService] - BridgeController: Executing function bridge.setEndpointState(["sMasterBedFan","fanControl","percentSetting",0])
2025-06-26 15:40:33.818 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 15:40:33.818 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultSuccess","id":"32fd0a7b-8554-47ab-a059-028ea6eb314f","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.818 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 15:40:33.818 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultSuccess","id":"391026a7-c978-4dcf-8b96-7f2efd9718b4","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.818 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"2a82900d-f7f7-4c6f-9aa3-397d825fbea0","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.819 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2025-06-26 15:40:33.819 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultSuccess","id":"2a82900d-f7f7-4c6f-9aa3-397d825fbea0","result":"undefined","error":"undefined","errorId":"undefined"}}
2025-06-26 15:40:33.819 [TRACE] [ternal.client.MatterWebsocketService] - Transaction: Tx set<oh-bridge.aggregator.sMasterBedFan>#28ac waiting on set<oh-bridge.aggregator.sMasterBedFan>#28ab
2025-06-26 15:40:33.820 [TRACE] [ternal.client.MatterWebsocketService] - Transaction: Tx set<oh-bridge.aggregator.sMasterBedFan>#28ad waiting on set<oh-bridge.aggregator.sMasterBedFan>#28ab
2025-06-26 15:40:33.824 [TRACE] [ternal.client.MatterWebsocketService] - GenericDevice: Sending event: bridgeEvent with data: [object Object]
2025-06-26 15:40:33.824 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending event: {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"fanMode","data":0}}}}
2025-06-26 15:40:33.824 [TRACE] [ternal.client.MatterWebsocketService] - Transaction: Tx set<oh-bridge.aggregator.sMasterBedFan>#28ad waiting on set<oh-bridge.aggregator.sMasterBedFan>#28ac
2025-06-26 15:40:33.825 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"fanMode","data":0}}}}
2025-06-26 15:40:33.825 [DEBUG] [r.internal.bridge.MatterBridgeClient] - bridgeEvent message {"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"fanMode","data":0}}
2025-06-26 15:40:33.831 [TRACE] [ternal.client.MatterWebsocketService] - GenericDevice: Sending event: bridgeEvent with data: [object Object]
2025-06-26 15:40:33.831 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"percentSetting","data":0}}}}
2025-06-26 15:40:33.832 [DEBUG] [r.internal.bridge.MatterBridgeClient] - bridgeEvent message {"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"percentSetting","data":0}}
2025-06-26 15:40:33.832 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending event: {"type":"event","message":{"type":"bridgeEvent","data":{"type":"attributeChanged","data":{"endpointId":"sMasterBedFan","clusterName":"fanControl","attributeName":"percentSetting","data":0}}}}
2025-06-26 15:40:33.872 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://[fe80::18d7:f05f:7826:4e34%end0]:5540 on session secure/33329 protocol: 1 exId: 42225 sess: secure/33329 peerSess: 53972 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP I
2025-06-26 15:40:33.874 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » for: I/ReportData subId: 2758992679 attr: 4 msgId: 53972/42225/56656169 type: 0x1/0x5 reqAck size: 122 payload: 15260027e372a436011535012600bc73d5233701240220250302022404001824020018181535012600bc73d5233701240220250302022404021824020018181535012600bc73d5233701240220250302022404031824020018181535012600f2dd5b183701240220240306240400182802181818280424ff0c18
2025-06-26 15:40:33.884 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « for: I/StatusResponse msgId: 33329/42225/124413607 type: 0x1/0x1 acked: 56656169 reqAck size: 8 payload: 1524000024ff0c18
2025-06-26 15:40:33.885 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » for: SC/StandaloneAck msgId: 53972/42225/56656170 type: 0x0/0x10 acked: 124413607
2025-06-26 15:40:52.480 [TRACE] [ternal.client.MatterWebsocketService] - DeviceAdvertiser: Announcing fabricIndex: 1 fabricId: 4179334564893552237
2025-06-26 15:40:52.482 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: 13889D6ADB4DE20A-000000004191D24F qname: 13889D6ADB4DE20A-000000004191D24F._matter._tcp.local port: 5540 interface: end0
2025-06-26 15:40:52.483 [TRACE] [ternal.client.MatterWebsocketService] - MdnsBroadcaster: Announcement Generator: Fabric id: 13889D6ADB4DE20A-000000004191D24F qname: 13889D6ADB4DE20A-000000004191D24F._matter._tcp.local port: 5540 interface: tun0
2025-06-26 15:41:00.874 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://[fe80::18d7:f05f:7826:4e34%end0]:5540 on session secure/33329 protocol: 1 exId: 42226 sess: secure/33329 peerSess: 53972 SAT: 4000 SAI: 300 SII: 500 maxTrans: 5 MRP I
2025-06-26 15:41:00.875 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » for: I/ReportData subId: 2758992679 empty suppressResponse msgId: 53972/42226/56656171 type: 0x1/0x5 reqAck size: 13 payload: 15260027e372a4290424ff0c18
2025-06-26 15:41:00.883 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « for: SC/StandaloneAck msgId: 33329/42226/124413608 type: 0x0/0x10 acked: 56656171
and the events.log:
2025-06-26 15:40:33.812 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'sMasterBedFan' changed from ON to OFF
2025-06-26 15:40:33.826 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-26 15:40:33.827 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF
2025-06-26 15:40:33.833 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'sMasterBedFan' received command OFF
2025-06-26 15:40:33.833 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'sMasterBedFan' predicted to become OFF```
Do you mean when it goes on and off? So its not happening every time? Or is it happening all the time. The logs you are posting shows some extra off commands which should not hurt anything, but which i’m looking into (and suspect its part of the on/off behavior you first posted), but right now its working ?
I’ve only had it get into the state where the device toggle on/off a few times. I’m always getting the extra commands, my guess is that the extra commands is causing the issue.
I have a quick question regarding the Matter implementation in OpenHAB. I am currently running 5.0-4702 and using the Matter Binding asa bridge linking to Apple Home. I have everything running fine except for my Thermostat. It shows up in Apple Home as expected, but the reported temperatures are all wrong. It is taking my reported Fahrenheit Temperatures, assuming they are Celsius and Converting them to Fahrenheit, so Apple Home shows my room temperature as 161. Is this standard behavior for Matter or is this a bug? Is there a fix?
Is your temperature item a “Number:Temperature” ? If so it should be doing the conversion, if not i may need to add a config option to specify that. If you can post your thermostat items, that would be helpful.
Just a straight Number with {Unit=F}
Number vVenstar_CoolSetPoint "Cool SetPoint [%.0f°F]" <temperature_cold> ( gHVAC, Group_HabPanel_Dashboard) ["Setpoint"] { unit="°F" }
Number vVenstar_HeatSetPoint "Heat SetPoint [%.0f°F]" <temperature_hot> ( gHVAC, Group_HabPanel_Dashboard) ["Setpoint"] { unit="°F" }
Number:Dimensionless vVenstar_Humidity "Humidity [%.0f%%]" <humidity> (gHVAC, Group_HabPanel_Dashboard) [ "Humidity"]
Number vVenstar_Thermostat "Living Rm Temperature [%.0f°F]" <temperature> (gHVAC, Group_HabPanel_Dashboard) ["Measurement", "Temperature"] { unit="°F" }
Replace Number by Number:Temperature and it should work.