Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The Airzone Cloud integration coordinator."""
2 
3 from __future__ import annotations
4 
5 from asyncio import timeout
6 from datetime import timedelta
7 import logging
8 from typing import Any
9 
10 from aioairzone_cloud.cloudapi import AirzoneCloudApi
11 from aioairzone_cloud.exceptions import AirzoneCloudError
12 
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
15 
16 from .const import AIOAIRZONE_CLOUD_TIMEOUT_SEC, DOMAIN
17 
18 SCAN_INTERVAL = timedelta(seconds=60)
19 
20 _LOGGER = logging.getLogger(__name__)
21 
22 
24  """Class to manage fetching data from the Airzone Cloud device."""
25 
26  def __init__(self, hass: HomeAssistant, airzone: AirzoneCloudApi) -> None:
27  """Initialize."""
28  self.airzoneairzone = airzone
29  self.airzoneairzone.set_update_callback(self.async_set_updated_dataasync_set_updated_data)
30 
31  super().__init__(
32  hass,
33  _LOGGER,
34  name=DOMAIN,
35  update_interval=SCAN_INTERVAL,
36  )
37 
38  async def _async_update_data(self) -> dict[str, Any]:
39  """Update data via library."""
40  async with timeout(AIOAIRZONE_CLOUD_TIMEOUT_SEC):
41  try:
42  await self.airzoneairzone.update()
43  except AirzoneCloudError as error:
44  raise UpdateFailed(error) from error
45  return self.airzoneairzone.data()
None __init__(self, HomeAssistant hass, AirzoneCloudApi airzone)
Definition: coordinator.py:26
IssData update(pyiss.ISS iss)
Definition: __init__.py:33