diff --git a/homeassistant/components/advantage_air/__init__.py b/homeassistant/components/advantage_air/__init__.py index c89d6f609b8..75ce6016b80 100644 --- a/homeassistant/components/advantage_air/__init__.py +++ b/homeassistant/components/advantage_air/__init__.py @@ -12,9 +12,11 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.debounce import Debouncer from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -from .const import ADVANTAGE_AIR_RETRY, DOMAIN +from .const import ADVANTAGE_AIR_RETRY from .models import AdvantageAirData +AdvantageAirDataConfigEntry = ConfigEntry[AdvantageAirData] + ADVANTAGE_AIR_SYNC_INTERVAL = 15 PLATFORMS = [ Platform.BINARY_SENSOR, @@ -31,7 +33,9 @@ _LOGGER = logging.getLogger(__name__) REQUEST_REFRESH_DELAY = 0.5 -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_setup_entry( + hass: HomeAssistant, entry: AdvantageAirDataConfigEntry +) -> bool: """Set up Advantage Air config.""" ip_address = entry.data[CONF_IP_ADDRESS] port = entry.data[CONF_PORT] @@ -61,19 +65,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: await coordinator.async_config_entry_first_refresh() - hass.data.setdefault(DOMAIN, {}) - hass.data[DOMAIN][entry.entry_id] = AdvantageAirData(coordinator, api) + entry.runtime_data = AdvantageAirData(coordinator, api) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry( + hass: HomeAssistant, entry: AdvantageAirDataConfigEntry +) -> bool: """Unload Advantage Air Config.""" - unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) - - if unload_ok: - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/homeassistant/components/advantage_air/binary_sensor.py b/homeassistant/components/advantage_air/binary_sensor.py index cf813a429e5..2ad8c2217a2 100644 --- a/homeassistant/components/advantage_air/binary_sensor.py +++ b/homeassistant/components/advantage_air/binary_sensor.py @@ -6,12 +6,11 @@ from homeassistant.components.binary_sensor import ( BinarySensorDeviceClass, BinarySensorEntity, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN +from . import AdvantageAirDataConfigEntry from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity from .models import AdvantageAirData @@ -20,12 +19,12 @@ PARALLEL_UPDATES = 0 async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir Binary Sensor platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[BinarySensorEntity] = [] if aircons := instance.coordinator.data.get("aircons"): diff --git a/homeassistant/components/advantage_air/climate.py b/homeassistant/components/advantage_air/climate.py index 49b8224a902..7f9d3f2dc65 100644 --- a/homeassistant/components/advantage_air/climate.py +++ b/homeassistant/components/advantage_air/climate.py @@ -16,19 +16,18 @@ from homeassistant.components.climate import ( ClimateEntityFeature, HVACMode, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTemperature from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import ServiceValidationError from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AdvantageAirDataConfigEntry from .const import ( ADVANTAGE_AIR_AUTOFAN_ENABLED, ADVANTAGE_AIR_STATE_CLOSE, ADVANTAGE_AIR_STATE_OFF, ADVANTAGE_AIR_STATE_ON, ADVANTAGE_AIR_STATE_OPEN, - DOMAIN as ADVANTAGE_AIR_DOMAIN, ) from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity from .models import AdvantageAirData @@ -76,12 +75,12 @@ _LOGGER = logging.getLogger(__name__) async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir climate platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[ClimateEntity] = [] if aircons := instance.coordinator.data.get("aircons"): diff --git a/homeassistant/components/advantage_air/cover.py b/homeassistant/components/advantage_air/cover.py index 3c6e3ffa3a6..b091f0077a1 100644 --- a/homeassistant/components/advantage_air/cover.py +++ b/homeassistant/components/advantage_air/cover.py @@ -8,15 +8,11 @@ from homeassistant.components.cover import ( CoverEntity, CoverEntityFeature, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import ( - ADVANTAGE_AIR_STATE_CLOSE, - ADVANTAGE_AIR_STATE_OPEN, - DOMAIN as ADVANTAGE_AIR_DOMAIN, -) +from . import AdvantageAirDataConfigEntry +from .const import ADVANTAGE_AIR_STATE_CLOSE, ADVANTAGE_AIR_STATE_OPEN from .entity import AdvantageAirThingEntity, AdvantageAirZoneEntity from .models import AdvantageAirData @@ -25,12 +21,12 @@ PARALLEL_UPDATES = 0 async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir cover platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[CoverEntity] = [] if aircons := instance.coordinator.data.get("aircons"): diff --git a/homeassistant/components/advantage_air/diagnostics.py b/homeassistant/components/advantage_air/diagnostics.py index 9eebb97d3c5..8d998d1ee90 100644 --- a/homeassistant/components/advantage_air/diagnostics.py +++ b/homeassistant/components/advantage_air/diagnostics.py @@ -5,10 +5,9 @@ from __future__ import annotations from typing import Any from homeassistant.components.diagnostics import async_redact_data -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant -from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN +from . import AdvantageAirDataConfigEntry TO_REDACT = [ "dealerPhoneNumber", @@ -25,10 +24,10 @@ TO_REDACT = [ async def async_get_config_entry_diagnostics( - hass: HomeAssistant, config_entry: ConfigEntry + hass: HomeAssistant, config_entry: AdvantageAirDataConfigEntry ) -> dict[str, Any]: """Return diagnostics for a config entry.""" - data = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id].coordinator.data + data = config_entry.runtime_data.coordinator.data # Return only the relevant children return { diff --git a/homeassistant/components/advantage_air/light.py b/homeassistant/components/advantage_air/light.py index 30617c52acf..7dd0a0a183b 100644 --- a/homeassistant/components/advantage_air/light.py +++ b/homeassistant/components/advantage_air/light.py @@ -3,11 +3,11 @@ from typing import Any from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AdvantageAirDataConfigEntry from .const import ADVANTAGE_AIR_STATE_ON, DOMAIN as ADVANTAGE_AIR_DOMAIN from .entity import AdvantageAirEntity, AdvantageAirThingEntity from .models import AdvantageAirData @@ -15,12 +15,12 @@ from .models import AdvantageAirData async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir light platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[LightEntity] = [] if my_lights := instance.coordinator.data.get("myLights"): diff --git a/homeassistant/components/advantage_air/select.py b/homeassistant/components/advantage_air/select.py index c3739717ef1..84c37f38d7f 100644 --- a/homeassistant/components/advantage_air/select.py +++ b/homeassistant/components/advantage_air/select.py @@ -1,11 +1,10 @@ """Select platform for Advantage Air integration.""" from homeassistant.components.select import SelectEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN +from . import AdvantageAirDataConfigEntry from .entity import AdvantageAirAcEntity from .models import AdvantageAirData @@ -14,12 +13,12 @@ ADVANTAGE_AIR_INACTIVE = "Inactive" async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir select platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data if aircons := instance.coordinator.data.get("aircons"): async_add_entities(AdvantageAirMyZone(instance, ac_key) for ac_key in aircons) diff --git a/homeassistant/components/advantage_air/sensor.py b/homeassistant/components/advantage_air/sensor.py index 6bfa6bbad4b..bd3fa970fb9 100644 --- a/homeassistant/components/advantage_air/sensor.py +++ b/homeassistant/components/advantage_air/sensor.py @@ -12,13 +12,13 @@ from homeassistant.components.sensor import ( SensorEntity, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import ADVANTAGE_AIR_STATE_OPEN, DOMAIN as ADVANTAGE_AIR_DOMAIN +from . import AdvantageAirDataConfigEntry +from .const import ADVANTAGE_AIR_STATE_OPEN from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity from .models import AdvantageAirData @@ -31,12 +31,12 @@ PARALLEL_UPDATES = 0 async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir sensor platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[SensorEntity] = [] if aircons := instance.coordinator.data.get("aircons"): diff --git a/homeassistant/components/advantage_air/switch.py b/homeassistant/components/advantage_air/switch.py index 6d21f2e705c..876875a2510 100644 --- a/homeassistant/components/advantage_air/switch.py +++ b/homeassistant/components/advantage_air/switch.py @@ -3,15 +3,14 @@ from typing import Any from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AdvantageAirDataConfigEntry from .const import ( ADVANTAGE_AIR_AUTOFAN_ENABLED, ADVANTAGE_AIR_STATE_OFF, ADVANTAGE_AIR_STATE_ON, - DOMAIN as ADVANTAGE_AIR_DOMAIN, ) from .entity import AdvantageAirAcEntity, AdvantageAirThingEntity from .models import AdvantageAirData @@ -19,12 +18,12 @@ from .models import AdvantageAirData async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir switch platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data entities: list[SwitchEntity] = [] if aircons := instance.coordinator.data.get("aircons"): diff --git a/homeassistant/components/advantage_air/update.py b/homeassistant/components/advantage_air/update.py index 8afde183110..b639e4df867 100644 --- a/homeassistant/components/advantage_air/update.py +++ b/homeassistant/components/advantage_air/update.py @@ -1,11 +1,11 @@ """Advantage Air Update platform.""" from homeassistant.components.update import UpdateEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AdvantageAirDataConfigEntry from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN from .entity import AdvantageAirEntity from .models import AdvantageAirData @@ -13,12 +13,12 @@ from .models import AdvantageAirData async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AdvantageAirDataConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up AdvantageAir update platform.""" - instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id] + instance = config_entry.runtime_data async_add_entities([AdvantageAirApp(instance)])