@digitaldan
Hi Dan,
I found your PR and testet it.
It is not working for me, still only 2 battery channels and some exceptions.
Tested with clean install of OH5 daily build and your matter-rvc branch. No other binding.
Full trace log from start to add RVC:
openhab.log (909.7 KB)
Thanks for testing! Indeed, there are some exceptions in the logs, let me fix those and update the PR.
If you’d like, I can also test the new version from your GitHub beforehand. Let me know if there’s an update.
Thanks, i’ll hopefully have something shortly up on the PR which i changed to draft mode so it won’t get merged.
The RVC clusters all use inheritance in the matter spec, which is a complex cluster type we have not had to use before, its having some issues with that and using the right child class structures when deserializing the message using our Java inherited structure. Working on that now.
I just pushed a rather big refactor of the code gen logic to the PR, hopefully that gets us past the serialization issues.
There is another problem with the service area cluster i did not fix, so that will come tomorrow.
One more small finding in the log after adding items for all channels:
2025-06-22 12:12:17.085 [WARN ] [antics.internal.SemanticsServiceImpl] - Item ‘Matter_Device_Roborock_Robotic_Vacuum_Cleaner_Go_Home’ (Point) has an invalid combination of semantic tags: Switch (Point) and Control (Point). Only one Point and optionally one Property tag may be assigned.
I just pushed new code that should now process service areas. If you could test a bit that would be fantastic, thanks!
Fantastic, your response times and your quality.
Here are my results of the first short test:
- no more exceptions
- no more warning / error
- new channels, one per room (I got a room “Area 6”, I do not know this room, I have to check my Roborock Floor Plan, at least not Area 51
)
- Started cleaning the kitchen and he did it. I’m impressed.
One thing caught my attention, but I think it’s due to Roborock’s Matter API and not the openHAB binding:
You binding knows as cleaning modes: Vac & Mop, Vac, Mop.
The Roborock App has two additional Modes. Smart und individually.
There are no codes for this modes. If you don’t suppress messages in trace mode, you won’t even get a message from the matter API when I switch in the app from Vac & Mop to Smart or to individually.
Great job @digitaldan , thank you very much. In my opinion, the PR can be released like this.
Glad its mostly working.
So i see the following cleaning modes, do you not see all of these?
"label": "Quiet, Vacuum Only"
"label": "Auto, Vacuum Only"
"label": "Deep Clean, Vacuum Only"
"label": "Quiet, Mop Only"
"label": "Auto, Mop Only"
"label": "Deep Clean, Mop Only"
"label": "Quiet, Vacuum and Mop"
"label": "Auto, Vacuum and Mop"
"label": "Deep Clean, Vacuum and Mop"
Regarding the Smart mode, yeah its likely its just not supported over matter.
From app to matter:
I think I can get all of them. But this is not so simple:
I can select one of 5 cleaning mode groups in the app (-> matter binding with default settings of the group)
SmartPlan → Auto, Vacuum and Mop
Vac & Mop → Auto, Vacuum and Mop
Mop → Auto, Mop Only
Vac → Auto, Vacuum Only
individually → Auto, Vacuum and Mop
And now I can change the settings of the selected group in the app, e.g.:
Vac with power min → Quiet, Vacuum Only
Vac with power max → Deep Clean, Vacuum Only
But not all settings of the goup are reported via matter, e.g.:
Vac with 2 times: no matter change
From matter to app:
It is not possible to switch via matter to SmartPlan or individually, sending code 8 results in Vac & Mop.
I need the code numbers to send via the item. Will there be a help text somewhere later to determine the codes for the modes above? I got them from the trace log, but it’s not user-friendly.
For me, this isn’t a limitation; I always use the SmartPlan. As long as I don’t change it via matter, it stays active.
Not sure i’m following, what is “with 2 times”
Do you mean “Auto, Vacuum and Mop” ? Thats what the device has associated with 8
The Main UI should show the text, not the numbers, when using a label card with an action item, is this not happening? If you view the item in the Main UI settings, is it listing the number and not the text?
I couldn’t find Area 6 in my floor plan. So I simply started cleaning Area 6 and watched what the robot was doing. Area 6 is “all rooms.” It would be nice if the channel name could be “all rooms”.
Perhaps the presence of a value in “landmarkInfo” could be a suitable criterion. Once again a full trace log from start to add rvc.
openhab.log (869.5 KB)
{"supportedAreas":[
{"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}},
{"areaId":6,"mapId":0,"areaInfo":{"locationInfo":null,"landmarkInfo":{"landmarkTag":46,"relativePositionTag":2}}}]
Yeah, i’ll need to research the landmark tags, thats a new one.
This is an option in the app to do the cleaning twice.
Vac & Mop is the name in the app for the group. Depending on the group settings, it is then “Auto, Vacuum and Mop”, “Quiet, Vacuum and Mop” or “Deep Clean, Vacuum and Mop” in matter.
Yes it does.
This works
But how do I know as a normal user that I have to enter 8 here for “Auto, Vacuum and Mop”
Yes, this is a possible way to get the code number without a trace. Set the requested mode from the app and get the code number from the item list.
Using the item in a label card shows the text.
Under Action, select “Command Options” not Send Command , action item should be the clean mode item, leave other options alone (leave the command options text box blank)
I have never used this before, nice feature.
Click to Clean Mode:
I’ve been using openHAB for many years, but I’m always learning new things.
Excellent, glad thats working, thanks for testing!
Whats funny, is that area 6 has this landmark info
"landmarkInfo": {
"landmarkTag": 46,
"relativePositionTag": 2
}
46 (0x2E
) means “Toilet” and 2 means “Around” … so this service area is “around the toilet” Not sure why its actually “All” rooms… its a very unused part of the matter spec, not sure where the mixup is.