diff --git a/homeassistant/components/group/__init__.py b/homeassistant/components/group/__init__.py index 7b895f9c1ce..9627ad86734 100644 --- a/homeassistant/components/group/__init__.py +++ b/homeassistant/components/group/__init__.py @@ -454,7 +454,7 @@ class GroupEntity(Entity): self.async_update_group_state() self.async_write_ha_state() - start.async_at_start(self.hass, _update_at_start) + self.async_on_remove(start.async_at_start(self.hass, _update_at_start)) @callback def async_defer_or_update_ha_state(self) -> None: @@ -689,7 +689,7 @@ class Group(Entity): async def async_added_to_hass(self): """Handle addition to Home Assistant.""" - start.async_at_start(self.hass, self._async_start) + self.async_on_remove(start.async_at_start(self.hass, self._async_start)) async def async_will_remove_from_hass(self): """Handle removal from Home Assistant.""" diff --git a/homeassistant/components/here_travel_time/sensor.py b/homeassistant/components/here_travel_time/sensor.py index 8fdd3df5fc1..a0449f7b5c0 100644 --- a/homeassistant/components/here_travel_time/sensor.py +++ b/homeassistant/components/here_travel_time/sensor.py @@ -247,7 +247,7 @@ class HERETravelTimeSensor(SensorEntity, CoordinatorEntity): async def _update_at_start(_): await self.async_update() - async_at_start(self.hass, _update_at_start) + self.async_on_remove(async_at_start(self.hass, _update_at_start)) @property def native_value(self) -> str | None: diff --git a/homeassistant/components/statistics/sensor.py b/homeassistant/components/statistics/sensor.py index aaca8a98290..ed2352657f4 100644 --- a/homeassistant/components/statistics/sensor.py +++ b/homeassistant/components/statistics/sensor.py @@ -302,7 +302,7 @@ class StatisticsSensor(SensorEntity): if "recorder" in self.hass.config.components: self.hass.async_create_task(self._initialize_from_database()) - async_at_start(self.hass, async_stats_sensor_startup) + self.async_on_remove(async_at_start(self.hass, async_stats_sensor_startup)) def _add_state_to_queue(self, new_state: State) -> None: """Add the state to the queue.""" diff --git a/homeassistant/helpers/start.py b/homeassistant/helpers/start.py index 4560119a685..7f919f5351d 100644 --- a/homeassistant/helpers/start.py +++ b/homeassistant/helpers/start.py @@ -4,13 +4,13 @@ from __future__ import annotations from collections.abc import Awaitable, Callable from homeassistant.const import EVENT_HOMEASSISTANT_START -from homeassistant.core import Event, HassJob, HomeAssistant, callback +from homeassistant.core import CALLBACK_TYPE, Event, HassJob, HomeAssistant, callback @callback def async_at_start( hass: HomeAssistant, at_start_cb: Callable[[HomeAssistant], Awaitable[None] | None] -) -> None: +) -> CALLBACK_TYPE: """Execute something when Home Assistant is started. Will execute it now if Home Assistant is already started. @@ -18,10 +18,10 @@ def async_at_start( at_start_job = HassJob(at_start_cb) if hass.is_running: hass.async_run_hass_job(at_start_job, hass) - return + return lambda: None async def _matched_event(event: Event) -> None: """Call the callback when Home Assistant started.""" hass.async_run_hass_job(at_start_job, hass) - hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, _matched_event) + return hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, _matched_event)