Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """Data update coordinator for Tailwind."""
2 
3 from datetime import timedelta
4 
5 from gotailwind import (
6  Tailwind,
7  TailwindAuthenticationError,
8  TailwindDeviceStatus,
9  TailwindError,
10 )
11 
12 from homeassistant.config_entries import ConfigEntry
13 from homeassistant.const import CONF_HOST, CONF_TOKEN
14 from homeassistant.core import HomeAssistant
15 from homeassistant.exceptions import ConfigEntryAuthFailed
16 from homeassistant.helpers.aiohttp_client import async_get_clientsession
17 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
18 
19 from .const import DOMAIN, LOGGER
20 
21 
23  """Class to manage fetching Tailwind data."""
24 
25  def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
26  """Initialize the coordinator."""
27  self.tailwindtailwind = Tailwind(
28  host=entry.data[CONF_HOST],
29  token=entry.data[CONF_TOKEN],
30  session=async_get_clientsession(hass),
31  )
32  super().__init__(
33  hass,
34  LOGGER,
35  name=f"{DOMAIN}_{entry.data[CONF_HOST]}",
36  update_interval=timedelta(seconds=5),
37  )
38 
39  async def _async_update_data(self) -> TailwindDeviceStatus:
40  """Fetch data from the Tailwind device."""
41  try:
42  return await self.tailwindtailwind.status()
43  except TailwindAuthenticationError as err:
44  raise ConfigEntryAuthFailed from err
45  except TailwindError as err:
46  raise UpdateFailed(err) from err
None __init__(self, HomeAssistant hass, ConfigEntry entry)
Definition: coordinator.py:25
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)