mirror of
https://github.com/home-assistant/core.git
synced 2026-08-14 17:23:33 +01:00
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
"""Entity class for Renson ventilation unit."""
|
|
|
|
from renson_endura_delta.field_enum import (
|
|
DEVICE_NAME_FIELD,
|
|
FIRMWARE_VERSION_FIELD,
|
|
HARDWARE_VERSION_FIELD,
|
|
MAC_ADDRESS,
|
|
)
|
|
from renson_endura_delta.renson import RensonVentilation
|
|
|
|
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, DeviceInfo
|
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
|
|
|
from .const import DOMAIN
|
|
from .coordinator import RensonCoordinator
|
|
|
|
|
|
class RensonEntity(CoordinatorEntity[RensonCoordinator]):
|
|
"""Renson entity."""
|
|
|
|
def __init__(
|
|
self, name: str, api: RensonVentilation, coordinator: RensonCoordinator
|
|
) -> None:
|
|
"""Initialize the Renson entity."""
|
|
super().__init__(coordinator)
|
|
|
|
mac = api.get_field_value(coordinator.data, MAC_ADDRESS.name)
|
|
|
|
self._attr_device_info = DeviceInfo(
|
|
identifiers={(DOMAIN, mac)},
|
|
connections={(CONNECTION_NETWORK_MAC, mac)},
|
|
manufacturer="Renson",
|
|
model=api.get_field_value(coordinator.data, DEVICE_NAME_FIELD.name),
|
|
name="Ventilation",
|
|
sw_version=api.get_field_value(
|
|
coordinator.data, FIRMWARE_VERSION_FIELD.name
|
|
),
|
|
hw_version=api.get_field_value(
|
|
coordinator.data, HARDWARE_VERSION_FIELD.name
|
|
),
|
|
)
|
|
|
|
self.api = api
|
|
|
|
self._attr_unique_id = f"{mac}{name}"
|