Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """DataUpdateCoordinator for pegel_online."""
2 
3 import logging
4 
5 from aiopegelonline import CONNECT_ERRORS, PegelOnline, Station, StationMeasurements
6 
7 from homeassistant.core import HomeAssistant
8 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
9 
10 from .const import DOMAIN, MIN_TIME_BETWEEN_UPDATES
11 
12 _LOGGER = logging.getLogger(__name__)
13 
14 
16  """DataUpdateCoordinator for the pegel_online integration."""
17 
18  def __init__(
19  self, hass: HomeAssistant, name: str, api: PegelOnline, station: Station
20  ) -> None:
21  """Initialize the PegelOnlineDataUpdateCoordinator."""
22  self.apiapi = api
23  self.stationstation = station
24  super().__init__(
25  hass,
26  _LOGGER,
27  name=name,
28  update_interval=MIN_TIME_BETWEEN_UPDATES,
29  )
30 
31  async def _async_update_data(self) -> StationMeasurements:
32  """Fetch data from API endpoint."""
33  try:
34  return await self.apiapi.async_get_station_measurements(self.stationstation.uuid)
35  except CONNECT_ERRORS as err:
36  raise UpdateFailed(
37  translation_domain=DOMAIN,
38  translation_key="communication_error",
39  translation_placeholders={"error": str(err)},
40  ) from err
None __init__(self, HomeAssistant hass, str name, PegelOnline api, Station station)
Definition: coordinator.py:20