core/homeassistant/components/elgato/entity.py

33 lines
1.3 KiB
Python

"""Base entity for the Elgato integration."""
from __future__ import annotations
from homeassistant.const import CONF_MAC
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, format_mac
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import ElgatoDataUpdateCoordinator
class ElgatoEntity(CoordinatorEntity[ElgatoDataUpdateCoordinator]):
"""Defines an Elgato entity."""
_attr_has_entity_name = True
def __init__(self, coordinator: ElgatoDataUpdateCoordinator) -> None:
"""Initialize an Elgato entity."""
super().__init__(coordinator=coordinator)
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.data.info.serial_number)},
manufacturer="Elgato",
model=coordinator.data.info.product_name,
name=coordinator.data.info.display_name,
sw_version=f"{coordinator.data.info.firmware_version} ({coordinator.data.info.firmware_build_number})",
hw_version=str(coordinator.data.info.hardware_board_type),
)
if (mac := coordinator.config_entry.data.get(CONF_MAC)) is not None:
self._attr_device_info["connections"] = {
(CONNECTION_NETWORK_MAC, format_mac(mac))
}