Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Entity representing a Goal Zero Yeti device."""
2 
3 from goalzero import Yeti
4 
5 from homeassistant.const import ATTR_MODEL, CONF_NAME
6 from homeassistant.helpers import device_registry as dr
7 from homeassistant.helpers.device_registry import DeviceInfo
8 from homeassistant.helpers.entity import EntityDescription
9 from homeassistant.helpers.update_coordinator import CoordinatorEntity
10 
11 from .const import ATTRIBUTION, DOMAIN, MANUFACTURER
12 from .coordinator import GoalZeroDataUpdateCoordinator
13 
14 
15 class GoalZeroEntity(CoordinatorEntity[GoalZeroDataUpdateCoordinator]):
16  """Representation of a Goal Zero Yeti entity."""
17 
18  _attr_attribution = ATTRIBUTION
19  _attr_has_entity_name = True
20 
21  def __init__(
22  self,
23  coordinator: GoalZeroDataUpdateCoordinator,
24  description: EntityDescription,
25  ) -> None:
26  """Initialize a Goal Zero Yeti entity."""
27  super().__init__(coordinator)
28  self.entity_descriptionentity_description = description
29  self._attr_unique_id_attr_unique_id = f"{coordinator.config_entry.entry_id}/{description.key}"
30 
31  @property
32  def device_info(self) -> DeviceInfo:
33  """Return the device information of the entity."""
34  return DeviceInfo(
35  connections={(dr.CONNECTION_NETWORK_MAC, self._api_api.sysdata["macAddress"])},
36  identifiers={(DOMAIN, self.coordinator.config_entry.entry_id)},
37  manufacturer=MANUFACTURER,
38  model=self._api_api.sysdata[ATTR_MODEL],
39  name=self.coordinator.config_entry.data[CONF_NAME].capitalize(),
40  sw_version=self._api_api.data["firmwareVersion"],
41  )
42 
43  @property
44  def _api(self) -> Yeti:
45  """Return api from coordinator."""
46  return self.coordinator.api
None __init__(self, GoalZeroDataUpdateCoordinator coordinator, EntityDescription description)
Definition: entity.py:25