roborock: get_maps return wrong room numbers
The problem
The action/service call return for all maps the same room numbers
action: roborock.get_maps
data: {}
target:
entity_id: vacuum.roborock_s7_maxv
Returns
vacuum.roborock_s7_maxv:
maps:
- flag: 1
name: "Erste Etage "
rooms:
"16": Schlafzimmer
"17": Küche
"18": Badezimmer
"19": Wohnzimmer
- flag: 2
name: "Erdgeschoss "
rooms:
"16": Schlafzimmer
"17": Küche
"18": Badezimmer
"19": Wohnzimmer
The rooms are correct for "Erdgeschoss" but not for "Erste Etage".
What version of Home Assistant Core has the issue?
core-2024.8.1
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
roborock
Link to integration documentation on our website
https://www.home-assistant.io/integrations/roborock/
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response
Hey there @lash-l, mind taking a look at this issue as it has been labeled with an integration (roborock) you are listed as a code owner for? Thanks!
Code owner commands
Code owners of roborock can trigger bot actions by commenting:
@home-assistant closeCloses the issue.@home-assistant rename Awesome new titleRenames the issue.@home-assistant reopenReopen the issue.@home-assistant unassign roborockRemoves the current integration label and assignees on the issue, add the integration domain after the command.@home-assistant add-label needs-more-informationAdd a label (needs-more-information, problem in dependency, problem in custom component) to the issue.@home-assistant remove-label needs-more-informationRemove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.
(message by CodeOwnersMention)
roborock documentation roborock source (message by IssueLinks)
Hi - I believe this issue comes from me updating the coordinator by updating device props and rooms at the same time. Theoretically, room update should only happen after device prop update as it is critical that the map is accurate.
That being said room updating is getting a rather large refactor elsewhere but hopefully this will be better for you in the future. In the meantime you could get the results you want by changing the map in the app, and reloading the integration
Same effect here. Unfortunately the work-around as suggested by @Lash-L did not work:
In the meantime you could get the results you want by changing the map in the app, and reloading the integration
I tried to find the data in the debug logging, but no luck. Any other suggestions?
I tried the workaround suggested by @Lash-L and it did change the output of roborock.get_maps to:
vacuum.roborock_s8_pro_ultra: maps: - flag: 0 name: Beneden rooms: "16": Dining room "18": Living room "19": Wc "20": Corridor "21": Berging - flag: 1 name: Boven rooms: "16": Master bedroom "17": Bathroom "18": Guest bedroom "19": Study "20": Hall - flag: 2 name: Terras rooms: {} - flag: 3 name: Kelder rooms: {}
However I've still got some overlapping numbers. I assume each room needs a unique 2 digit number? Since the action "app_segment_clean" with command "vacuum.send_command" does not accept a flag as an argument/parameter?
Same issue here, I have overlapping room numbers as I have several floors. Happy to help provide any information 🙇
I do not have the action roborock.get_maps at all. Has that been removed?
I do not have the action roborock.get_maps at all. Has that been removed?
Came here because I also had an issue where the map suddenly disappeared for all roborock entities after a recent update. I reload the roborock integration and the maps are back <3.
I solved it
You need to do as indicated here, reload the integration after changing the map selection (you can do this from the app or directly from homeassistant).
It doesn't matter if the room codes repeat between different maps, it will clean based on the room selection and appears to work fine.
Unique bug that occurs if there is only one room in the selected map, the command fails to obtain the code as shown below.
action: roborock.get_maps
target:
entity_id: vacuum.robot_xxxx
vacuum.robot_xxxxxxx:
maps:
- flag: 0
name: Casa
rooms:
"16": Corridoio
"17": Cucina
"18": Ingresso
"19": Sala
"20": Bambini
"21": Camera
"22": Bagno
- flag: 1
name: Veranda
rooms: {} <------ no code if only one room - > 1 OK!
I managed to create from the front end all the controls necessary for changing the map and for cleaning the different floors, I also managed to create a "reservation" so that once the alarm is inserted the cleaning can start for the rooms only "book".
It was possible to insert different images into the masks using the "visibility" function
...I'm still working on it but the result looks good