Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The Tomorrow.io integration."""
2 
3 from __future__ import annotations
4 
5 from pytomorrowio.const import CURRENT
6 
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.const import CONF_API_KEY
9 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
10 from homeassistant.helpers.update_coordinator import CoordinatorEntity
11 
12 from .const import ATTRIBUTION, DOMAIN, INTEGRATION_NAME
13 from .coordinator import TomorrowioDataUpdateCoordinator
14 
15 
16 class TomorrowioEntity(CoordinatorEntity[TomorrowioDataUpdateCoordinator]):
17  """Base Tomorrow.io Entity."""
18 
19  _attr_attribution = ATTRIBUTION
20  _attr_has_entity_name = True
21 
22  def __init__(
23  self,
24  config_entry: ConfigEntry,
25  coordinator: TomorrowioDataUpdateCoordinator,
26  api_version: int,
27  ) -> None:
28  """Initialize Tomorrow.io Entity."""
29  super().__init__(coordinator)
30  self.api_versionapi_version = api_version
31  self._config_entry_config_entry = config_entry
32  self._attr_device_info_attr_device_info = DeviceInfo(
33  identifiers={(DOMAIN, self._config_entry_config_entry.data[CONF_API_KEY])},
34  manufacturer=INTEGRATION_NAME,
35  sw_version=f"v{self.api_version}",
36  entry_type=DeviceEntryType.SERVICE,
37  )
38 
39  def _get_current_property(self, property_name: str) -> int | str | float | None:
40  """Get property from current conditions.
41 
42  Used for V4 API.
43  """
44  entry_id = self._config_entry_config_entry.entry_id
45  return self.coordinator.data[entry_id].get(CURRENT, {}).get(property_name)
None __init__(self, ConfigEntry config_entry, TomorrowioDataUpdateCoordinator coordinator, int api_version)
Definition: entity.py:27
int|str|float|None _get_current_property(self, str property_name)
Definition: entity.py:39
web.Response get(self, web.Request request, str config_key)
Definition: view.py:88