Adjust shutdown registration in EntityComponent (#90938)

* Adjust shutdown registration in EntityComponent

* Adjust

* Make it more explicit

* docstring
This commit is contained in:
epenet 2023-04-13 08:47:04 +02:00 committed by GitHub
parent 6dbe67e909
commit 4a0988eb5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 1 deletions

View file

@ -47,6 +47,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
component = hass.data[DOMAIN] = EntityComponent[BaseTrackerEntity](
LOGGER, DOMAIN, hass
)
component.register_shutdown()
# Clean up old devices created by device tracker entities in the past.
# Can be removed after 2022.6

View file

@ -86,6 +86,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
component = EntityComponent[MailboxEntity](
logging.getLogger(__name__), DOMAIN, hass, SCAN_INTERVAL
)
component.register_shutdown()
await component.async_add_entities([mailbox_entity])
setup_tasks = [

View file

@ -109,6 +109,14 @@ class EntityComponent(Generic[_EntityT]):
return entity_obj # type: ignore[return-value]
return None
def register_shutdown(self) -> None:
"""Register shutdown on Home Assistant STOP event.
Note: this is only required if the integration never calls
`setup` or `async_setup`.
"""
self.hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, self._async_shutdown)
def setup(self, config: ConfigType) -> None:
"""Set up a full entity component.
@ -126,7 +134,7 @@ class EntityComponent(Generic[_EntityT]):
This method must be run in the event loop.
"""
self.hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, self._async_shutdown)
self.register_shutdown()
self.config = config