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

s6: two new commands for map handling #608

Merged
merged 3 commits into from
Jan 10, 2020
Merged

Conversation

glompfine
Copy link
Contributor

@glompfine glompfine commented Jan 1, 2020

This two commands are working fine with my Roborock s6

Roborock s6 has three saved maps. Command get_recover_maps shows you the map id's.
With the command recover_map you can set one of the tree maps as active.

Use case:
You manage one map with some no-go-zones and another map without no-go-zones.
Depending on whether the apartment is prepared (chars are on the table, carpets are removed) or not, use one or the other map.

Closes #607

@rytilahti rytilahti changed the title two new commands for map handling s6: two new commands for map handling Jan 1, 2020
Copy link
Owner

@rytilahti rytilahti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, I'm sure these commands are useful for many!

Could you please run black to format the file correctly, the tests should pass then just fine. You can also do that locally by running pre-commit run -a

miio/vacuum.py Outdated
@@ -540,6 +540,21 @@ def get_room_mapping(self):
"""Retrieves a list of segments."""
return self.send("get_room_mapping")

@command()
def get_recover_maps(self):
"""Get recover maps."""
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe get_saved_maps?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually its more like recover or backup maps than real saved maps. There is the current map and two backup maps, like this:
20200102_103607229_iOS

miio/vacuum.py Outdated
click.argument("map"),
)
def recover_map(self, id: int, map: int):
"""Set recover maps."""
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use_saved_map in accordance to the above command? What are ID and map in this case? Can you post an example of what get recover maps returns?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example:

miiocli vacuum --ip roboip --token robotoken get_recover_maps
Running command get_recover_maps

returns:

[[1, 1575723134], [2, 1577540948], [3, 1577807926]]

I named the first number (1,2,3) as id and the second (1575723134,1577540948, 1577807926) as map

So in my case the command:

miiocli vacuum --ip roboip --token robotoken recover_map 1 1575723134
Running command recover_map
Setting the map [1, 1575723134] as active
ok

sets the initial (not edited) map as active:
PNG image

miiocli vacuum --ip roboip --token robotoken recover_map 2 1577540948
Running command recover_map
Setting the map [2, 1577540948] as active
ok

sets the oldest backup map (the one from 2019.12.28 14:49, at the very bottom of the screeny, map not fully visible) as active:
PNG image 1

miiocli vacuum --ip roboip --token robotoken recover_map 3 1577807926
Running command recover_map
Setting the map [3, 1577807926] as active
ok

sets the other backup map (the one from 2019.12.31 16:58) as active:
PNG image 2

So I suggest to name it use_recover_map according to get_recover_maps?

@glompfine glompfine requested a review from rytilahti January 3, 2020 12:01
Copy link
Owner

@rytilahti rytilahti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarifications! Maybe get_backup_maps and use_backup_map would be a better naming? Your call, I'm fine with merging this after the type casting is fixed.

miio/vacuum.py Outdated
return self.send("get_recover_maps")

@command(
click.argument("id"), click.argument("map"),
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

argument takes type kwarg, so instead of casting to int below, you should use type=int here.

Copy link
Owner

@rytilahti rytilahti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarifying screenshots and adjustments, I had to restart the CI build and it's now passing, so let's get this merged for the next release!

@rytilahti rytilahti merged commit 20413c2 into rytilahti:master Jan 10, 2020
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

Successfully merging this pull request may close these issues.

Additional commands for vacuum
2 participants