Xiaomi roborock room clean (multi level map)

Hi, I am just bought a Roborock S6 Pure and now hanging on this issue to get the room IDs from the device.

With the get_room_mapping command I always get an empty “[]” as return.

mirobo raw-command get_room_mapping []
Sending cmd get_room_mapping with params []
[]

But for example the get_multi_maps_list command is delivering me a list of the three used stories of my home.

mirobo raw-command get_multi_maps_list []
Sending cmd get_multi_maps_list with params []
[{'max_multi_map': 4, 'max_bak_map': 0, 'multi_map_count': 3, 'map_info': [{'mapFlag': 0, 'add_time': 1616845175, 'length': 2, 'name': 'EG', 'bak_maps': []}, {'mapFlag': 1, 'add_time': 1616658633, 'length': 2, 'name': 'DG', 'bak_maps': []}, {'mapFlag': 2, 'add_time': 1616697950, 'length': 2, 'name': 'OG', 'bak_maps': []}]}]

How can I get the room IDs?

You don’t need the map for the room IDs. The rooms start with id 16 and go untill 31 or something like that. I have 16,17,18,19,20. To find out which room is the number I tested it.

I’ve tested it. #16 and #17 was a room which I did divided manually within the Mi Home app.

All other IDs 18-31 did not matched to a room although I do have in the ground floor 5 rooms in the app.

Any ideas?

Dear moonraker,
i think the not all room numbers have to start at 16. In my configuration i have a mix of numbers smaller than 16 and greater/equal 16. it looks like that:

2021-05-01 12:33:31.125 [DEBUG] [inding.miio.internal.robot.RRMapDraw] - Identified rooms in map: 16 17 2 18 19 20 4 21

I assume this depends on whether the app automatically identified and cutted the room or was done manually by you. Anyhow with this information, you know whcih rooms RoboRock knows. To identify which room in your map they belong, just start vacuuming and the map on the mobile shows you the active room.
Regards

That is the only way I know:

Hi all, i’m an openhab beginner, i recently configured my roborock.vacuum.m1s to work with openhab 3 installed on my rpi4. Now i’m trying to detect the rooms number in order to specifically clean them. Where do i have to send the get_floor_mappings command and where can i see the result? What is the right syntax?

I just dealt with this just now.
It’s easier if you send the following command: app_segment_clean[16]
See which room it’s going to clean in the app.
And keep going up from there. 17 18 19… I mapped all my rooms just now like this.
Now my neighbours hate me but oh well, priorities.

Aditional useful commands I also found:
app_goto_target [25500,25500] → Send vaccum back to the dock or, conversely → app_goto_target [28500,25500] → Sends vaccum to a place next to the dock.
You open the “pin and go” function in the app and see where it went.

I’m using node red to send these commands.

@PeterK sorry to bug you, but I was wondering something. When I take out the bin from my roborock it complains about it and I hear a “ding”. Is by any chance this information updated or stored somewhere?
I would like to, for example, check when was it the last time that the deposit was cleaned, and 48 hours after, send the robot to the dustbin for cleaning.

Is this possible in the way I’m thinking, or do you have another inteligent solution that I might be missing right now?

Cheers!

1 Like