Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """Sanix Coordinator."""
2 
3 from datetime import timedelta
4 import logging
5 
6 from sanix import Sanix
7 from sanix.exceptions import SanixException
8 from sanix.models import Measurement
9 
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
13 
14 from .const import MANUFACTURER
15 
16 _LOGGER = logging.getLogger(__name__)
17 
18 
20  """Sanix coordinator."""
21 
22  config_entry: ConfigEntry
23 
24  def __init__(self, hass: HomeAssistant, sanix_api: Sanix) -> None:
25  """Initialize coordinator."""
26  super().__init__(
27  hass, _LOGGER, name=MANUFACTURER, update_interval=timedelta(hours=1)
28  )
29  self._sanix_api_sanix_api = sanix_api
30 
31  async def _async_update_data(self) -> Measurement:
32  """Fetch data from API endpoint."""
33  try:
34  return await self.hasshass.async_add_executor_job(self._sanix_api_sanix_api.fetch_data)
35  except SanixException as err:
36  raise UpdateFailed("Error while communicating with the API") from err
None __init__(self, HomeAssistant hass, Sanix sanix_api)
Definition: coordinator.py:24