Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The Airzone integration."""
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.exceptions import AirzoneError
11 from aioairzone.localapi import AirzoneLocalApi
12 
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
15 
16 from .const import AIOAIRZONE_DEVICE_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 device."""
25 
26  def __init__(self, hass: HomeAssistant, airzone: AirzoneLocalApi) -> None:
27  """Initialize."""
28  self.airzoneairzone = airzone
29 
30  super().__init__(
31  hass,
32  _LOGGER,
33  name=DOMAIN,
34  update_interval=SCAN_INTERVAL,
35  )
36 
37  async def _async_update_data(self) -> dict[str, Any]:
38  """Update data via library."""
39  async with timeout(AIOAIRZONE_DEVICE_TIMEOUT_SEC):
40  try:
41  await self.airzoneairzone.update()
42  except AirzoneError as error:
43  raise UpdateFailed(error) from error
44  return self.airzoneairzone.data()
None __init__(self, HomeAssistant hass, AirzoneLocalApi airzone)
Definition: coordinator.py:26
IssData update(pyiss.ISS iss)
Definition: __init__.py:33