[matter] Robotic Vacuum Cleaner (RVC) Error State

@digitaldan
I now have a trace file in case the RVC has an error condition.
Both traces are from the start of openHAB. When comparing them, I notice the following value in the error case, which otherwise has the value 0.

operationalError(0x5)

Is this an usable error status that could be integrated into the binding ?
openhab.error.log (517.7 KB)
openhab.no_error.log (484.0 KB)

Thats the attribute id number, not the value, if you look at the log, the value is printed like

"operationalError":{"errorStateId":0}

I don’t that value ever changing ?

Thank you for the explanation. I was hoping this was an error code.

I’ve been looking for a change in the traces for a long time, but never found one. Then it seems that RVC doesn’t currently support it. I’ll get back to you after the next RVC firmware update. :grinning_face:

@digitaldan After firmware update of my RVC I found some log entries after error (DEBUG loglevel):

empty water tank:

2025-10-07 18:36:00.317 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“eventTriggered”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“eventId”:0,“eventName”:“operationalError”},“events”:[{“path”:“undefined”,“eventNumber”:“10354690”,“priority”:2,“epochTimestamp”:“1759854958752”,“data”:{“errorState”:{“errorStateId”:68}}}]}}}
2025-10-07 18:36:00.318 [DEBUG] [al.controller.MatterControllerClient] - eventTriggered message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“eventId”:0,“eventName”:“operationalError”},“events”:[{“path”:“undefined”,“eventNumber”:“10354690”,“priority”:2,“epochTimestamp”:“1759854958752”,“data”:{“errorState”:{“errorStateId”:68}}}]}
2025-10-07 18:36:00.322 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:4,“attributeName”:“operationalState”},“version”:377445924,“value”:3}}}
2025-10-07 18:36:00.323 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:4,“attributeName”:“operationalState”},“version”:377445924,“value”:3}
2025-10-07 18:36:00.323 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1
2025-10-07 18:36:00.326 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:5,“attributeName”:“operationalError”},“version”:377445924,“value”:{“errorStateId”:68}}}}
2025-10-07 18:36:00.327 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:5,“attributeName”:“operationalError”},“version”:377445924,“value”:{“errorStateId”:68}}
2025-10-07 18:36:00.327 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1
2025-10-07 18:36:01.313 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:4,“attributeName”:“operationalState”},“version”:377445926,“value”:1}}}
2025-10-07 18:36:01.314 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:4,“attributeName”:“operationalState”},“version”:377445926,“value”:1}
2025-10-07 18:36:01.314 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1
2025-10-07 18:36:01.315 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:5,“attributeName”:“operationalError”},“version”:377445926,“value”:{“errorStateId”:0}}}}
2025-10-07 18:36:01.316 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:97,“attributeId”:5,“attributeName”:“operationalError”},“version”:377445926,“value”:{“errorStateId”:0}}
2025-10-07 18:36:01.316 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1

“attributeName”:“operationalError”},“version”:377445924,“value”:{“errorStateId”:68}}

This is the change of the value you requested (but direct after 0 again ???)

after filling the water tank:

2025-10-07 18:48:28.240 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:336,“attributeId”:0,“attributeName”:“supportedAreas”},“version”:3448867824,“value”:[{“areaId”:1,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Corridor”,“floorNumber”:null,“areaType”:16},“landmarkInfo”:null}},{“areaId”:2,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Kitchen”,“floorNumber”:null,“areaType”:47},“landmarkInfo”:null}},{“areaId”:3,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Bathroom”,“floorNumber”:null,“areaType”:6},“landmarkInfo”:null}},{“areaId”:4,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Living room”,“floorNumber”:null,“areaType”:52},“landmarkInfo”:null}},{“areaId”:5,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Dining room”,“floorNumber”:null,“areaType”:21},“landmarkInfo”:null}}]}}}
2025-10-07 18:48:28.241 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:336,“attributeId”:0,“attributeName”:“supportedAreas”},“version”:3448867824,“value”:[{“areaId”:1,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Corridor”,“floorNumber”:null,“areaType”:16},“landmarkInfo”:null}},{“areaId”:2,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Kitchen”,“floorNumber”:null,“areaType”:47},“landmarkInfo”:null}},{“areaId”:3,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Bathroom”,“floorNumber”:null,“areaType”:6},“landmarkInfo”:null}},{“areaId”:4,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Living room”,“floorNumber”:null,“areaType”:52},“landmarkInfo”:null}},{“areaId”:5,“mapId”:0,“areaInfo”:{“locationInfo”:{“locationName”:“Dining room”,“floorNumber”:null,“areaType”:21},“landmarkInfo”:null}}]}
2025-10-07 18:48:28.241 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1
2025-10-07 18:48:28.241 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {“type”:“event”,“message”:{“type”:“attributeChanged”,“data”:{“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:336,“attributeId”:2,“attributeName”:“selectedAreas”},“version”:3448867824,“value”:}}}
2025-10-07 18:48:28.242 [DEBUG] [al.controller.MatterControllerClient] - attributeChanged message {“path”:{“nodeId”:“15624972389950523469”,“endpointId”:1,“clusterId”:336,“attributeId”:2,“attributeName”:“selectedAreas”},“version”:3448867824,“value”:}
2025-10-07 18:48:28.242 [DEBUG] [.matter.internal.handler.NodeHandler] - AttributeChangedMessage for endpoint 1

Is this something you can work with for an error status ?