1
mirror of https://github.com/home-assistant/core synced 2024-08-28 03:36:46 +02:00
ha-core/homeassistant/components/elgato/entity.py
Jan-Philipp Benecke 4e3ff45a5e
Use constant instead of plain key name for device info attributes (#103188)
* Use constant instead of plain key name for device info connections

* Some more device info constant changes
2023-11-02 21:59:25 +01:00

37 lines
1.4 KiB
Python

"""Base entity for the Elgato integration."""
from __future__ import annotations
from homeassistant.const import ATTR_CONNECTIONS, CONF_MAC
from homeassistant.helpers.device_registry import (
CONNECTION_NETWORK_MAC,
DeviceInfo,
format_mac,
)
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)},
serial_number=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[ATTR_CONNECTIONS] = {
(CONNECTION_NETWORK_MAC, format_mac(mac))
}