Migrate generic_hygrostat to use async_track_state_change_event (#115001)

This commit is contained in:
J. Nick Koston 2024-04-05 23:57:30 -10:00 committed by GitHub
parent 7d5b39b9de
commit 34bf4dc962
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -34,6 +34,7 @@ from homeassistant.const import (
from homeassistant.core import ( from homeassistant.core import (
DOMAIN as HA_DOMAIN, DOMAIN as HA_DOMAIN,
Event, Event,
EventStateChangedData,
HomeAssistant, HomeAssistant,
State, State,
callback, callback,
@ -41,7 +42,7 @@ from homeassistant.core import (
from homeassistant.helpers import condition from homeassistant.helpers import condition
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import ( from homeassistant.helpers.event import (
async_track_state_change, async_track_state_change_event,
async_track_time_interval, async_track_time_interval,
) )
from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.restore_state import RestoreEntity
@ -179,11 +180,15 @@ class GenericHygrostat(HumidifierEntity, RestoreEntity):
await super().async_added_to_hass() await super().async_added_to_hass()
# Add listener # Add listener
async_track_state_change( self.async_on_remove(
self.hass, self._sensor_entity_id, self._async_sensor_changed async_track_state_change_event(
self.hass, self._sensor_entity_id, self._async_sensor_changed_event
)
)
self.async_on_remove(
async_track_state_change_event(
self.hass, self._switch_entity_id, self._async_switch_changed_event
) )
async_track_state_change(
self.hass, self._switch_entity_id, self._async_switch_changed
) )
if self._keep_alive: if self._keep_alive:
@ -343,6 +348,15 @@ class GenericHygrostat(HumidifierEntity, RestoreEntity):
# Get default humidity from super class # Get default humidity from super class
return super().max_humidity return super().max_humidity
async def _async_sensor_changed_event(
self, event: Event[EventStateChangedData]
) -> None:
"""Handle ambient humidity changes."""
data = event.data
await self._async_sensor_changed(
data["entity_id"], data["old_state"], data["new_state"]
)
async def _async_sensor_changed( async def _async_sensor_changed(
self, entity_id: str, old_state: State | None, new_state: State | None self, entity_id: str, old_state: State | None, new_state: State | None
) -> None: ) -> None:
@ -374,6 +388,14 @@ class GenericHygrostat(HumidifierEntity, RestoreEntity):
_LOGGER.warning("Sensor is stalled, call the emergency stop") _LOGGER.warning("Sensor is stalled, call the emergency stop")
await self._async_update_humidity("Stalled") await self._async_update_humidity("Stalled")
@callback
def _async_switch_changed_event(self, event: Event[EventStateChangedData]) -> None:
"""Handle humidifier switch state changes."""
data = event.data
self._async_switch_changed(
data["entity_id"], data["old_state"], data["new_state"]
)
@callback @callback
def _async_switch_changed( def _async_switch_changed(
self, entity_id: str, old_state: State | None, new_state: State | None self, entity_id: str, old_state: State | None, new_state: State | None