Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base entity for Linear."""
2 
3 from homeassistant.helpers.device_registry import DeviceInfo
4 from homeassistant.helpers.update_coordinator import CoordinatorEntity
5 
6 from .const import DOMAIN
7 from .coordinator import LinearDevice, LinearUpdateCoordinator
8 
9 
10 class LinearEntity(CoordinatorEntity[LinearUpdateCoordinator]):
11  """Common base for Linear entities."""
12 
13  _attr_has_entity_name = True
14 
15  def __init__(
16  self,
17  coordinator: LinearUpdateCoordinator,
18  device_id: str,
19  device_name: str,
20  sub_device_id: str,
21  ) -> None:
22  """Initialize the entity."""
23  super().__init__(coordinator)
24 
25  self._attr_unique_id_attr_unique_id = f"{device_id}-{sub_device_id}"
26  self._device_id_device_id = device_id
27  self._sub_device_id_sub_device_id = sub_device_id
28  self._attr_device_info_attr_device_info = DeviceInfo(
29  identifiers={(DOMAIN, device_id)},
30  name=device_name,
31  manufacturer="Linear",
32  model="Garage Door Opener",
33  )
34 
35  @property
36  def linear_device(self) -> LinearDevice:
37  """Return the Linear device."""
38  return self.coordinator.data[self._device_id_device_id]
39 
40  @property
41  def sub_device(self) -> dict[str, str]:
42  """Return the subdevice."""
43  return self.linear_devicelinear_device.subdevices[self._sub_device_id_sub_device_id]
None __init__(self, LinearUpdateCoordinator coordinator, str device_id, str device_name, str sub_device_id)
Definition: entity.py:21