Introduce base entity for supporting multiple platforms in Huum (#148957)

This commit is contained in:
Vincent Wolsink 2025-07-18 00:06:51 +02:00 committed by GitHub
parent 0ff0902ccf
commit 6b959f42f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 11 deletions

View File

@ -16,12 +16,10 @@ from homeassistant.components.climate import (
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTemperature from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTemperature
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import HuumConfigEntry, HuumDataUpdateCoordinator from .coordinator import HuumConfigEntry, HuumDataUpdateCoordinator
from .entity import HuumBaseEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -35,7 +33,7 @@ async def async_setup_entry(
async_add_entities([HuumDevice(entry.runtime_data)]) async_add_entities([HuumDevice(entry.runtime_data)])
class HuumDevice(CoordinatorEntity[HuumDataUpdateCoordinator], ClimateEntity): class HuumDevice(HuumBaseEntity, ClimateEntity):
"""Representation of a heater.""" """Representation of a heater."""
_attr_hvac_modes = [HVACMode.HEAT, HVACMode.OFF] _attr_hvac_modes = [HVACMode.HEAT, HVACMode.OFF]
@ -46,7 +44,6 @@ class HuumDevice(CoordinatorEntity[HuumDataUpdateCoordinator], ClimateEntity):
) )
_attr_target_temperature_step = PRECISION_WHOLE _attr_target_temperature_step = PRECISION_WHOLE
_attr_temperature_unit = UnitOfTemperature.CELSIUS _attr_temperature_unit = UnitOfTemperature.CELSIUS
_attr_has_entity_name = True
_attr_name = None _attr_name = None
def __init__(self, coordinator: HuumDataUpdateCoordinator) -> None: def __init__(self, coordinator: HuumDataUpdateCoordinator) -> None:
@ -54,12 +51,6 @@ class HuumDevice(CoordinatorEntity[HuumDataUpdateCoordinator], ClimateEntity):
super().__init__(coordinator) super().__init__(coordinator)
self._attr_unique_id = coordinator.config_entry.entry_id self._attr_unique_id = coordinator.config_entry.entry_id
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.config_entry.entry_id)},
name="Huum sauna",
manufacturer="Huum",
model="UKU WiFi",
)
@property @property
def min_temp(self) -> int: def min_temp(self) -> int:

View File

@ -0,0 +1,24 @@
"""Define Huum Base entity."""
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import HuumDataUpdateCoordinator
class HuumBaseEntity(CoordinatorEntity[HuumDataUpdateCoordinator]):
"""Huum base Entity."""
_attr_has_entity_name = True
def __init__(self, coordinator: HuumDataUpdateCoordinator) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.config_entry.entry_id)},
name="Huum sauna",
manufacturer="Huum",
model="UKU WiFi",
)