Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """Coordinator for the Aussie Broadband integration."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 import logging
7 from typing import Any, TypedDict
8 
9 from aussiebb.asyncio import AussieBB
10 from aussiebb.exceptions import UnrecognisedServiceType
11 
12 from homeassistant.config_entries import ConfigEntry
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
15 
16 from .const import DEFAULT_UPDATE_INTERVAL
17 
18 _LOGGER = logging.getLogger(__name__)
19 
20 
21 class AussieBroadbandServiceData(TypedDict, total=False):
22  """Aussie Broadband service information, extended with the coordinator."""
23 
24  coordinator: AussieBroadbandDataUpdateCoordinator
25  description: str
26  name: str
27  service_id: str
28  type: str
29 
30 
31 type AussieBroadbandConfigEntry = ConfigEntry[list[AussieBroadbandServiceData]]
32 
33 
35  """Aussie Broadand data update coordinator."""
36 
37  def __init__(self, hass: HomeAssistant, client: AussieBB, service_id: str) -> None:
38  """Initialize Atag coordinator."""
39  super().__init__(
40  hass,
41  _LOGGER,
42  name=f"Aussie Broadband {service_id}",
43  update_interval=timedelta(minutes=DEFAULT_UPDATE_INTERVAL),
44  )
45  self._client_client = client
46  self._service_id_service_id = service_id
47 
48  async def _async_update_data(self) -> dict[str, Any]:
49  """Update data via library."""
50  try:
51  return await self._client_client.get_usage(self._service_id_service_id)
52  except UnrecognisedServiceType as err:
53  raise UpdateFailed(f"Service {self._service_id} was unrecognised") from err
None __init__(self, HomeAssistant hass, AussieBB client, str service_id)
Definition: coordinator.py:37