Added new statistic attributes (#9433)
* Added new statistic attributes Added new attributes: - Cleaning count - Total cleaning time - Total cleaning area - Time left to change main brush, side brush and filter * Code corrections Code corrections * Remove wronge hanging indentation * Added new attributes ATTR_MAIN_BRUSH_LEFT ATTR_SIDE_BRUSH_LEFT ATTR_FILTER_LEFT ATTR_CLEANING_COUNT ATTR_CLEANED_TOTAL_AREA ATTR_CLEANING_TOTAL_TIME * Remove trailing white space * Corrections of the unit test for new attributes * Hound corrections * Init self.clean_history, self.consumable_state * Hound correction * - Cleaning time and total cleaning time shown in minutes - Cleaned area and total cleaned area shown in square meters - Main brush left, side brush left, filter left time shown in hours - Display of the unit of measurement * Remove trailing white spaces * Fixed wrong continued indentation * Fixed Hound * Fixed Hound * Added new statistic attributes Added new attributes: - Cleaning count - Total cleaning time - Total cleaning area - Time left to change main brush, side brush and filter * Code corrections Code corrections * Remove wronge hanging indentation * Init self.clean_history, self.consumable_state * Hound correction * Remove UOM * Merge * Init self.clean_history, self.consumable_state * Hound correction * Init self.clean_history, self.consumable_state * Hound correction * Removed double declarations
This commit is contained in:
parent
fafc4a6042
commit
896ba7e3fa
2 changed files with 177 additions and 46 deletions
|
@ -48,6 +48,12 @@ FAN_SPEEDS = {
|
|||
|
||||
ATTR_CLEANING_TIME = 'cleaning_time'
|
||||
ATTR_DO_NOT_DISTURB = 'do_not_disturb'
|
||||
ATTR_MAIN_BRUSH_LEFT = 'main_brush_left'
|
||||
ATTR_SIDE_BRUSH_LEFT = 'side_brush_left'
|
||||
ATTR_FILTER_LEFT = 'filter_left'
|
||||
ATTR_CLEANING_COUNT = 'cleaning_count'
|
||||
ATTR_CLEANED_TOTAL_AREA = 'total_cleaned_area'
|
||||
ATTR_CLEANING_TOTAL_TIME = 'total_cleaning_time'
|
||||
ATTR_ERROR = 'error'
|
||||
ATTR_RC_DURATION = 'duration'
|
||||
ATTR_RC_ROTATION = 'rotation'
|
||||
|
@ -147,6 +153,9 @@ class MiroboVacuum(VacuumDevice):
|
|||
self._is_on = False
|
||||
self._available = False
|
||||
|
||||
self.consumable_state = None
|
||||
self.clean_history = None
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""Return the name of the device."""
|
||||
|
@ -194,8 +203,24 @@ class MiroboVacuum(VacuumDevice):
|
|||
STATE_ON if self.vacuum_state.dnd else STATE_OFF,
|
||||
# Not working --> 'Cleaning mode':
|
||||
# STATE_ON if self.vacuum_state.in_cleaning else STATE_OFF,
|
||||
ATTR_CLEANING_TIME: str(self.vacuum_state.clean_time),
|
||||
ATTR_CLEANED_AREA: round(self.vacuum_state.clean_area, 2)})
|
||||
ATTR_CLEANING_TIME: int(
|
||||
self.vacuum_state.clean_time.total_seconds()
|
||||
/ 60),
|
||||
ATTR_CLEANED_AREA: int(self.vacuum_state.clean_area),
|
||||
ATTR_CLEANING_COUNT: int(self.clean_history.count),
|
||||
ATTR_CLEANED_TOTAL_AREA: int(self.clean_history.total_area),
|
||||
ATTR_CLEANING_TOTAL_TIME: int(
|
||||
self.clean_history.total_duration.total_seconds()
|
||||
/ 60),
|
||||
ATTR_MAIN_BRUSH_LEFT: int(
|
||||
self.consumable_state.main_brush_left.total_seconds()
|
||||
/ 3600),
|
||||
ATTR_SIDE_BRUSH_LEFT: int(
|
||||
self.consumable_state.side_brush_left.total_seconds()
|
||||
/ 3600),
|
||||
ATTR_FILTER_LEFT: int(
|
||||
self.consumable_state.filter_left.total_seconds()
|
||||
/ 3600)})
|
||||
if self.vacuum_state.got_error:
|
||||
attrs[ATTR_ERROR] = self.vacuum_state.error
|
||||
|
||||
|
@ -346,6 +371,10 @@ class MiroboVacuum(VacuumDevice):
|
|||
state = yield from self.hass.async_add_job(self._vacuum.status)
|
||||
_LOGGER.debug("Got new state from the vacuum: %s", state.data)
|
||||
self.vacuum_state = state
|
||||
self.consumable_state = yield from self.hass.async_add_job(
|
||||
self._vacuum.consumable_status)
|
||||
self.clean_history = yield from self.hass.async_add_job(
|
||||
self._vacuum.clean_history)
|
||||
self._is_on = state.is_on
|
||||
self._available = True
|
||||
except OSError as exc:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue