Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The IntelliFire integration."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 
7 from intellifire4py import UnifiedFireplace
8 from intellifire4py.control import IntelliFireController
9 from intellifire4py.model import IntelliFirePollData
10 from intellifire4py.read import IntelliFireDataProvider
11 
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.device_registry import DeviceInfo
14 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
15 
16 from .const import DOMAIN, LOGGER
17 
18 
20  """Class to manage the polling of the fireplace API."""
21 
22  def __init__(
23  self,
24  hass: HomeAssistant,
25  fireplace: UnifiedFireplace,
26  ) -> None:
27  """Initialize the Coordinator."""
28  super().__init__(
29  hass,
30  LOGGER,
31  name=DOMAIN,
32  update_interval=timedelta(seconds=15),
33  )
34 
35  self.fireplacefireplace = fireplace
36 
37  @property
38  def read_api(self) -> IntelliFireDataProvider:
39  """Return the Status API pointer."""
40  return self.fireplacefireplace.read_api
41 
42  @property
43  def control_api(self) -> IntelliFireController:
44  """Return the control API."""
45  return self.fireplacefireplace.control_api
46 
47  async def _async_update_data(self) -> IntelliFirePollData:
48  return self.fireplacefireplace.data
49 
50  @property
51  def device_info(self) -> DeviceInfo:
52  """Return the device info."""
53  return DeviceInfo(
54  manufacturer="Hearth and Home",
55  model="IFT-WFM",
56  name="IntelliFire",
57  identifiers={("IntelliFire", str(self.fireplacefireplace.serial))},
58  configuration_url=f"http://{self.fireplace.ip_address}/poll",
59  )
None __init__(self, HomeAssistant hass, UnifiedFireplace fireplace)
Definition: coordinator.py:26