homeassistant-roborock
homeassistant-roborock copied to clipboard
Unable to change map using roborock.vacuum_load_multi_map
Version of the custom_component
1.0.6
What vacuum are you using?
Roborock S7
Describe the bug
I have two maps available in my Roborock app. When changing them using the app the mapStatus changes between 3 and 7, but the value of the sensor sensor.roborock_s7_current_map_selected is blank. When trying to change the map using the service call roborock.vacuum_load_multi_map I get an error saying the map flag is invalid. I've tried all available map flags (0 to 4).
Debug log
2023-06-09 19:34:05.985 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547183643424] Error handling message: Map flag 1 is invalid (unknown_error) Morten from 10.0.0.108 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0)
2023-06-09 19:34:11.512 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: Map flag 2 is invalid
2023-06-09 19:34:11.517 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547183643424] Error handling message: Map flag 2 is invalid (unknown_error) Morten from 10.0.0.108 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0)
2023-06-09 19:34:16.122 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: Map flag 3 is invalid
2023-06-09 19:34:16.125 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547183643424] Error handling message: Map flag 3 is invalid (unknown_error) Morten from 10.0.0.108 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0)
2023-06-09 19:34:20.343 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: Map flag 4 is invalid
2023-06-09 19:34:20.348 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547183643424] Error handling message: Map flag 4 is invalid (unknown_error) Morten from 10.0.0.108 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0)
2023-06-09 19:34:32.896 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: Map flag 4 is invalid
I have the same problem on version 1.0.8
, I can load all maps except map 1:
homeassistant | 2023-07-16 22:14:51.987 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Error for call_service at pos 1: Map flag 1 is invalid
homeassistant | 2023-07-16 22:14:51.988 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140537451234567] Error handling message: Map flag 1 is invalid (unknown_error) User from 192
.168.1.10 (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36)
When I run python-roborock
, I can see all maps:
$ ./bin/roborock command --device_id XXX --cmd get_multi_maps_list
INFO:roborock.cloud_api:Connecting to mqtt
INFO:roborock.cloud_api:Starting mqtt loop
INFO:roborock.cloud_api:Connected to mqtt mqtt-eu-2.roborock.com:8883
INFO:roborock.cloud_api:Subscribed to topic rr/m/o/xxx/zzzz/yyy
DEBUG:roborock.cloud_api:id=12345 Requesting method get_multi_maps_list with []
DEBUG:roborock.cloud_api:id=12345 Response from get_multi_maps_list: {'max_multi_map': 4, 'max_bak_map': 1, 'multi_map_count': 4, 'map_info': [{'mapFlag': 0, 'add_time': 1689535791, 'length': 10, 'name': 'Przedpokoj', 'bak_maps': [{'mapFlag': 4, 'add_time': 1689535802}]}, {'mapFlag': 1, 'add_time': 1689535909, 'length': 5, 'name': 'Drzwi', 'bak_maps': [{'mapFlag': 6, 'add_time': 1689535914}]}, {'mapFlag': 2, 'add_time': 1689536588, 'length': 9, 'name': 'Polpietro', 'bak_maps': [{'mapFlag': 7, 'add_time': 1689536930}]}, {'mapFlag': 3, 'add_time': 1689437523, 'length': 10, 'name': 'Mieszkanie', 'bak_maps': [{'mapFlag': 5, 'add_time': 1666109926}]}]}
INFO:roborock.cloud_api:Disconnecting from mqtt
A json in clear format:
{
"max_multi_map": 4,
"max_bak_map": 1,
"multi_map_count": 4,
"map_info": [
{
"mapFlag": 0,
"add_time": 1689535791,
"length": 10,
"name": "Przedpokoj",
"bak_maps": [
{
"mapFlag": 4,
"add_time": 1689535802
}
]
},
{
"mapFlag": 1,
"add_time": 1689535909,
"length": 5,
"name": "Drzwi",
"bak_maps": [
{
"mapFlag": 6,
"add_time": 1689535914
}
]
},
{
"mapFlag": 2,
"add_time": 1689536588,
"length": 9,
"name": "Polpietro",
"bak_maps": [
{
"mapFlag": 7,
"add_time": 1689536930
}
]
},
{
"mapFlag": 3,
"add_time": 1689437523,
"length": 10,
"name": "Mieszkanie",
"bak_maps": [
{
"mapFlag": 5,
"add_time": 1666109926
}
]
}
]
}
Loading a map 1 with python-roborock
works from command line:
./bin/roborock --debug command --device_id XXX --cmd load_multi_map --params '[1]'
INFO:roborock.cloud_api:Connecting to mqtt
INFO:roborock.cloud_api:Starting mqtt loop
INFO:roborock.cloud_api:Connected to mqtt mqtt-eu-2.roborock.com:8883
INFO:roborock.cloud_api:Subscribed to topic rr/m/o/xxx/yyy/zzz
DEBUG:roborock.cloud_api:id=54321 Requesting method load_multi_map with [1]
DEBUG:roborock.cloud_api:id=54321 Response from load_multi_map: ok
INFO:roborock.cloud_api:Disconnecting from mqtt
Any solution to the issues above ? I am facing the same problem except it is not loading map flag 0 but 1 works.