Add cleanup to Notion (#32887)

* Add cleanup to Notion

* Base update method
This commit is contained in:
Aaron Bach 2020-03-17 05:01:40 -06:00 committed by GitHub
parent 0c49c8578b
commit 1da35e2939
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 3 deletions

View file

@ -306,13 +306,22 @@ class NotionEntity(Entity):
def update():
"""Update the entity."""
self.hass.async_create_task(self._update_bridge_id())
self.async_schedule_update_ha_state(True)
self.update_from_latest_data()
self.async_write_ha_state()
self._async_unsub_dispatcher_connect = async_dispatcher_connect(
self.hass, TOPIC_DATA_UPDATE, update
)
self.update_from_latest_data()
async def async_will_remove_from_hass(self):
"""Disconnect dispatcher listener when removed."""
if self._async_unsub_dispatcher_connect:
self._async_unsub_dispatcher_connect()
self._async_unsub_dispatcher_connect = None
@callback
def update_from_latest_data(self):
"""Update the entity from the latest data."""
raise NotImplementedError

View file

@ -2,6 +2,7 @@
import logging
from homeassistant.components.binary_sensor import BinarySensorDevice
from homeassistant.core import callback
from . import (
BINARY_SENSOR_TYPES,
@ -75,7 +76,8 @@ class NotionBinarySensor(NotionEntity, BinarySensorDevice):
if task["task_type"] == SENSOR_SMOKE_CO:
return self._state != "no_alarm"
async def async_update(self):
@callback
def update_from_latest_data(self):
"""Fetch new state data for the sensor."""
task = self._notion.tasks[self._task_id]

View file

@ -1,6 +1,8 @@
"""Support for Notion sensors."""
import logging
from homeassistant.core import callback
from . import SENSOR_TEMPERATURE, SENSOR_TYPES, NotionEntity
from .const import DATA_CLIENT, DOMAIN
@ -58,7 +60,8 @@ class NotionSensor(NotionEntity):
"""Return the unit of measurement."""
return self._unit
async def async_update(self):
@callback
def update_from_latest_data(self):
"""Fetch new state data for the sensor."""
task = self._notion.tasks[self._task_id]