-
-
Notifications
You must be signed in to change notification settings - Fork 566
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
Conversation
There was a problem hiding this 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.""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe get_saved_maps
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
miio/vacuum.py
Outdated
click.argument("map"), | ||
) | ||
def recover_map(self, id: int, map: int): | ||
"""Set recover maps.""" |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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:
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:
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:
So I suggest to name it use_recover_map
according to get_recover_maps
?
There was a problem hiding this 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"), |
There was a problem hiding this comment.
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.
There was a problem hiding this 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!
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