Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Aseko entity."""
2 
3 from aioaseko import Unit
4 
5 from homeassistant.helpers.device_registry import DeviceInfo
6 from homeassistant.helpers.entity import EntityDescription
7 from homeassistant.helpers.update_coordinator import CoordinatorEntity
8 
9 from .const import DOMAIN
10 from .coordinator import AsekoDataUpdateCoordinator
11 
12 
13 class AsekoEntity(CoordinatorEntity[AsekoDataUpdateCoordinator]):
14  """Representation of an aseko entity."""
15 
16  _attr_has_entity_name = True
17 
18  def __init__(
19  self,
20  unit: Unit,
21  coordinator: AsekoDataUpdateCoordinator,
22  description: EntityDescription,
23  ) -> None:
24  """Initialize the aseko entity."""
25  super().__init__(coordinator)
26  self.entity_descriptionentity_description = description
27  self._unit_unit = unit
28  self._attr_unique_id_attr_unique_id = f"{self.unit.serial_number}{self.entity_description.key}"
29  self._attr_device_info_attr_device_info = DeviceInfo(
30  identifiers={(DOMAIN, self.unitunit.serial_number)},
31  serial_number=self.unitunit.serial_number,
32  name=unit.name or unit.serial_number,
33  manufacturer=(
34  self.unitunit.brand_name.primary
35  if self.unitunit.brand_name is not None
36  else None
37  ),
38  model=(
39  self.unitunit.brand_name.secondary
40  if self.unitunit.brand_name is not None
41  else None
42  ),
43  configuration_url=f"https://aseko.cloud/unit/{self.unit.serial_number}",
44  )
45 
46  @property
47  def unit(self) -> Unit:
48  """Return the aseko unit."""
49  return self.coordinator.data[self._unit_unit.serial_number]
50 
51  @property
52  def available(self) -> bool:
53  """Return True if entity is available."""
54  return (
55  super().available
56  and self.unitunit.serial_number in self.coordinator.data
57  and self.unitunit.online
58  )
None __init__(self, Unit unit, AsekoDataUpdateCoordinator coordinator, EntityDescription description)
Definition: entity.py:23