mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Use config entry runtime data in Sensibo (#116530)
* Use config entry runtime data in Sensibo * Add typing * Fixes coordinator * Move import
This commit is contained in:
parent
b2c1cd3e2a
commit
5e9a864f5b
@ -15,13 +15,15 @@ from .const import DOMAIN, LOGGER, PLATFORMS
|
|||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .util import NoDevicesError, NoUsernameError, async_validate_api
|
from .util import NoDevicesError, NoUsernameError, async_validate_api
|
||||||
|
|
||||||
|
SensiboConfigEntry = ConfigEntry["SensiboDataUpdateCoordinator"]
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|
||||||
|
async def async_setup_entry(hass: HomeAssistant, entry: SensiboConfigEntry) -> bool:
|
||||||
"""Set up Sensibo from a config entry."""
|
"""Set up Sensibo from a config entry."""
|
||||||
|
|
||||||
coordinator = SensiboDataUpdateCoordinator(hass, entry)
|
coordinator = SensiboDataUpdateCoordinator(hass)
|
||||||
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)
|
||||||
|
|
||||||
@ -30,11 +32,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||||
"""Unload Sensibo config entry."""
|
"""Unload Sensibo config entry."""
|
||||||
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
|
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
del hass.data[DOMAIN][entry.entry_id]
|
|
||||||
if not hass.data[DOMAIN]:
|
|
||||||
del hass.data[DOMAIN]
|
|
||||||
return unload_ok
|
|
||||||
|
|
||||||
|
|
||||||
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||||
|
@ -13,12 +13,11 @@ from homeassistant.components.binary_sensor import (
|
|||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
BinarySensorEntityDescription,
|
BinarySensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import EntityCategory
|
from homeassistant.const import EntityCategory
|
||||||
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 .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, SensiboMotionBaseEntity
|
from .entity import SensiboDeviceBaseEntity, SensiboMotionBaseEntity
|
||||||
|
|
||||||
@ -115,11 +114,13 @@ DESCRIPTION_BY_MODELS = {"pure": PURE_SENSOR_TYPES}
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo binary sensor platform."""
|
"""Set up Sensibo binary sensor platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
entities: list[SensiboMotionSensor | SensiboDeviceSensor] = []
|
entities: list[SensiboMotionSensor | SensiboDeviceSensor] = []
|
||||||
|
|
||||||
|
@ -6,12 +6,11 @@ from dataclasses import dataclass
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
|
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import EntityCategory
|
from homeassistant.const import EntityCategory
|
||||||
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 .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
||||||
|
|
||||||
@ -34,11 +33,13 @@ DEVICE_BUTTON_TYPES = SensiboButtonEntityDescription(
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo binary sensor platform."""
|
"""Set up Sensibo binary sensor platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
SensiboDeviceButton(coordinator, device_id, DEVICE_BUTTON_TYPES)
|
SensiboDeviceButton(coordinator, device_id, DEVICE_BUTTON_TYPES)
|
||||||
|
@ -14,7 +14,6 @@ from homeassistant.components.climate import (
|
|||||||
ClimateEntityFeature,
|
ClimateEntityFeature,
|
||||||
HVACMode,
|
HVACMode,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_MODE,
|
ATTR_MODE,
|
||||||
ATTR_STATE,
|
ATTR_STATE,
|
||||||
@ -28,6 +27,7 @@ from homeassistant.helpers import config_validation as cv, entity_platform
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.util.unit_conversion import TemperatureConverter
|
from homeassistant.util.unit_conversion import TemperatureConverter
|
||||||
|
|
||||||
|
from . import SensiboConfigEntry
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
||||||
@ -117,11 +117,13 @@ def _find_valid_target_temp(target: int, valid_targets: list[int]) -> int:
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up the Sensibo climate entry."""
|
"""Set up the Sensibo climate entry."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
entities = [
|
entities = [
|
||||||
SensiboClimate(coordinator, device_id)
|
SensiboClimate(coordinator, device_id)
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from pysensibo import SensiboClient
|
from pysensibo import SensiboClient
|
||||||
from pysensibo.exceptions import AuthenticationError, SensiboError
|
from pysensibo.exceptions import AuthenticationError, SensiboError
|
||||||
from pysensibo.model import SensiboData
|
from pysensibo.model import SensiboData
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_API_KEY
|
from homeassistant.const import CONF_API_KEY
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import ConfigEntryAuthFailed
|
from homeassistant.exceptions import ConfigEntryAuthFailed
|
||||||
@ -18,19 +18,19 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
|
|||||||
|
|
||||||
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, LOGGER, TIMEOUT
|
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, LOGGER, TIMEOUT
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from . import SensiboConfigEntry
|
||||||
|
|
||||||
REQUEST_REFRESH_DELAY = 0.35
|
REQUEST_REFRESH_DELAY = 0.35
|
||||||
|
|
||||||
|
|
||||||
class SensiboDataUpdateCoordinator(DataUpdateCoordinator[SensiboData]):
|
class SensiboDataUpdateCoordinator(DataUpdateCoordinator[SensiboData]):
|
||||||
"""A Sensibo Data Update Coordinator."""
|
"""A Sensibo Data Update Coordinator."""
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
|
config_entry: SensiboConfigEntry
|
||||||
|
|
||||||
|
def __init__(self, hass: HomeAssistant) -> None:
|
||||||
"""Initialize the Sensibo coordinator."""
|
"""Initialize the Sensibo coordinator."""
|
||||||
self.client = SensiboClient(
|
|
||||||
entry.data[CONF_API_KEY],
|
|
||||||
session=async_get_clientsession(hass),
|
|
||||||
timeout=TIMEOUT,
|
|
||||||
)
|
|
||||||
super().__init__(
|
super().__init__(
|
||||||
hass,
|
hass,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
@ -42,10 +42,14 @@ class SensiboDataUpdateCoordinator(DataUpdateCoordinator[SensiboData]):
|
|||||||
hass, LOGGER, cooldown=REQUEST_REFRESH_DELAY, immediate=False
|
hass, LOGGER, cooldown=REQUEST_REFRESH_DELAY, immediate=False
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
self.client = SensiboClient(
|
||||||
|
self.config_entry.data[CONF_API_KEY],
|
||||||
|
session=async_get_clientsession(hass),
|
||||||
|
timeout=TIMEOUT,
|
||||||
|
)
|
||||||
|
|
||||||
async def _async_update_data(self) -> SensiboData:
|
async def _async_update_data(self) -> SensiboData:
|
||||||
"""Fetch data from Sensibo."""
|
"""Fetch data from Sensibo."""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = await self.client.async_get_devices_data()
|
data = await self.client.async_get_devices_data()
|
||||||
except AuthenticationError as error:
|
except AuthenticationError as error:
|
||||||
|
@ -5,11 +5,9 @@ from __future__ import annotations
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.components.diagnostics.util import async_redact_data
|
from homeassistant.components.diagnostics.util import async_redact_data
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
|
||||||
|
|
||||||
TO_REDACT = {
|
TO_REDACT = {
|
||||||
"location",
|
"location",
|
||||||
@ -31,10 +29,10 @@ TO_REDACT = {
|
|||||||
|
|
||||||
|
|
||||||
async def async_get_config_entry_diagnostics(
|
async def async_get_config_entry_diagnostics(
|
||||||
hass: HomeAssistant, entry: ConfigEntry
|
hass: HomeAssistant, entry: SensiboConfigEntry
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Return diagnostics for Sensibo config entry."""
|
"""Return diagnostics for Sensibo config entry."""
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
diag_data = {}
|
diag_data = {}
|
||||||
diag_data["raw"] = async_redact_data(coordinator.data.raw, TO_REDACT)
|
diag_data["raw"] = async_redact_data(coordinator.data.raw, TO_REDACT)
|
||||||
for device, device_data in coordinator.data.parsed.items():
|
for device, device_data in coordinator.data.parsed.items():
|
||||||
|
@ -13,12 +13,11 @@ from homeassistant.components.number import (
|
|||||||
NumberEntity,
|
NumberEntity,
|
||||||
NumberEntityDescription,
|
NumberEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfTemperature
|
from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfTemperature
|
||||||
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 .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
||||||
|
|
||||||
@ -64,11 +63,13 @@ DEVICE_NUMBER_TYPES = (
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo number platform."""
|
"""Set up Sensibo number platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
SensiboNumber(coordinator, device_id, description)
|
SensiboNumber(coordinator, device_id, description)
|
||||||
|
@ -9,11 +9,11 @@ from typing import TYPE_CHECKING, Any
|
|||||||
from pysensibo.model import SensiboDevice
|
from pysensibo.model import SensiboDevice
|
||||||
|
|
||||||
from homeassistant.components.select import SelectEntity, SelectEntityDescription
|
from homeassistant.components.select import SelectEntity, SelectEntityDescription
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
|
from . import SensiboConfigEntry
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
||||||
@ -52,11 +52,13 @@ DEVICE_SELECT_TYPES = (
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo number platform."""
|
"""Set up Sensibo number platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
SensiboSelect(coordinator, device_id, description)
|
SensiboSelect(coordinator, device_id, description)
|
||||||
|
@ -15,7 +15,6 @@ from homeassistant.components.sensor import (
|
|||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
SensorStateClass,
|
SensorStateClass,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
CONCENTRATION_PARTS_PER_BILLION,
|
CONCENTRATION_PARTS_PER_BILLION,
|
||||||
@ -30,7 +29,7 @@ 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 .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, SensiboMotionBaseEntity
|
from .entity import SensiboDeviceBaseEntity, SensiboMotionBaseEntity
|
||||||
|
|
||||||
@ -231,11 +230,13 @@ DESCRIPTION_BY_MODELS = {
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo sensor platform."""
|
"""Set up Sensibo sensor platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
entities: list[SensiboMotionSensor | SensiboDeviceSensor] = []
|
entities: list[SensiboMotionSensor | SensiboDeviceSensor] = []
|
||||||
|
|
||||||
|
@ -13,11 +13,11 @@ from homeassistant.components.switch import (
|
|||||||
SwitchEntity,
|
SwitchEntity,
|
||||||
SwitchEntityDescription,
|
SwitchEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
|
from . import SensiboConfigEntry
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
from .entity import SensiboDeviceBaseEntity, async_handle_api_call
|
||||||
@ -76,11 +76,13 @@ DESCRIPTION_BY_MODELS = {"pure": PURE_SWITCH_TYPES}
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo Switch platform."""
|
"""Set up Sensibo Switch platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
SensiboDeviceSwitch(coordinator, device_id, description)
|
SensiboDeviceSwitch(coordinator, device_id, description)
|
||||||
|
@ -12,12 +12,11 @@ from homeassistant.components.update import (
|
|||||||
UpdateEntity,
|
UpdateEntity,
|
||||||
UpdateEntityDescription,
|
UpdateEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import EntityCategory
|
from homeassistant.const import EntityCategory
|
||||||
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 .const import DOMAIN
|
from . import SensiboConfigEntry
|
||||||
from .coordinator import SensiboDataUpdateCoordinator
|
from .coordinator import SensiboDataUpdateCoordinator
|
||||||
from .entity import SensiboDeviceBaseEntity
|
from .entity import SensiboDeviceBaseEntity
|
||||||
|
|
||||||
@ -44,11 +43,13 @@ DEVICE_SENSOR_TYPES: tuple[SensiboDeviceUpdateEntityDescription, ...] = (
|
|||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant,
|
||||||
|
entry: SensiboConfigEntry,
|
||||||
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Sensibo Update platform."""
|
"""Set up Sensibo Update platform."""
|
||||||
|
|
||||||
coordinator: SensiboDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
coordinator = entry.runtime_data
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
SensiboDeviceUpdate(coordinator, device_id, description)
|
SensiboDeviceUpdate(coordinator, device_id, description)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user