mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Use runtime_data in hive (#144367)
This commit is contained in:
parent
fbe63e8d03
commit
1322d54371
@ -24,11 +24,11 @@ from .entity import HiveEntity
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
type HiveConfigEntry = ConfigEntry[Hive]
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|
||||||
|
async def async_setup_entry(hass: HomeAssistant, entry: HiveConfigEntry) -> bool:
|
||||||
"""Set up Hive from a config entry."""
|
"""Set up Hive from a config entry."""
|
||||||
hass.data.setdefault(DOMAIN, {})
|
|
||||||
|
|
||||||
web_session = aiohttp_client.async_get_clientsession(hass)
|
web_session = aiohttp_client.async_get_clientsession(hass)
|
||||||
hive_config = dict(entry.data)
|
hive_config = dict(entry.data)
|
||||||
hive = Hive(web_session)
|
hive = Hive(web_session)
|
||||||
@ -37,7 +37,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
hive_config["options"].update(
|
hive_config["options"].update(
|
||||||
{CONF_SCAN_INTERVAL: dict(entry.options).get(CONF_SCAN_INTERVAL, 120)}
|
{CONF_SCAN_INTERVAL: dict(entry.options).get(CONF_SCAN_INTERVAL, 120)}
|
||||||
)
|
)
|
||||||
hass.data[DOMAIN][entry.entry_id] = hive
|
entry.runtime_data = hive
|
||||||
|
|
||||||
try:
|
try:
|
||||||
devices = await hive.session.startSession(hive_config)
|
devices = await hive.session.startSession(hive_config)
|
||||||
@ -59,16 +59,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_unload_entry(hass: HomeAssistant, entry: HiveConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
if unload_ok:
|
|
||||||
hass.data[DOMAIN].pop(entry.entry_id)
|
|
||||||
|
|
||||||
return unload_ok
|
|
||||||
|
|
||||||
|
|
||||||
async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
async def async_remove_entry(hass: HomeAssistant, entry: HiveConfigEntry) -> None:
|
||||||
"""Remove a config entry."""
|
"""Remove a config entry."""
|
||||||
hive = Auth(entry.data["username"], entry.data["password"])
|
hive = Auth(entry.data["username"], entry.data["password"])
|
||||||
await hive.forget_device(
|
await hive.forget_device(
|
||||||
@ -78,7 +74,7 @@ async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
|||||||
|
|
||||||
|
|
||||||
async def async_remove_config_entry_device(
|
async def async_remove_config_entry_device(
|
||||||
hass: HomeAssistant, config_entry: ConfigEntry, device_entry: DeviceEntry
|
hass: HomeAssistant, config_entry: HiveConfigEntry, device_entry: DeviceEntry
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Remove a config entry from a device."""
|
"""Remove a config entry from a device."""
|
||||||
return True
|
return True
|
||||||
|
@ -9,11 +9,10 @@ from homeassistant.components.alarm_control_panel import (
|
|||||||
AlarmControlPanelEntityFeature,
|
AlarmControlPanelEntityFeature,
|
||||||
AlarmControlPanelState,
|
AlarmControlPanelState,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from .const import DOMAIN
|
from . import HiveConfigEntry
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
@ -28,12 +27,12 @@ HIVETOHA = {
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
if devices := hive.session.deviceList.get("alarm_control_panel"):
|
if devices := hive.session.deviceList.get("alarm_control_panel"):
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
[HiveAlarmControlPanelEntity(hive, dev) for dev in devices], True
|
[HiveAlarmControlPanelEntity(hive, dev) for dev in devices], True
|
||||||
|
@ -10,11 +10,10 @@ from homeassistant.components.binary_sensor import (
|
|||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
BinarySensorEntityDescription,
|
BinarySensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from .const import DOMAIN
|
from . import HiveConfigEntry
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
@ -69,12 +68,12 @@ SENSOR_TYPES: tuple[BinarySensorEntityDescription, ...] = (
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
|
|
||||||
sensors: list[BinarySensorEntity] = []
|
sensors: list[BinarySensorEntity] = []
|
||||||
|
|
||||||
|
@ -15,19 +15,13 @@ from homeassistant.components.climate import (
|
|||||||
HVACAction,
|
HVACAction,
|
||||||
HVACMode,
|
HVACMode,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
|
from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import config_validation as cv, entity_platform
|
from homeassistant.helpers import config_validation as cv, entity_platform
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from . import refresh_system
|
from . import HiveConfigEntry, refresh_system
|
||||||
from .const import (
|
from .const import ATTR_TIME_PERIOD, SERVICE_BOOST_HEATING_OFF, SERVICE_BOOST_HEATING_ON
|
||||||
ATTR_TIME_PERIOD,
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_BOOST_HEATING_OFF,
|
|
||||||
SERVICE_BOOST_HEATING_ON,
|
|
||||||
)
|
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
HIVE_TO_HASS_STATE = {
|
HIVE_TO_HASS_STATE = {
|
||||||
@ -59,12 +53,12 @@ _LOGGER = logging.getLogger()
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
devices = hive.session.deviceList.get("climate")
|
devices = hive.session.deviceList.get("climate")
|
||||||
if devices:
|
if devices:
|
||||||
async_add_entities((HiveClimateEntity(hive, dev) for dev in devices), True)
|
async_add_entities((HiveClimateEntity(hive, dev) for dev in devices), True)
|
||||||
|
@ -16,7 +16,6 @@ import voluptuous as vol
|
|||||||
|
|
||||||
from homeassistant.config_entries import (
|
from homeassistant.config_entries import (
|
||||||
SOURCE_REAUTH,
|
SOURCE_REAUTH,
|
||||||
ConfigEntry,
|
|
||||||
ConfigFlow,
|
ConfigFlow,
|
||||||
ConfigFlowResult,
|
ConfigFlowResult,
|
||||||
OptionsFlow,
|
OptionsFlow,
|
||||||
@ -24,6 +23,7 @@ from homeassistant.config_entries import (
|
|||||||
from homeassistant.const import CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_USERNAME
|
from homeassistant.const import CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_USERNAME
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
|
||||||
|
from . import HiveConfigEntry
|
||||||
from .const import CONF_CODE, CONF_DEVICE_NAME, CONFIG_ENTRY_VERSION, DOMAIN
|
from .const import CONF_CODE, CONF_DEVICE_NAME, CONFIG_ENTRY_VERSION, DOMAIN
|
||||||
|
|
||||||
|
|
||||||
@ -37,7 +37,6 @@ class HiveFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
"""Initialize the config flow."""
|
"""Initialize the config flow."""
|
||||||
self.data: dict[str, Any] = {}
|
self.data: dict[str, Any] = {}
|
||||||
self.tokens: dict[str, str] = {}
|
self.tokens: dict[str, str] = {}
|
||||||
self.entry: ConfigEntry | None = None
|
|
||||||
self.device_registration: bool = False
|
self.device_registration: bool = False
|
||||||
self.device_name = "Home Assistant"
|
self.device_name = "Home Assistant"
|
||||||
|
|
||||||
@ -54,7 +53,7 @@ class HiveFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Get user from existing entry and abort if already setup
|
# Get user from existing entry and abort if already setup
|
||||||
self.entry = await self.async_set_unique_id(self.data[CONF_USERNAME])
|
await self.async_set_unique_id(self.data[CONF_USERNAME])
|
||||||
if self.context["source"] != SOURCE_REAUTH:
|
if self.context["source"] != SOURCE_REAUTH:
|
||||||
self._abort_if_unique_id_configured()
|
self._abort_if_unique_id_configured()
|
||||||
|
|
||||||
@ -145,12 +144,12 @@ class HiveFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
# Setup the config entry
|
# Setup the config entry
|
||||||
self.data["tokens"] = self.tokens
|
self.data["tokens"] = self.tokens
|
||||||
if self.source == SOURCE_REAUTH:
|
if self.source == SOURCE_REAUTH:
|
||||||
assert self.entry
|
return self.async_update_reload_and_abort(
|
||||||
self.hass.config_entries.async_update_entry(
|
self._get_reauth_entry(),
|
||||||
self.entry, title=self.data["username"], data=self.data
|
title=self.data["username"],
|
||||||
|
data=self.data,
|
||||||
|
reason="reauth_successful",
|
||||||
)
|
)
|
||||||
await self.hass.config_entries.async_reload(self.entry.entry_id)
|
|
||||||
return self.async_abort(reason="reauth_successful")
|
|
||||||
return self.async_create_entry(title=self.data["username"], data=self.data)
|
return self.async_create_entry(title=self.data["username"], data=self.data)
|
||||||
|
|
||||||
async def async_step_reauth(
|
async def async_step_reauth(
|
||||||
@ -166,7 +165,7 @@ class HiveFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
@callback
|
@callback
|
||||||
def async_get_options_flow(
|
def async_get_options_flow(
|
||||||
config_entry: ConfigEntry,
|
config_entry: HiveConfigEntry,
|
||||||
) -> HiveOptionsFlowHandler:
|
) -> HiveOptionsFlowHandler:
|
||||||
"""Hive options callback."""
|
"""Hive options callback."""
|
||||||
return HiveOptionsFlowHandler(config_entry)
|
return HiveOptionsFlowHandler(config_entry)
|
||||||
@ -175,7 +174,9 @@ class HiveFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
class HiveOptionsFlowHandler(OptionsFlow):
|
class HiveOptionsFlowHandler(OptionsFlow):
|
||||||
"""Config flow options for Hive."""
|
"""Config flow options for Hive."""
|
||||||
|
|
||||||
def __init__(self, config_entry: ConfigEntry) -> None:
|
config_entry: HiveConfigEntry
|
||||||
|
|
||||||
|
def __init__(self, config_entry: HiveConfigEntry) -> None:
|
||||||
"""Initialize Hive options flow."""
|
"""Initialize Hive options flow."""
|
||||||
self.hive = None
|
self.hive = None
|
||||||
self.interval = config_entry.options.get(CONF_SCAN_INTERVAL, 120)
|
self.interval = config_entry.options.get(CONF_SCAN_INTERVAL, 120)
|
||||||
@ -190,7 +191,7 @@ class HiveOptionsFlowHandler(OptionsFlow):
|
|||||||
self, user_input: dict[str, Any] | None = None
|
self, user_input: dict[str, Any] | None = None
|
||||||
) -> ConfigFlowResult:
|
) -> ConfigFlowResult:
|
||||||
"""Handle a flow initialized by the user."""
|
"""Handle a flow initialized by the user."""
|
||||||
self.hive = self.hass.data["hive"][self.config_entry.entry_id]
|
self.hive = self.config_entry.runtime_data
|
||||||
errors: dict[str, str] = {}
|
errors: dict[str, str] = {}
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
new_interval = user_input.get(CONF_SCAN_INTERVAL)
|
new_interval = user_input.get(CONF_SCAN_INTERVAL)
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import TYPE_CHECKING, Any
|
from typing import Any
|
||||||
|
|
||||||
|
from apyhiveapi import Hive
|
||||||
|
|
||||||
from homeassistant.components.light import (
|
from homeassistant.components.light import (
|
||||||
ATTR_BRIGHTNESS,
|
ATTR_BRIGHTNESS,
|
||||||
@ -12,30 +14,26 @@ from homeassistant.components.light import (
|
|||||||
ColorMode,
|
ColorMode,
|
||||||
LightEntity,
|
LightEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
from homeassistant.util import color as color_util
|
from homeassistant.util import color as color_util
|
||||||
|
|
||||||
from . import refresh_system
|
from . import HiveConfigEntry, refresh_system
|
||||||
from .const import ATTR_MODE, DOMAIN
|
from .const import ATTR_MODE
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from apyhiveapi import Hive
|
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
SCAN_INTERVAL = timedelta(seconds=15)
|
SCAN_INTERVAL = timedelta(seconds=15)
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive: Hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
devices = hive.session.deviceList.get("light")
|
devices = hive.session.deviceList.get("light")
|
||||||
if not devices:
|
if not devices:
|
||||||
return
|
return
|
||||||
|
@ -13,7 +13,6 @@ from homeassistant.components.sensor import (
|
|||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
SensorStateClass,
|
SensorStateClass,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
EntityCategory,
|
EntityCategory,
|
||||||
@ -24,7 +23,7 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
|
|
||||||
from .const import DOMAIN
|
from . import HiveConfigEntry
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
@ -90,11 +89,11 @@ SENSOR_TYPES: tuple[HiveSensorEntityDescription, ...] = (
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
devices = hive.session.deviceList.get("sensor")
|
devices = hive.session.deviceList.get("sensor")
|
||||||
if not devices:
|
if not devices:
|
||||||
return
|
return
|
||||||
|
@ -8,13 +8,12 @@ from typing import Any
|
|||||||
from apyhiveapi import Hive
|
from apyhiveapi import Hive
|
||||||
|
|
||||||
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
|
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
|
||||||
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 AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from . import refresh_system
|
from . import HiveConfigEntry, refresh_system
|
||||||
from .const import ATTR_MODE, DOMAIN
|
from .const import ATTR_MODE
|
||||||
from .entity import HiveEntity
|
from .entity import HiveEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
@ -34,12 +33,12 @@ SWITCH_TYPES: tuple[SwitchEntityDescription, ...] = (
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
devices = hive.session.deviceList.get("switch")
|
devices = hive.session.deviceList.get("switch")
|
||||||
if not devices:
|
if not devices:
|
||||||
return
|
return
|
||||||
|
@ -10,17 +10,15 @@ from homeassistant.components.water_heater import (
|
|||||||
WaterHeaterEntity,
|
WaterHeaterEntity,
|
||||||
WaterHeaterEntityFeature,
|
WaterHeaterEntityFeature,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import STATE_OFF, STATE_ON, UnitOfTemperature
|
from homeassistant.const import STATE_OFF, STATE_ON, UnitOfTemperature
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import config_validation as cv, entity_platform
|
from homeassistant.helpers import config_validation as cv, entity_platform
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from . import refresh_system
|
from . import HiveConfigEntry, refresh_system
|
||||||
from .const import (
|
from .const import (
|
||||||
ATTR_ONOFF,
|
ATTR_ONOFF,
|
||||||
ATTR_TIME_PERIOD,
|
ATTR_TIME_PERIOD,
|
||||||
DOMAIN,
|
|
||||||
SERVICE_BOOST_HOT_WATER,
|
SERVICE_BOOST_HOT_WATER,
|
||||||
WATER_HEATER_MODES,
|
WATER_HEATER_MODES,
|
||||||
)
|
)
|
||||||
@ -46,12 +44,12 @@ SUPPORT_WATER_HEATER = [STATE_ECO, STATE_ON, STATE_OFF]
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: HiveConfigEntry,
|
||||||
async_add_entities: AddConfigEntryEntitiesCallback,
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up Hive thermostat based on a config entry."""
|
"""Set up Hive thermostat based on a config entry."""
|
||||||
|
|
||||||
hive = hass.data[DOMAIN][entry.entry_id]
|
hive = entry.runtime_data
|
||||||
devices = hive.session.deviceList.get("water_heater")
|
devices = hive.session.deviceList.get("water_heater")
|
||||||
if devices:
|
if devices:
|
||||||
async_add_entities((HiveWaterHeater(hive, dev) for dev in devices), True)
|
async_add_entities((HiveWaterHeater(hive, dev) for dev in devices), True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user