Dump states in event handler for HA_Stop (#33974)
* Dump states in event handler for HA_Stop * Fix type
This commit is contained in:
parent
89fe488b7c
commit
5a9970e63c
4 changed files with 11 additions and 10 deletions
|
@ -361,7 +361,9 @@ class HomeAssistant:
|
|||
self._track_task = False
|
||||
|
||||
@callback
|
||||
def async_run_job(self, target: Callable[..., None], *args: Any) -> None:
|
||||
def async_run_job(
|
||||
self, target: Callable[..., Union[None, Awaitable]], *args: Any
|
||||
) -> None:
|
||||
"""Run a job from within the event loop.
|
||||
|
||||
This method must be run in the event loop.
|
||||
|
|
|
@ -300,9 +300,7 @@ class EntityPlatform:
|
|||
return
|
||||
|
||||
self._async_unsub_polling = async_track_time_interval(
|
||||
self.hass,
|
||||
self._update_entity_states, # type: ignore
|
||||
self.scan_interval,
|
||||
self.hass, self._update_entity_states, self.scan_interval,
|
||||
)
|
||||
|
||||
async def _async_add_entity(
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
"""Helpers for listening to events."""
|
||||
from datetime import datetime, timedelta
|
||||
import functools as ft
|
||||
from typing import Any, Callable, Dict, Iterable, Optional, Union, cast
|
||||
from typing import Any, Awaitable, Callable, Dict, Iterable, Optional, Union, cast
|
||||
|
||||
import attr
|
||||
|
||||
|
@ -274,7 +274,9 @@ call_later = threaded_listener_factory(async_call_later)
|
|||
@callback
|
||||
@bind_hass
|
||||
def async_track_time_interval(
|
||||
hass: HomeAssistant, action: Callable[..., None], interval: timedelta
|
||||
hass: HomeAssistant,
|
||||
action: Callable[..., Union[None, Awaitable]],
|
||||
interval: timedelta,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Add a listener that fires repetitively at every timedelta interval."""
|
||||
remove = None
|
||||
|
|
|
@ -171,14 +171,13 @@ class RestoreStateData:
|
|||
def async_setup_dump(self, *args: Any) -> None:
|
||||
"""Set up the restore state listeners."""
|
||||
|
||||
@callback
|
||||
def _async_dump_states(*_: Any) -> None:
|
||||
self.hass.async_create_task(self.async_dump_states())
|
||||
async def _async_dump_states(*_: Any) -> None:
|
||||
await self.async_dump_states()
|
||||
|
||||
# Dump the initial states now. This helps minimize the risk of having
|
||||
# old states loaded by overwriting the last states once Home Assistant
|
||||
# has started and the old states have been read.
|
||||
_async_dump_states()
|
||||
self.hass.async_create_task(_async_dump_states())
|
||||
|
||||
# Dump states periodically
|
||||
async_track_time_interval(self.hass, _async_dump_states, STATE_DUMP_INTERVAL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue