Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """An abstract class common to all EZVIZ entities."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, DeviceInfo
8 from homeassistant.helpers.entity import Entity
9 from homeassistant.helpers.update_coordinator import CoordinatorEntity
10 
11 from .const import DOMAIN, MANUFACTURER
12 from .coordinator import EzvizDataUpdateCoordinator
13 
14 
15 class EzvizEntity(CoordinatorEntity[EzvizDataUpdateCoordinator], Entity):
16  """Generic entity encapsulating common features of EZVIZ device."""
17 
18  _attr_has_entity_name = True
19 
20  def __init__(
21  self,
22  coordinator: EzvizDataUpdateCoordinator,
23  serial: str,
24  ) -> None:
25  """Initialize the entity."""
26  super().__init__(coordinator)
27  self._serial_serial = serial
28  self._camera_name_camera_name = self.datadatadata["name"]
29  self._attr_device_info_attr_device_info = DeviceInfo(
30  identifiers={(DOMAIN, serial)},
31  connections={
32  (CONNECTION_NETWORK_MAC, self.datadatadata["mac_address"]),
33  },
34  manufacturer=MANUFACTURER,
35  model=self.datadatadata["device_sub_category"],
36  name=self.datadatadata["name"],
37  sw_version=self.datadatadata["version"],
38  )
39 
40  @property
41  def data(self) -> dict[str, Any]:
42  """Return coordinator data for this entity."""
43  return self.coordinator.data[self._serial_serial]
44 
45 
47  """Generic entity for EZVIZ individual poll entities."""
48 
49  _attr_has_entity_name = True
50 
51  def __init__(
52  self,
53  coordinator: EzvizDataUpdateCoordinator,
54  serial: str,
55  ) -> None:
56  """Initialize the entity."""
57  self._serial_serial = serial
58  self.coordinatorcoordinator = coordinator
59  self._camera_name_camera_name = self.datadata["name"]
60  self._attr_device_info_attr_device_info = DeviceInfo(
61  identifiers={(DOMAIN, serial)},
62  connections={
63  (CONNECTION_NETWORK_MAC, self.datadata["mac_address"]),
64  },
65  manufacturer=MANUFACTURER,
66  model=self.datadata["device_sub_category"],
67  name=self.datadata["name"],
68  sw_version=self.datadata["version"],
69  )
70 
71  @property
72  def data(self) -> dict[str, Any]:
73  """Return coordinator data for this entity."""
74  return self.coordinatorcoordinator.data[self._serial_serial]
None __init__(self, EzvizDataUpdateCoordinator coordinator, str serial)
Definition: entity.py:55
None __init__(self, EzvizDataUpdateCoordinator coordinator, str serial)
Definition: entity.py:24