mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +00:00
Use runtime_data in comelit (#136384)
This commit is contained in:
parent
1593b40f52
commit
c691f8cc1e
@ -2,12 +2,16 @@
|
|||||||
|
|
||||||
from aiocomelit.const import BRIDGE
|
from aiocomelit.const import BRIDGE
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_HOST, CONF_PIN, CONF_PORT, CONF_TYPE, Platform
|
from homeassistant.const import CONF_HOST, CONF_PIN, CONF_PORT, CONF_TYPE, Platform
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from .const import DEFAULT_PORT, DOMAIN
|
from .const import DEFAULT_PORT
|
||||||
from .coordinator import ComelitBaseCoordinator, ComelitSerialBridge, ComelitVedoSystem
|
from .coordinator import (
|
||||||
|
ComelitBaseCoordinator,
|
||||||
|
ComelitConfigEntry,
|
||||||
|
ComelitSerialBridge,
|
||||||
|
ComelitVedoSystem,
|
||||||
|
)
|
||||||
|
|
||||||
BRIDGE_PLATFORMS = [
|
BRIDGE_PLATFORMS = [
|
||||||
Platform.CLIMATE,
|
Platform.CLIMATE,
|
||||||
@ -24,13 +28,14 @@ VEDO_PLATFORMS = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_setup_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> bool:
|
||||||
"""Set up Comelit platform."""
|
"""Set up Comelit platform."""
|
||||||
|
|
||||||
coordinator: ComelitBaseCoordinator
|
coordinator: ComelitBaseCoordinator
|
||||||
if entry.data.get(CONF_TYPE, BRIDGE) == BRIDGE:
|
if entry.data.get(CONF_TYPE, BRIDGE) == BRIDGE:
|
||||||
coordinator = ComelitSerialBridge(
|
coordinator = ComelitSerialBridge(
|
||||||
hass,
|
hass,
|
||||||
|
entry,
|
||||||
entry.data[CONF_HOST],
|
entry.data[CONF_HOST],
|
||||||
entry.data.get(CONF_PORT, DEFAULT_PORT),
|
entry.data.get(CONF_PORT, DEFAULT_PORT),
|
||||||
entry.data[CONF_PIN],
|
entry.data[CONF_PIN],
|
||||||
@ -39,6 +44,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
else:
|
else:
|
||||||
coordinator = ComelitVedoSystem(
|
coordinator = ComelitVedoSystem(
|
||||||
hass,
|
hass,
|
||||||
|
entry,
|
||||||
entry.data[CONF_HOST],
|
entry.data[CONF_HOST],
|
||||||
entry.data.get(CONF_PORT, DEFAULT_PORT),
|
entry.data.get(CONF_PORT, DEFAULT_PORT),
|
||||||
entry.data[CONF_PIN],
|
entry.data[CONF_PIN],
|
||||||
@ -47,14 +53,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
await coordinator.async_config_entry_first_refresh()
|
await coordinator.async_config_entry_first_refresh()
|
||||||
|
|
||||||
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
|
entry.runtime_data = coordinator
|
||||||
|
|
||||||
await hass.config_entries.async_forward_entry_setups(entry, platforms)
|
await hass.config_entries.async_forward_entry_setups(entry, platforms)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_unload_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
|
|
||||||
if entry.data.get(CONF_TYPE, BRIDGE) == BRIDGE:
|
if entry.data.get(CONF_TYPE, BRIDGE) == BRIDGE:
|
||||||
@ -62,10 +68,9 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
else:
|
else:
|
||||||
platforms = VEDO_PLATFORMS
|
platforms = VEDO_PLATFORMS
|
||||||
|
|
||||||
coordinator: ComelitBaseCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
if unload_ok := await hass.config_entries.async_unload_platforms(entry, platforms):
|
if unload_ok := await hass.config_entries.async_unload_platforms(entry, platforms):
|
||||||
await coordinator.api.logout()
|
await coordinator.api.logout()
|
||||||
await coordinator.api.close()
|
await coordinator.api.close()
|
||||||
hass.data[DOMAIN].pop(entry.entry_id)
|
|
||||||
|
|
||||||
return unload_ok
|
return unload_ok
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
from typing import cast
|
||||||
|
|
||||||
from aiocomelit.api import ComelitVedoAreaObject
|
from aiocomelit.api import ComelitVedoAreaObject
|
||||||
from aiocomelit.const import ALARM_AREAS, AlarmAreaState
|
from aiocomelit.const import ALARM_AREAS, AlarmAreaState
|
||||||
@ -13,13 +14,11 @@ from homeassistant.components.alarm_control_panel import (
|
|||||||
AlarmControlPanelState,
|
AlarmControlPanelState,
|
||||||
CodeFormat,
|
CodeFormat,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitVedoSystem
|
||||||
from .coordinator import ComelitVedoSystem
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -48,12 +47,12 @@ ALARM_AREA_ARMED_STATUS: dict[str, int] = {
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up the Comelit VEDO system alarm control panel devices."""
|
"""Set up the Comelit VEDO system alarm control panel devices."""
|
||||||
|
|
||||||
coordinator: ComelitVedoSystem = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitVedoSystem, config_entry.runtime_data)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
ComelitAlarmEntity(coordinator, device, config_entry.entry_id)
|
ComelitAlarmEntity(coordinator, device, config_entry.entry_id)
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import cast
|
||||||
|
|
||||||
from aiocomelit import ComelitVedoZoneObject
|
from aiocomelit import ComelitVedoZoneObject
|
||||||
from aiocomelit.const import ALARM_ZONES
|
from aiocomelit.const import ALARM_ZONES
|
||||||
|
|
||||||
@ -9,23 +11,21 @@ from homeassistant.components.binary_sensor import (
|
|||||||
BinarySensorDeviceClass,
|
BinarySensorDeviceClass,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitVedoSystem
|
||||||
from .coordinator import ComelitVedoSystem
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit VEDO presence sensors."""
|
"""Set up Comelit VEDO presence sensors."""
|
||||||
|
|
||||||
coordinator: ComelitVedoSystem = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitVedoSystem, config_entry.runtime_data)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
ComelitVedoBinarySensorEntity(coordinator, device, config_entry.entry_id)
|
ComelitVedoBinarySensorEntity(coordinator, device, config_entry.entry_id)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from enum import StrEnum
|
from enum import StrEnum
|
||||||
from typing import Any
|
from typing import Any, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject
|
from aiocomelit import ComelitSerialBridgeObject
|
||||||
from aiocomelit.const import CLIMATE
|
from aiocomelit.const import CLIMATE
|
||||||
@ -15,14 +15,12 @@ from homeassistant.components.climate import (
|
|||||||
HVACMode,
|
HVACMode,
|
||||||
UnitOfTemperature,
|
UnitOfTemperature,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_TENTHS
|
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_TENTHS
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge
|
||||||
from .coordinator import ComelitSerialBridge
|
|
||||||
|
|
||||||
|
|
||||||
class ClimaComelitMode(StrEnum):
|
class ClimaComelitMode(StrEnum):
|
||||||
@ -72,12 +70,12 @@ MODE_TO_ACTION: dict[HVACMode, ClimaComelitCommand] = {
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit climates."""
|
"""Set up Comelit climates."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
ComelitClimateEntity(coordinator, device, config_entry.entry_id)
|
ComelitClimateEntity(coordinator, device, config_entry.entry_id)
|
||||||
|
@ -23,15 +23,19 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
|
|||||||
|
|
||||||
from .const import _LOGGER, DOMAIN
|
from .const import _LOGGER, DOMAIN
|
||||||
|
|
||||||
|
type ComelitConfigEntry = ConfigEntry[ComelitBaseCoordinator]
|
||||||
|
|
||||||
|
|
||||||
class ComelitBaseCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
class ComelitBaseCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
||||||
"""Base coordinator for Comelit Devices."""
|
"""Base coordinator for Comelit Devices."""
|
||||||
|
|
||||||
_hw_version: str
|
_hw_version: str
|
||||||
config_entry: ConfigEntry
|
config_entry: ComelitConfigEntry
|
||||||
api: ComelitCommonApi
|
api: ComelitCommonApi
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, device: str, host: str) -> None:
|
def __init__(
|
||||||
|
self, hass: HomeAssistant, entry: ComelitConfigEntry, device: str, host: str
|
||||||
|
) -> None:
|
||||||
"""Initialize the scanner."""
|
"""Initialize the scanner."""
|
||||||
|
|
||||||
self._device = device
|
self._device = device
|
||||||
@ -40,13 +44,14 @@ class ComelitBaseCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
|||||||
super().__init__(
|
super().__init__(
|
||||||
hass=hass,
|
hass=hass,
|
||||||
logger=_LOGGER,
|
logger=_LOGGER,
|
||||||
|
config_entry=entry,
|
||||||
name=f"{DOMAIN}-{host}-coordinator",
|
name=f"{DOMAIN}-{host}-coordinator",
|
||||||
update_interval=timedelta(seconds=5),
|
update_interval=timedelta(seconds=5),
|
||||||
)
|
)
|
||||||
device_registry = dr.async_get(self.hass)
|
device_registry = dr.async_get(self.hass)
|
||||||
device_registry.async_get_or_create(
|
device_registry.async_get_or_create(
|
||||||
config_entry_id=self.config_entry.entry_id,
|
config_entry_id=entry.entry_id,
|
||||||
identifiers={(DOMAIN, self.config_entry.entry_id)},
|
identifiers={(DOMAIN, entry.entry_id)},
|
||||||
model=device,
|
model=device,
|
||||||
name=f"{device} ({self._host})",
|
name=f"{device} ({self._host})",
|
||||||
manufacturer="Comelit",
|
manufacturer="Comelit",
|
||||||
@ -98,10 +103,17 @@ class ComelitSerialBridge(ComelitBaseCoordinator):
|
|||||||
_hw_version = "20003101"
|
_hw_version = "20003101"
|
||||||
api: ComeliteSerialBridgeApi
|
api: ComeliteSerialBridgeApi
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, host: str, port: int, pin: int) -> None:
|
def __init__(
|
||||||
|
self,
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entry: ComelitConfigEntry,
|
||||||
|
host: str,
|
||||||
|
port: int,
|
||||||
|
pin: int,
|
||||||
|
) -> None:
|
||||||
"""Initialize the scanner."""
|
"""Initialize the scanner."""
|
||||||
self.api = ComeliteSerialBridgeApi(host, port, pin)
|
self.api = ComeliteSerialBridgeApi(host, port, pin)
|
||||||
super().__init__(hass, BRIDGE, host)
|
super().__init__(hass, entry, BRIDGE, host)
|
||||||
|
|
||||||
async def _async_update_system_data(self) -> dict[str, Any]:
|
async def _async_update_system_data(self) -> dict[str, Any]:
|
||||||
"""Specific method for updating data."""
|
"""Specific method for updating data."""
|
||||||
@ -114,10 +126,17 @@ class ComelitVedoSystem(ComelitBaseCoordinator):
|
|||||||
_hw_version = "VEDO IP"
|
_hw_version = "VEDO IP"
|
||||||
api: ComelitVedoApi
|
api: ComelitVedoApi
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, host: str, port: int, pin: int) -> None:
|
def __init__(
|
||||||
|
self,
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entry: ComelitConfigEntry,
|
||||||
|
host: str,
|
||||||
|
port: int,
|
||||||
|
pin: int,
|
||||||
|
) -> None:
|
||||||
"""Initialize the scanner."""
|
"""Initialize the scanner."""
|
||||||
self.api = ComelitVedoApi(host, port, pin)
|
self.api = ComelitVedoApi(host, port, pin)
|
||||||
super().__init__(hass, VEDO, host)
|
super().__init__(hass, entry, VEDO, host)
|
||||||
|
|
||||||
async def _async_update_system_data(self) -> dict[str, Any]:
|
async def _async_update_system_data(self) -> dict[str, Any]:
|
||||||
"""Specific method for updating data."""
|
"""Specific method for updating data."""
|
||||||
|
@ -2,30 +2,28 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject
|
from aiocomelit import ComelitSerialBridgeObject
|
||||||
from aiocomelit.const import COVER, STATE_COVER, STATE_OFF, STATE_ON
|
from aiocomelit.const import COVER, STATE_COVER, STATE_OFF, STATE_ON
|
||||||
|
|
||||||
from homeassistant.components.cover import CoverDeviceClass, CoverEntity, CoverState
|
from homeassistant.components.cover import CoverDeviceClass, CoverEntity, CoverState
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.restore_state import RestoreEntity
|
from homeassistant.helpers.restore_state import RestoreEntity
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge
|
||||||
from .coordinator import ComelitSerialBridge
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit covers."""
|
"""Set up Comelit covers."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
ComelitCoverEntity(coordinator, device, config_entry.entry_id)
|
ComelitCoverEntity(coordinator, device, config_entry.entry_id)
|
||||||
|
@ -12,22 +12,20 @@ from aiocomelit import (
|
|||||||
from aiocomelit.const import BRIDGE
|
from aiocomelit.const import BRIDGE
|
||||||
|
|
||||||
from homeassistant.components.diagnostics import async_redact_data
|
from homeassistant.components.diagnostics import async_redact_data
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_PIN, CONF_TYPE
|
from homeassistant.const import CONF_PIN, CONF_TYPE
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry
|
||||||
from .coordinator import ComelitBaseCoordinator
|
|
||||||
|
|
||||||
TO_REDACT = {CONF_PIN}
|
TO_REDACT = {CONF_PIN}
|
||||||
|
|
||||||
|
|
||||||
async def async_get_config_entry_diagnostics(
|
async def async_get_config_entry_diagnostics(
|
||||||
hass: HomeAssistant, entry: ConfigEntry
|
hass: HomeAssistant, entry: ComelitConfigEntry
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Return diagnostics for a config entry."""
|
"""Return diagnostics for a config entry."""
|
||||||
|
|
||||||
coordinator: ComelitBaseCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
dev_list: list[dict[str, Any]] = []
|
dev_list: list[dict[str, Any]] = []
|
||||||
dev_type_list: list[dict[int, Any]] = []
|
dev_type_list: list[dict[int, Any]] = []
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from enum import StrEnum
|
from enum import StrEnum
|
||||||
from typing import Any
|
from typing import Any, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject
|
from aiocomelit import ComelitSerialBridgeObject
|
||||||
from aiocomelit.const import CLIMATE
|
from aiocomelit.const import CLIMATE
|
||||||
@ -16,14 +16,13 @@ from homeassistant.components.humidifier import (
|
|||||||
HumidifierEntity,
|
HumidifierEntity,
|
||||||
HumidifierEntityFeature,
|
HumidifierEntityFeature,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import ServiceValidationError
|
from homeassistant.exceptions import ServiceValidationError
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import ComelitSerialBridge
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge
|
||||||
|
|
||||||
|
|
||||||
class HumidifierComelitMode(StrEnum):
|
class HumidifierComelitMode(StrEnum):
|
||||||
@ -55,12 +54,12 @@ MODE_TO_ACTION: dict[str, HumidifierComelitCommand] = {
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit humidifiers."""
|
"""Set up Comelit humidifiers."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
entities: list[ComelitHumidifierEntity] = []
|
entities: list[ComelitHumidifierEntity] = []
|
||||||
for device in coordinator.data[CLIMATE].values():
|
for device in coordinator.data[CLIMATE].values():
|
||||||
|
@ -2,29 +2,27 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject
|
from aiocomelit import ComelitSerialBridgeObject
|
||||||
from aiocomelit.const import LIGHT, STATE_OFF, STATE_ON
|
from aiocomelit.const import LIGHT, STATE_OFF, STATE_ON
|
||||||
|
|
||||||
from homeassistant.components.light import ColorMode, LightEntity
|
from homeassistant.components.light import ColorMode, LightEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge
|
||||||
from .coordinator import ComelitSerialBridge
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit lights."""
|
"""Set up Comelit lights."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
ComelitLightEntity(coordinator, device, config_entry.entry_id)
|
ComelitLightEntity(coordinator, device, config_entry.entry_id)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Final
|
from typing import Final, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject, ComelitVedoZoneObject
|
from aiocomelit import ComelitSerialBridgeObject, ComelitVedoZoneObject
|
||||||
from aiocomelit.const import ALARM_ZONES, BRIDGE, OTHER, AlarmZoneState
|
from aiocomelit.const import ALARM_ZONES, BRIDGE, OTHER, AlarmZoneState
|
||||||
@ -12,15 +12,13 @@ from homeassistant.components.sensor import (
|
|||||||
SensorEntity,
|
SensorEntity,
|
||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_TYPE, UnitOfPower
|
from homeassistant.const import CONF_TYPE, UnitOfPower
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge, ComelitVedoSystem
|
||||||
from .coordinator import ComelitSerialBridge, ComelitVedoSystem
|
|
||||||
|
|
||||||
SENSOR_BRIDGE_TYPES: Final = (
|
SENSOR_BRIDGE_TYPES: Final = (
|
||||||
SensorEntityDescription(
|
SensorEntityDescription(
|
||||||
@ -43,7 +41,7 @@ SENSOR_VEDO_TYPES: Final = (
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit sensors."""
|
"""Set up Comelit sensors."""
|
||||||
@ -56,12 +54,12 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
async def async_setup_bridge_entry(
|
async def async_setup_bridge_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit Bridge sensors."""
|
"""Set up Comelit Bridge sensors."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
entities: list[ComelitBridgeSensorEntity] = []
|
entities: list[ComelitBridgeSensorEntity] = []
|
||||||
for device in coordinator.data[OTHER].values():
|
for device in coordinator.data[OTHER].values():
|
||||||
@ -76,12 +74,12 @@ async def async_setup_bridge_entry(
|
|||||||
|
|
||||||
async def async_setup_vedo_entry(
|
async def async_setup_vedo_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit VEDO sensors."""
|
"""Set up Comelit VEDO sensors."""
|
||||||
|
|
||||||
coordinator: ComelitVedoSystem = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitVedoSystem, config_entry.runtime_data)
|
||||||
|
|
||||||
entities: list[ComelitVedoSensorEntity] = []
|
entities: list[ComelitVedoSensorEntity] = []
|
||||||
for device in coordinator.data[ALARM_ZONES].values():
|
for device in coordinator.data[ALARM_ZONES].values():
|
||||||
|
@ -2,29 +2,27 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any, cast
|
||||||
|
|
||||||
from aiocomelit import ComelitSerialBridgeObject
|
from aiocomelit import ComelitSerialBridgeObject
|
||||||
from aiocomelit.const import IRRIGATION, OTHER, STATE_OFF, STATE_ON
|
from aiocomelit.const import IRRIGATION, OTHER, STATE_OFF, STATE_ON
|
||||||
|
|
||||||
from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity
|
from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .coordinator import ComelitConfigEntry, ComelitSerialBridge
|
||||||
from .coordinator import ComelitSerialBridge
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
config_entry: ConfigEntry,
|
config_entry: ComelitConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Comelit switches."""
|
"""Set up Comelit switches."""
|
||||||
|
|
||||||
coordinator: ComelitSerialBridge = hass.data[DOMAIN][config_entry.entry_id]
|
coordinator = cast(ComelitSerialBridge, config_entry.runtime_data)
|
||||||
|
|
||||||
entities: list[ComelitSwitchEntity] = []
|
entities: list[ComelitSwitchEntity] = []
|
||||||
entities.extend(
|
entities.extend(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user