Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """DataUpdateCoordinator for London underground integration."""
2 
3 from __future__ import annotations
4 
5 import asyncio
6 import logging
7 from typing import cast
8 
9 from london_tube_status import TubeData
10 
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
13 
14 from .const import DOMAIN, SCAN_INTERVAL
15 
16 _LOGGER = logging.getLogger(__name__)
17 
18 
19 class LondonTubeCoordinator(DataUpdateCoordinator[dict[str, dict[str, str]]]):
20  """London Underground sensor coordinator."""
21 
22  def __init__(self, hass: HomeAssistant, data: TubeData) -> None:
23  """Initialize coordinator."""
24  super().__init__(
25  hass,
26  _LOGGER,
27  config_entry=None,
28  name=DOMAIN,
29  update_interval=SCAN_INTERVAL,
30  )
31  self._data_data = data
32 
33  async def _async_update_data(self) -> dict[str, dict[str, str]]:
34  async with asyncio.timeout(10):
35  await self._data_data.update()
36  return cast(dict[str, dict[str, str]], self._data_data.data)
IssData update(pyiss.ISS iss)
Definition: __init__.py:33