Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The DoorBird integration base entity."""
2 
3 from homeassistant.helpers import device_registry as dr
4 from homeassistant.helpers.device_registry import DeviceInfo
5 from homeassistant.helpers.entity import Entity
6 
7 from .const import (
8  DOORBIRD_INFO_KEY_BUILD_NUMBER,
9  DOORBIRD_INFO_KEY_DEVICE_TYPE,
10  DOORBIRD_INFO_KEY_FIRMWARE,
11  MANUFACTURER,
12 )
13 from .models import DoorBirdData
14 from .util import get_mac_address_from_door_station_info
15 
16 
18  """Base class for doorbird entities."""
19 
20  _attr_has_entity_name = True
21 
22  def __init__(self, door_bird_data: DoorBirdData) -> None:
23  """Initialize the entity."""
24  super().__init__()
25  self._door_bird_data_door_bird_data = door_bird_data
26  self._door_station_door_station = door_bird_data.door_station
27  door_station_info = door_bird_data.door_station_info
28  self._mac_addr_mac_addr = get_mac_address_from_door_station_info(door_station_info)
29  firmware = door_station_info[DOORBIRD_INFO_KEY_FIRMWARE]
30  firmware_build = door_station_info[DOORBIRD_INFO_KEY_BUILD_NUMBER]
31  self._attr_device_info_attr_device_info = DeviceInfo(
32  configuration_url="https://webadmin.doorbird.com/",
33  connections={(dr.CONNECTION_NETWORK_MAC, self._mac_addr_mac_addr)},
34  manufacturer=MANUFACTURER,
35  model=door_station_info[DOORBIRD_INFO_KEY_DEVICE_TYPE],
36  name=self._door_station_door_station.name,
37  sw_version=f"{firmware} {firmware_build}",
38  )
None __init__(self, DoorBirdData door_bird_data)
Definition: entity.py:22
str get_mac_address_from_door_station_info(dict[str, Any] door_station_info)
Definition: util.py:12