core icon indicating copy to clipboard operation
core copied to clipboard

roborock: get_maps return wrong room numbers

Open littleyoda opened this issue 1 year ago • 7 comments

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

littleyoda avatar Aug 13 '24 09:08 littleyoda

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 close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign roborock Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove 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)

home-assistant[bot] avatar Aug 13 '24 09:08 home-assistant[bot]

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

Lash-L avatar Aug 20 '24 04:08 Lash-L

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?

bvweerd avatar Aug 26 '24 09:08 bvweerd

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?

MaximV93 avatar Aug 26 '24 13:08 MaximV93

Same issue here, I have overlapping room numbers as I have several floors. Happy to help provide any information 🙇

Diaoul avatar Sep 06 '24 12:09 Diaoul

I do not have the action roborock.get_maps at all. Has that been removed?

adadnc avatar Sep 19 '24 12:09 adadnc

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.

luis-godinez avatar Oct 10 '24 20:10 luis-godinez

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

image

goodsale avatar Oct 23 '24 09:10 goodsale