Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """DataUpdateCoordinator for the emoncms integration."""
2 
3 from datetime import timedelta
4 from typing import Any
5 
6 from pyemoncms import EmoncmsClient
7 
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
10 
11 from .const import CONF_MESSAGE, CONF_SUCCESS, LOGGER
12 
13 
14 class EmoncmsCoordinator(DataUpdateCoordinator[list[dict[str, Any]] | None]):
15  """Emoncms Data Update Coordinator."""
16 
17  def __init__(
18  self,
19  hass: HomeAssistant,
20  emoncms_client: EmoncmsClient,
21  ) -> None:
22  """Initialize the emoncms data coordinator."""
23  super().__init__(
24  hass,
25  LOGGER,
26  name="emoncms_coordinator",
27  update_interval=timedelta(seconds=60),
28  )
29  self.emoncms_clientemoncms_client = emoncms_client
30 
31  async def _async_update_data(self) -> list[dict[str, Any]]:
32  """Fetch data from API endpoint."""
33  data = await self.emoncms_clientemoncms_client.async_request("/feed/list.json")
34  if not data[CONF_SUCCESS]:
35  raise UpdateFailed
36  return data[CONF_MESSAGE]
None __init__(self, HomeAssistant hass, EmoncmsClient emoncms_client)
Definition: coordinator.py:21