Closed tijunoi closed 1 year ago
As I see it is not getting activity for the moment, just want to add that I have a working implementation of this, and would be ready to create a PR.
Just seeing this now I think in HA terminology it's technically an area? I think this is a good idea as we do have a custom neato cleaning service that allows users to clean a zone. May need to wait for a core member to chime in here on the flow.
This architecture issue is old, stale, and possibly obsolete. Things changed a lot over the years. Additionally, we have been moving to discussions for these architectural discussions.
For that reason, I'm going to close this issue.
../Frenck
Context
Defined/preset room/zone cleaning is becoming every time more common in vacuum robots, but the base vacuum entity does not have that capability, leaving it to the integrations to declare their own additional service for it or having the users declare multiple workarounds like a script for every room they have (here, here, and here)
As the integrations can't report the rooms in a common state attribute and there is no default service for a room clean start/stop, it also makes it impossible to add the room cleaning feature of Google Assistant (and other voice assistants in the future maybe), as the google_assistant integration can't report the available zones. This feature can already work in a hacky way (see this post by pergola.fabio)
Proposal
SUPPORT_ROOM_CLEANING
) I don't know if it should have a standard format for id, name, etc. Some vacuums support zones (by coordinates) and others also support rooms (no coordinates, only id and name)Either:
start_room_cleaning
andstop_room_cleaning
or
availableZones
property in SYNC request and as a parameter in traitStartStop
) referenceConsequences
As it is an additional feature with an optional support feature, it would not break current integrations, as they would be working as they currently work, but they should eventually be migrated to the common vacuum entity rooms.
p.s. I'm not sure on the naming, room vs zone, as it can be confusing. Roborock/Xiaomi vacuums support zones (by coordinates) and then also recently rooms (by id). Should the vacuum entity distinguish those two?