Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Room selection #613

Open
darth-aragoth opened this issue Mar 25, 2024 · 6 comments
Open

Room selection #613

darth-aragoth opened this issue Mar 25, 2024 · 6 comments

Comments

@darth-aragoth
Copy link

I use Roborock S6, in Roborock app I defined two floors, every floor with named rooms. How can I select floor / room for cleaning? I can find current floor / room in device attributes, but I don't know, how to send my vacuum to the chosen room.

@kaiserkiwi
Copy link

As far as I'm aware you only can access them via IDs that are never exposed. It's a bit weird, but try to find the right IDs.

Looks like this.

service: roborock.vacuum_clean_segment
    data:
      segments: 18
    target:
      device_id: YOUR_DEVICE_ID

@darth-aragoth
Copy link
Author

It worked, thank you :)

@fir3drag0n
Copy link

could you elaborate how to find the specific information for rooms?

@kaiserkiwi
Copy link

kaiserkiwi commented May 28, 2024

You can drive the robot into a room and look in the dev tools at the camera.NAME_map (NAME is the part where your robot name comes in) entity and look for vacuum_room. There should be the current room id. A bit annoying but it works.

@jeffgoh
Copy link

jeffgoh commented Jun 10, 2024

I had to use entity_id instead of device_id (wouldn't work for me, not sure why) so now it starts cleaning segment but stops after zero seconds :(

Also, to figure out segment_id, I followed these instructions:

Roborock has a “segment_id” for each room. But to get what room corresponds with which segment id, you need,

enable debug logging and find one of the first calls roborock makes where we get the user_data, you should see a rooms option, which has the name of rooms and then a 6 digit id.

call the service get_room_mapping and look in the log to see the result. That maps from the 6 digit id to the segment id.

Now you can use the segment ids for cleaning specific rooms

will report back when I figure out what is keeping the vacuum from actually cleaning the specified room

@jeffgoh
Copy link

jeffgoh commented Jun 10, 2024

Figured it out - segments needs an array - e.g. "[ 16 ]" instead of just "16". All good now. Hope that helps anyone else stumbling on this issue. So awesome, @kaiserkiwi

I'm guessing that it called the service, but then didn't get a valid room when I didn't use an array as the input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants