diff --git a/homeassistant/components/person/__init__.py b/homeassistant/components/person/__init__.py index 8399719e861..49f1b45f2ed 100644 --- a/homeassistant/components/person/__init__.py +++ b/homeassistant/components/person/__init__.py @@ -44,7 +44,7 @@ from homeassistant.helpers import ( service, ) from homeassistant.helpers.entity_component import EntityComponent -from homeassistant.helpers.event import async_track_state_change +from homeassistant.helpers.event import async_track_state_change_event from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.storage import Store from homeassistant.helpers.typing import ConfigType, HomeAssistantType @@ -440,14 +440,14 @@ class Person(RestoreEntity): if trackers: _LOGGER.debug("Subscribe to device trackers for %s", self.entity_id) - self._unsub_track_device = async_track_state_change( + self._unsub_track_device = async_track_state_change_event( self.hass, trackers, self._async_handle_tracker_update ) self._update_state() @callback - def _async_handle_tracker_update(self, entity, old_state, new_state): + def _async_handle_tracker_update(self, event): """Handle the device tracker state changes.""" self._update_state() diff --git a/homeassistant/components/threshold/binary_sensor.py b/homeassistant/components/threshold/binary_sensor.py index 98d426cb660..55ac21f6f13 100644 --- a/homeassistant/components/threshold/binary_sensor.py +++ b/homeassistant/components/threshold/binary_sensor.py @@ -17,7 +17,7 @@ from homeassistant.const import ( ) from homeassistant.core import callback import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.event import async_track_state_change +from homeassistant.helpers.event import async_track_state_change_event _LOGGER = logging.getLogger(__name__) @@ -93,8 +93,12 @@ class ThresholdSensor(BinarySensorEntity): self.sensor_value = None @callback - def async_threshold_sensor_state_listener(entity, old_state, new_state): + def async_threshold_sensor_state_listener(event): """Handle sensor state changes.""" + new_state = event.data.get("new_state") + if new_state is None: + return + try: self.sensor_value = ( None if new_state.state == STATE_UNKNOWN else float(new_state.state) @@ -105,7 +109,9 @@ class ThresholdSensor(BinarySensorEntity): hass.async_add_job(self.async_update_ha_state, True) - async_track_state_change(hass, entity_id, async_threshold_sensor_state_listener) + async_track_state_change_event( + hass, [entity_id], async_threshold_sensor_state_listener + ) @property def name(self): diff --git a/homeassistant/components/trend/binary_sensor.py b/homeassistant/components/trend/binary_sensor.py index 1490efd7a86..cd78618d156 100644 --- a/homeassistant/components/trend/binary_sensor.py +++ b/homeassistant/components/trend/binary_sensor.py @@ -25,7 +25,7 @@ from homeassistant.const import ( from homeassistant.core import callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import generate_entity_id -from homeassistant.helpers.event import async_track_state_change +from homeassistant.helpers.event import async_track_state_change_event from homeassistant.util import utcnow _LOGGER = logging.getLogger(__name__) @@ -162,8 +162,11 @@ class SensorTrend(BinarySensorEntity): """Complete device setup after being added to hass.""" @callback - def trend_sensor_state_listener(entity, old_state, new_state): + def trend_sensor_state_listener(event): """Handle state changes on the observed device.""" + new_state = event.data.get("new_state") + if new_state is None: + return try: if self._attribute: state = new_state.attributes.get(self._attribute) @@ -176,8 +179,8 @@ class SensorTrend(BinarySensorEntity): except (ValueError, TypeError) as ex: _LOGGER.error(ex) - async_track_state_change( - self.hass, self._entity_id, trend_sensor_state_listener + async_track_state_change_event( + self.hass, [self._entity_id], trend_sensor_state_listener ) async def async_update(self): diff --git a/homeassistant/components/utility_meter/sensor.py b/homeassistant/components/utility_meter/sensor.py index c5b6e9a292c..8372d8e6b22 100644 --- a/homeassistant/components/utility_meter/sensor.py +++ b/homeassistant/components/utility_meter/sensor.py @@ -16,7 +16,7 @@ from homeassistant.core import callback from homeassistant.helpers import entity_platform from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.event import ( - async_track_state_change, + async_track_state_change_event, async_track_time_change, ) from homeassistant.helpers.restore_state import RestoreEntity @@ -131,8 +131,10 @@ class UtilityMeterSensor(RestoreEntity): self._tariff_entity = tariff_entity @callback - def async_reading(self, entity, old_state, new_state): + def async_reading(self, event): """Handle the sensor state changes.""" + old_state = event.data.get("old_state") + new_state = event.data.get("new_state") if ( old_state is None or new_state is None @@ -166,11 +168,14 @@ class UtilityMeterSensor(RestoreEntity): self.async_write_ha_state() @callback - def async_tariff_change(self, entity, old_state, new_state): + def async_tariff_change(self, event): """Handle tariff changes.""" + new_state = event.data.get("new_state") + if new_state is None: + return if self._tariff == new_state.state: - self._collecting = async_track_state_change( - self.hass, self._sensor_source_id, self.async_reading + self._collecting = async_track_state_change_event( + self.hass, [self._sensor_source_id], self.async_reading ) else: if self._collecting: @@ -263,8 +268,8 @@ class UtilityMeterSensor(RestoreEntity): """Wait for source to be ready, then start meter.""" if self._tariff_entity is not None: _LOGGER.debug("Track %s", self._tariff_entity) - async_track_state_change( - self.hass, self._tariff_entity, self.async_tariff_change + async_track_state_change_event( + self.hass, [self._tariff_entity], self.async_tariff_change ) tariff_entity_state = self.hass.states.get(self._tariff_entity) @@ -272,8 +277,8 @@ class UtilityMeterSensor(RestoreEntity): return _LOGGER.debug("tracking source: %s", self._sensor_source_id) - self._collecting = async_track_state_change( - self.hass, self._sensor_source_id, self.async_reading + self._collecting = async_track_state_change_event( + self.hass, [self._sensor_source_id], self.async_reading ) self.hass.bus.async_listen_once(