1 """Coordinator for fetching data from fitbit API."""
4 from dataclasses
import dataclass
7 from typing
import Final
13 from .api
import FitbitApi
14 from .exceptions
import FitbitApiException, FitbitAuthException
15 from .model
import FitbitDevice
17 _LOGGER = logging.getLogger(__name__)
19 UPDATE_INTERVAL: Final = datetime.timedelta(minutes=30)
24 """Coordinator for fetching fitbit devices from the API."""
26 def __init__(self, hass: HomeAssistant, api: FitbitApi) ->
None:
27 """Initialize FitbitDeviceCoordinator."""
28 super().
__init__(hass, _LOGGER, name=
"Fitbit", update_interval=UPDATE_INTERVAL)
32 """Fetch data from API endpoint."""
33 async
with asyncio.timeout(TIMEOUT):
36 except FitbitAuthException
as err:
38 except FitbitApiException
as err:
40 return {device.id: device
for device
in devices}
45 """Config Entry global data."""
48 device_coordinator: FitbitDeviceCoordinator |
None
None __init__(self, HomeAssistant hass, FitbitApi api)
dict[str, FitbitDevice] _async_update_data(self)
Generator[ProtectAdoptableDeviceModel] async_get_devices(Bootstrap bootstrap, Iterable[ModelType] model_type)