Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """Blink Coordinator."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 import logging
7 from typing import Any
8 
9 from blinkpy.blinkpy import Blink
10 
11 from homeassistant.config_entries import ConfigEntry
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
14 
15 from .const import DOMAIN
16 
17 _LOGGER = logging.getLogger(__name__)
18 SCAN_INTERVAL = 300
19 
20 type BlinkConfigEntry = ConfigEntry[BlinkUpdateCoordinator]
21 
22 
24  """BlinkUpdateCoordinator - In charge of downloading the data for a site."""
25 
26  def __init__(self, hass: HomeAssistant, api: Blink) -> None:
27  """Initialize the data service."""
28  self.apiapi = api
29  super().__init__(
30  hass,
31  _LOGGER,
32  name=DOMAIN,
33  update_interval=timedelta(seconds=SCAN_INTERVAL),
34  )
35 
36  async def _async_update_data(self) -> dict[str, Any]:
37  """Async update wrapper."""
38  return await self.apiapi.refresh(force=True)