Move tolo base entity to separate module (#126530)

This commit is contained in:
epenet 2024-09-23 14:17:28 +02:00 committed by GitHub
parent 9fcefca0f5
commit df0c8064b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 47 additions and 33 deletions

View file

@ -11,12 +11,7 @@ from tololib import ToloClient, ToloSettings, ToloStatus
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
UpdateFailed,
)
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT, DOMAIN
@ -89,21 +84,3 @@ class ToloSaunaUpdateCoordinator(DataUpdateCoordinator[ToloSaunaData]): # pylin
except TimeoutError as error:
raise UpdateFailed("communication timeout") from error
return ToloSaunaData(status, settings)
class ToloSaunaCoordinatorEntity(CoordinatorEntity[ToloSaunaUpdateCoordinator]):
"""CoordinatorEntity for TOLO Sauna."""
_attr_has_entity_name = True
def __init__(
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
) -> None:
"""Initialize ToloSaunaCoordinatorEntity."""
super().__init__(coordinator)
self._attr_device_info = DeviceInfo(
name="TOLO Sauna",
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="SteamTec",
model=self.coordinator.data.status.model.name.capitalize(),
)

View file

@ -9,8 +9,9 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
async def async_setup_entry(

View file

@ -8,8 +8,9 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
async def async_setup_entry(

View file

@ -25,8 +25,9 @@ from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTempera
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
async def async_setup_entry(

View file

@ -0,0 +1,28 @@
"""Component to control TOLO Sauna/Steam Bath."""
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
class ToloSaunaCoordinatorEntity(CoordinatorEntity[ToloSaunaUpdateCoordinator]):
"""CoordinatorEntity for TOLO Sauna."""
_attr_has_entity_name = True
def __init__(
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
) -> None:
"""Initialize ToloSaunaCoordinatorEntity."""
super().__init__(coordinator)
self._attr_device_info = DeviceInfo(
name="TOLO Sauna",
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="SteamTec",
model=self.coordinator.data.status.model.name.capitalize(),
)

View file

@ -9,8 +9,9 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
async def async_setup_entry(

View file

@ -9,8 +9,9 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
async def async_setup_entry(

View file

@ -20,8 +20,9 @@ from homeassistant.const import EntityCategory, UnitOfTime
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
@dataclass(frozen=True, kw_only=True)

View file

@ -13,8 +13,9 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN, AromaTherapySlot, LampMode
from .entity import ToloSaunaCoordinatorEntity
@dataclass(frozen=True, kw_only=True)

View file

@ -23,8 +23,9 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
@dataclass(frozen=True, kw_only=True)

View file

@ -13,8 +13,9 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator
from . import ToloSaunaUpdateCoordinator
from .const import DOMAIN
from .entity import ToloSaunaCoordinatorEntity
@dataclass(frozen=True, kw_only=True)