Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The v2c component."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 import logging
7 
8 from pytrydan import Trydan, TrydanData
9 from pytrydan.exceptions import TrydanError
10 
11 from homeassistant.config_entries import ConfigEntry
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
14 
15 SCAN_INTERVAL = timedelta(seconds=5)
16 
17 _LOGGER = logging.getLogger(__name__)
18 
19 
21  """DataUpdateCoordinator to gather data from any v2c."""
22 
23  config_entry: ConfigEntry
24 
25  def __init__(self, hass: HomeAssistant, evse: Trydan, host: str) -> None:
26  """Initialize DataUpdateCoordinator for a v2c evse."""
27  self.evseevse = evse
28  super().__init__(
29  hass,
30  _LOGGER,
31  name=f"EVSE {host}",
32  update_interval=SCAN_INTERVAL,
33  )
34 
35  async def _async_update_data(self) -> TrydanData:
36  """Fetch sensor data from api."""
37  try:
38  data: TrydanData = await self.evseevse.get_data()
39  except TrydanError as err:
40  raise UpdateFailed(f"Error communicating with API: {err}") from err
41  _LOGGER.debug("Received data: %s", data)
42  return data
None __init__(self, HomeAssistant hass, Trydan evse, str host)
Definition: coordinator.py:25