1 """History stats data coordinator."""
3 from __future__
import annotations
5 from datetime
import timedelta
13 EventStateChangedData,
22 from .data
import HistoryStats, HistoryStatsState
24 _LOGGER = logging.getLogger(__name__)
31 """DataUpdateCoordinator for history stats."""
36 history_stats: HistoryStats,
37 config_entry: ConfigEntry |
None,
40 """Initialize DataUpdateCoordinator."""
48 config_entry=config_entry,
50 update_interval=UPDATE_INTERVAL,
55 """Set up listeners and return a callback to cancel them."""
58 def remove_listener() -> None:
59 """Remove update listener."""
68 return remove_listener
72 """Remove state change listener."""
82 """Add a listener to start tracking state changes after start."""
89 """Handle hass starting and start tracking events."""
96 self, event: Event[EventStateChangedData]
98 """Process an update from an event."""
102 """Fetch update the history stats state."""
105 except (TemplateError, TypeError, ValueError)
as ex:
None _async_add_events_listener(self, *Any _)
None __init__(self, HomeAssistant hass, HistoryStats history_stats, ConfigEntry|None config_entry, str name)
None _async_remove_listener(self)
None _async_update_from_event(self, Event[EventStateChangedData] event)
None _async_add_listener(self)
HistoryStatsState _async_update_data(self)
CALLBACK_TYPE async_setup_state_listener(self)
None async_set_updated_data(self, _DataT data)
CALLBACK_TYPE async_track_state_change_event(HomeAssistant hass, str|Iterable[str] entity_ids, Callable[[Event[EventStateChangedData]], Any] action, HassJobType|None job_type=None)
CALLBACK_TYPE async_at_start(HomeAssistant hass, Callable[[HomeAssistant], Coroutine[Any, Any, None]|None] at_start_cb)