Add freeClean support for newer robots#1458
Add freeClean support for newer robots#1458JBG-brad wants to merge 2 commits intoDeebotUniverse:devfrom
Conversation
Newer robots like the DEEBOT X11 OmniCyclone use the freeClean clean type instead of spotArea for room cleaning via clean_V2. Without this, room cleaning commands fail with error 20011 "unknown type". Adds CleanAreaFreeClean command class and FREE_CLEAN enum value, and updates the huhcip hardware definition to use it. Follow-up to DeebotUniverse#1457.
The X11 OmniCyclone (huhcip) has different capabilities than the X9 PRO OMNI (ilt3k8) and will get its own standalone hardware definition in a follow-up PR.
edenhaus
left a comment
There was a problem hiding this comment.
Is freeClean just used for Area/Room cleaning or also for other things?
As best as I can tell it's just the for area cleaning. Theres some nonsensical (I haven't deciphered it yet) data associated with freeClean that I think is to send the robot to clean only a carpet in the room. |
|
Hey @JBG-brad, I was just looking into this since HA added the My app sends the same {
"data": {
"act": "start",
"content": {
"type": "freeClean",
"value": "1,15;1,12"
}
}
}The only thing that doesn't seem to match from your PR is the "value": f"{cleanings},{','.join(str(int(i)) for i in area)}",I would have expected something like the following: "value": ";".join(f"{cleanings},{int(i)}" for i in area),(Not even sure what the |
| return args | ||
|
|
||
|
|
||
| class CleanAreaFreeClean(CleanV2): |
There was a problem hiding this comment.
Please merge this command into the clean area above as the only difference is, how the value is specified.
So create a if statement to change it in case of free clean
Summary
Newer robots like the DEEBOT X11 OmniCyclone
and X9 PRO OMNIuse thefreeCleanclean type instead ofspotAreafor room cleaning viaclean_V2. Without this change, room cleaning commands fail with error 20011 "unknown type".FREE_CLEANvalue to theCleanModeenumCleanAreaFreeCleancommand class that sends{"type": "freeClean", "value": "<cleanings>,<room_ids>"}huhcip(ilt3k8) hardware definition to useCleanAreaFreeCleanFollow-up to #1457.
Testing
Tested on a DEEBOT X11 OmniCyclone — room cleaning commands now work correctly via Home Assistant.
Edit:
Misunderstanding how the hardware definitions work; I assumed the X9 PRO OMNI was the same as the X11. A new PR is coming to define the X11 OmniCyclone.