Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """Coordinator object for the Android IP Webcam integration."""
2 
3 from datetime import timedelta
4 import logging
5 
6 from pydroid_ipcam import PyDroidIPCam
7 from pydroid_ipcam.exceptions import PyDroidIPCamException
8 
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.const import CONF_HOST
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
13 
14 from .const import DOMAIN
15 
16 _LOGGER = logging.getLogger(__name__)
17 
18 type AndroidIPCamConfigEntry = ConfigEntry[AndroidIPCamDataUpdateCoordinator]
19 
20 
22  """Coordinator class for the Android IP Webcam."""
23 
24  config_entry: AndroidIPCamConfigEntry
25 
26  def __init__(
27  self,
28  hass: HomeAssistant,
29  config_entry: AndroidIPCamConfigEntry,
30  cam: PyDroidIPCam,
31  ) -> None:
32  """Initialize the Android IP Webcam."""
33  self.hasshasshass = hass
34  self.camcam = cam
35  super().__init__(
36  self.hasshasshass,
37  _LOGGER,
38  name=f"{DOMAIN} {config_entry.data[CONF_HOST]}",
39  update_interval=timedelta(seconds=10),
40  )
41 
42  async def _async_update_data(self) -> None:
43  """Update Android IP Webcam entities."""
44  try:
45  await self.camcam.update()
46  except PyDroidIPCamException as err:
47  raise UpdateFailed(err) from err
None __init__(self, HomeAssistant hass, AndroidIPCamConfigEntry config_entry, PyDroidIPCam cam)
Definition: coordinator.py:31
IssData update(pyiss.ISS iss)
Definition: __init__.py:33