Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base entity for the Elgato integration."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.const import ATTR_CONNECTIONS, CONF_MAC
7  CONNECTION_NETWORK_MAC,
8  DeviceInfo,
9  format_mac,
10 )
11 from homeassistant.helpers.update_coordinator import CoordinatorEntity
12 
13 from .const import DOMAIN
14 from .coordinator import ElgatoDataUpdateCoordinator
15 
16 
17 class ElgatoEntity(CoordinatorEntity[ElgatoDataUpdateCoordinator]):
18  """Defines an Elgato entity."""
19 
20  _attr_has_entity_name = True
21 
22  def __init__(self, coordinator: ElgatoDataUpdateCoordinator) -> None:
23  """Initialize an Elgato entity."""
24  super().__init__(coordinator=coordinator)
25  self._attr_device_info_attr_device_info = DeviceInfo(
26  identifiers={(DOMAIN, coordinator.data.info.serial_number)},
27  serial_number=coordinator.data.info.serial_number,
28  manufacturer="Elgato",
29  model=coordinator.data.info.product_name,
30  name=coordinator.data.info.display_name,
31  sw_version=f"{coordinator.data.info.firmware_version} ({coordinator.data.info.firmware_build_number})",
32  hw_version=str(coordinator.data.info.hardware_board_type),
33  )
34  if (mac := coordinator.config_entry.data.get(CONF_MAC)) is not None:
35  self._attr_device_info_attr_device_info[ATTR_CONNECTIONS] = {
36  (CONNECTION_NETWORK_MAC, format_mac(mac))
37  }
None __init__(self, ElgatoDataUpdateCoordinator coordinator)
Definition: entity.py:22