Move tolo base entity to separate module (#126530)
This commit is contained in:
parent
9fcefca0f5
commit
df0c8064b2
11 changed files with 47 additions and 33 deletions
|
@ -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(),
|
||||
)
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
28
homeassistant/components/tolo/entity.py
Normal file
28
homeassistant/components/tolo/entity.py
Normal 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(),
|
||||
)
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue