Skip to content

Commit

Permalink
Add mopping state & log a warning when encountering unknown state (#784)
Browse files Browse the repository at this point in the history
  • Loading branch information
rytilahti committed Aug 3, 2020
1 parent 30752c3 commit f7b03ce
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions miio/viomivacuum.py
Expand Up @@ -49,12 +49,14 @@ class ViomiVacuumSpeed(Enum):


class ViomiVacuumState(Enum):
Unknown = -1
IdleNotDocked = 0
Idle = 1
Idle2 = 2
Cleaning = 3
Returning = 4
Docked = 5
Mopping = 6


class ViomiMode(Enum):
Expand Down Expand Up @@ -118,12 +120,17 @@ def __init__(self, data):
@property
def state(self):
"""State of the vacuum."""
return ViomiVacuumState(self.data["run_state"])
try:
return ViomiVacuumState(self.data["run_state"])
except ValueError:
_LOGGER.warning("Unknown vacuum state: %s", self.data["run_state"])
return ViomiVacuumState.Unknown

@property
def is_on(self) -> bool:
"""True if cleaning."""
return self.state == ViomiVacuumState.Cleaning
cleaning_states = [ViomiVacuumState.Cleaning, ViomiVacuumState.Mopping]
return self.state in cleaning_states

@property
def mode(self):
Expand All @@ -141,7 +148,6 @@ def mop_type(self):
@property
def error_code(self) -> int:
"""Error code from vacuum."""

return self.data["err_state"]

@property
Expand Down

0 comments on commit f7b03ce

Please sign in to comment.