Finalize BotVac D7 Support And Further Reduce Cloud Calls (#15161)
* Finalize BotVac D7 Support And Further Reduce Cloud Calls * Lint * Lint Again * Implement requested changes * Hound * Lint
This commit is contained in:
parent
9066ac44fe
commit
4fbe3bb070
4 changed files with 37 additions and 10 deletions
|
@ -10,12 +10,13 @@ from datetime import timedelta
|
||||||
from homeassistant.components.camera import Camera
|
from homeassistant.components.camera import Camera
|
||||||
from homeassistant.components.neato import (
|
from homeassistant.components.neato import (
|
||||||
NEATO_MAP_DATA, NEATO_ROBOTS, NEATO_LOGIN)
|
NEATO_MAP_DATA, NEATO_ROBOTS, NEATO_LOGIN)
|
||||||
from homeassistant.util import Throttle
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEPENDENCIES = ['neato']
|
DEPENDENCIES = ['neato']
|
||||||
|
|
||||||
|
SCAN_INTERVAL = timedelta(minutes=10)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Set up the Neato Camera."""
|
"""Set up the Neato Camera."""
|
||||||
|
@ -45,7 +46,6 @@ class NeatoCleaningMap(Camera):
|
||||||
self.update()
|
self.update()
|
||||||
return self._image
|
return self._image
|
||||||
|
|
||||||
@Throttle(timedelta(seconds=60))
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Check the contents of the map list."""
|
"""Check the contents of the map list."""
|
||||||
self.neato.update_robots()
|
self.neato.update_robots()
|
||||||
|
|
|
@ -54,7 +54,12 @@ ACTION = {
|
||||||
7: 'Updating...',
|
7: 'Updating...',
|
||||||
8: 'Copying logs...',
|
8: 'Copying logs...',
|
||||||
9: 'Calculating position...',
|
9: 'Calculating position...',
|
||||||
10: 'IEC test'
|
10: 'IEC test',
|
||||||
|
11: 'Map cleaning',
|
||||||
|
12: 'Exploring map (creating a persistent map)',
|
||||||
|
13: 'Acquiring Persistent Map IDs',
|
||||||
|
14: 'Creating & Uploading Map',
|
||||||
|
15: 'Suspended Exploration'
|
||||||
}
|
}
|
||||||
|
|
||||||
ERRORS = {
|
ERRORS = {
|
||||||
|
@ -70,12 +75,30 @@ ERRORS = {
|
||||||
'ui_error_navigation_pathproblems_returninghome': 'Cannot return to base',
|
'ui_error_navigation_pathproblems_returninghome': 'Cannot return to base',
|
||||||
'ui_error_navigation_falling': 'Clear my path',
|
'ui_error_navigation_falling': 'Clear my path',
|
||||||
'ui_error_picked_up': 'Picked up',
|
'ui_error_picked_up': 'Picked up',
|
||||||
'ui_error_stuck': 'Stuck!'
|
'ui_error_stuck': 'Stuck!',
|
||||||
|
'dustbin_full': 'Dust bin full',
|
||||||
|
'dustbin_missing': 'Dust bin missing',
|
||||||
|
'maint_brush_stuck': 'Brush stuck',
|
||||||
|
'maint_brush_overload': 'Brush overloaded',
|
||||||
|
'maint_bumper_stuck': 'Bumper stuck',
|
||||||
|
'maint_vacuum_stuck': 'Vacuum is stuck',
|
||||||
|
'maint_left_drop_stuck': 'Vacuum is stuck',
|
||||||
|
'maint_left_wheel_stuck': 'Vacuum is stuck',
|
||||||
|
'maint_right_drop_stuck': 'Vacuum is stuck',
|
||||||
|
'maint_right_wheel_stuck': 'Vacuum is stuck',
|
||||||
|
'not_on_charge_base': 'Not on the charge base',
|
||||||
|
'nav_robot_falling': 'Clear my path',
|
||||||
|
'nav_no_path': 'Clear my path',
|
||||||
|
'nav_path_problem': 'Clear my path'
|
||||||
}
|
}
|
||||||
|
|
||||||
ALERTS = {
|
ALERTS = {
|
||||||
'ui_alert_dust_bin_full': 'Please empty dust bin',
|
'ui_alert_dust_bin_full': 'Please empty dust bin',
|
||||||
'ui_alert_recovering_location': 'Returning to start'
|
'ui_alert_recovering_location': 'Returning to start',
|
||||||
|
'dustbin_full': 'Please empty dust bin',
|
||||||
|
'maint_brush_change': 'Change the brush',
|
||||||
|
'maint_filter_change': 'Change the filter',
|
||||||
|
'clean_completed_to_start': 'Cleaning completed'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,7 +144,7 @@ class NeatoHub(object):
|
||||||
_LOGGER.error("Unable to connect to Neato API")
|
_LOGGER.error("Unable to connect to Neato API")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@Throttle(timedelta(seconds=60))
|
@Throttle(timedelta(seconds=300))
|
||||||
def update_robots(self):
|
def update_robots(self):
|
||||||
"""Update the robot states."""
|
"""Update the robot states."""
|
||||||
_LOGGER.debug("Running HUB.update_robots %s",
|
_LOGGER.debug("Running HUB.update_robots %s",
|
||||||
|
|
|
@ -10,12 +10,13 @@ import requests
|
||||||
from homeassistant.const import STATE_OFF, STATE_ON
|
from homeassistant.const import STATE_OFF, STATE_ON
|
||||||
from homeassistant.helpers.entity import ToggleEntity
|
from homeassistant.helpers.entity import ToggleEntity
|
||||||
from homeassistant.components.neato import NEATO_ROBOTS, NEATO_LOGIN
|
from homeassistant.components.neato import NEATO_ROBOTS, NEATO_LOGIN
|
||||||
from homeassistant.util import Throttle
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEPENDENCIES = ['neato']
|
DEPENDENCIES = ['neato']
|
||||||
|
|
||||||
|
SCAN_INTERVAL = timedelta(minutes=10)
|
||||||
|
|
||||||
SWITCH_TYPE_SCHEDULE = 'schedule'
|
SWITCH_TYPE_SCHEDULE = 'schedule'
|
||||||
|
|
||||||
SWITCH_TYPES = {
|
SWITCH_TYPES = {
|
||||||
|
@ -52,7 +53,6 @@ class NeatoConnectedSwitch(ToggleEntity):
|
||||||
self._schedule_state = None
|
self._schedule_state = None
|
||||||
self._clean_state = None
|
self._clean_state = None
|
||||||
|
|
||||||
@Throttle(timedelta(seconds=60))
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update the states of Neato switches."""
|
"""Update the states of Neato switches."""
|
||||||
_LOGGER.debug("Running switch update")
|
_LOGGER.debug("Running switch update")
|
||||||
|
|
|
@ -15,12 +15,13 @@ from homeassistant.components.vacuum import (
|
||||||
SUPPORT_MAP, ATTR_STATUS, ATTR_BATTERY_LEVEL, ATTR_BATTERY_ICON)
|
SUPPORT_MAP, ATTR_STATUS, ATTR_BATTERY_LEVEL, ATTR_BATTERY_ICON)
|
||||||
from homeassistant.components.neato import (
|
from homeassistant.components.neato import (
|
||||||
NEATO_ROBOTS, NEATO_LOGIN, NEATO_MAP_DATA, ACTION, ERRORS, MODE, ALERTS)
|
NEATO_ROBOTS, NEATO_LOGIN, NEATO_MAP_DATA, ACTION, ERRORS, MODE, ALERTS)
|
||||||
from homeassistant.util import Throttle
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEPENDENCIES = ['neato']
|
DEPENDENCIES = ['neato']
|
||||||
|
|
||||||
|
SCAN_INTERVAL = timedelta(minutes=5)
|
||||||
|
|
||||||
SUPPORT_NEATO = SUPPORT_BATTERY | SUPPORT_PAUSE | SUPPORT_RETURN_HOME | \
|
SUPPORT_NEATO = SUPPORT_BATTERY | SUPPORT_PAUSE | SUPPORT_RETURN_HOME | \
|
||||||
SUPPORT_STOP | SUPPORT_TURN_OFF | SUPPORT_TURN_ON | \
|
SUPPORT_STOP | SUPPORT_TURN_OFF | SUPPORT_TURN_ON | \
|
||||||
SUPPORT_STATUS | SUPPORT_MAP
|
SUPPORT_STATUS | SUPPORT_MAP
|
||||||
|
@ -63,7 +64,6 @@ class NeatoConnectedVacuum(VacuumDevice):
|
||||||
self.clean_suspension_charge_count = None
|
self.clean_suspension_charge_count = None
|
||||||
self.clean_suspension_time = None
|
self.clean_suspension_time = None
|
||||||
|
|
||||||
@Throttle(timedelta(seconds=60))
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update the states of Neato Vacuums."""
|
"""Update the states of Neato Vacuums."""
|
||||||
_LOGGER.debug("Running Neato Vacuums update")
|
_LOGGER.debug("Running Neato Vacuums update")
|
||||||
|
@ -101,6 +101,10 @@ class NeatoConnectedVacuum(VacuumDevice):
|
||||||
self.robot.state['action'] == 3 and
|
self.robot.state['action'] == 3 and
|
||||||
self.robot.state['state'] == 2):
|
self.robot.state['state'] == 2):
|
||||||
self._clean_state = STATE_ON
|
self._clean_state = STATE_ON
|
||||||
|
elif (self.robot.state['action'] == 11 or
|
||||||
|
self.robot.state['action'] == 12 and
|
||||||
|
self.robot.state['state'] == 2):
|
||||||
|
self._clean_state = STATE_ON
|
||||||
else:
|
else:
|
||||||
self._clean_state = STATE_OFF
|
self._clean_state = STATE_OFF
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue