Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The MusicCast integration."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 import logging
7 from typing import TYPE_CHECKING
8 
9 from aiomusiccast import MusicCastConnectionException
10 from aiomusiccast.musiccast_device import MusicCastData, MusicCastDevice
11 
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
14 
15 from .const import DOMAIN
16 
17 if TYPE_CHECKING:
18  from .entity import MusicCastDeviceEntity
19 
20 _LOGGER = logging.getLogger(__name__)
21 
22 SCAN_INTERVAL = timedelta(seconds=60)
23 
24 
26  """Class to manage fetching data from the API."""
27 
28  def __init__(self, hass: HomeAssistant, client: MusicCastDevice) -> None:
29  """Initialize."""
30  self.musiccastmusiccast = client
31 
32  super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=SCAN_INTERVAL)
33  self.entities: list[MusicCastDeviceEntity] = []
34 
35  async def _async_update_data(self) -> MusicCastData:
36  """Update data via library."""
37  try:
38  await self.musiccastmusiccast.fetch()
39  except MusicCastConnectionException as exception:
40  raise UpdateFailed from exception
41  return self.musiccastmusiccast.data
None __init__(self, HomeAssistant hass, MusicCastDevice client)
Definition: coordinator.py:28