Change nest to cloud push (#14656)
* Change nest component to Cloud Push Change sensors.nest, binary_sensors.nest and climate.nest to push mode nest camera still need poll to update snapshot image Also change nest component to async * Flake8 lint * Fix async_notify_errors, it is not a coroutine * Fix pylint * Fix pylint, function name should shall shorter than 32 * Use dispatcher helper instead event bus * Use async_update_ha_state(True) * Refactoring load_platform Move service registration into async_setup_nest(), resolve an issue that before the first time configuration done, set_mode service should not be registered * Fix an issue that authorization failure may leave a blocked thread * Pylinting * async_nest_update_callback => async_update_state to avoid confusion * Move signal handler register to async_added_to_hass * Better handle nest api error * Remove unnecessary register for binary_sensor * Remove unused import * Upgrade to python-nest 4.0.1 Fix a thread race condition issue * Address my own comments * Address my own comment
This commit is contained in:
parent
fcbc399809
commit
cba8333a13
5 changed files with 149 additions and 63 deletions
|
@ -7,13 +7,15 @@ https://home-assistant.io/components/sensor.nest/
|
|||
from itertools import chain
|
||||
import logging
|
||||
|
||||
from homeassistant.components.nest import DATA_NEST
|
||||
from homeassistant.components.nest import DATA_NEST, SIGNAL_NEST_UPDATE
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.const import (
|
||||
TEMP_CELSIUS, TEMP_FAHRENHEIT, CONF_MONITORED_CONDITIONS,
|
||||
DEVICE_CLASS_TEMPERATURE)
|
||||
|
||||
DEPENDENCIES = ['nest']
|
||||
|
||||
SENSOR_TYPES = ['humidity',
|
||||
'operation_mode',
|
||||
'hvac_state']
|
||||
|
@ -130,6 +132,20 @@ class NestSensor(Entity):
|
|||
"""Return the unit the value is expressed in."""
|
||||
return self._unit
|
||||
|
||||
@property
|
||||
def should_poll(self):
|
||||
"""Do not need poll thanks using Nest streaming API."""
|
||||
return False
|
||||
|
||||
async def async_added_to_hass(self):
|
||||
"""Register update signal handler."""
|
||||
async def async_update_state():
|
||||
"""Update sensor state."""
|
||||
await self.async_update_ha_state(True)
|
||||
|
||||
async_dispatcher_connect(self.hass, SIGNAL_NEST_UPDATE,
|
||||
async_update_state)
|
||||
|
||||
|
||||
class NestBasicSensor(NestSensor):
|
||||
"""Representation a basic Nest sensor."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue