From 62b563eb60a689e6cc07b88edd75794fbe5f75df Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 11 Feb 2025 17:08:39 +0100 Subject: [PATCH] Use runtime_data in flexit_bacnet (#138280) --- .../components/flexit_bacnet/__init__.py | 15 +++++---------- .../components/flexit_bacnet/binary_sensor.py | 8 +++----- homeassistant/components/flexit_bacnet/climate.py | 10 +++------- .../components/flexit_bacnet/coordinator.py | 8 ++++++-- homeassistant/components/flexit_bacnet/number.py | 8 +++----- homeassistant/components/flexit_bacnet/sensor.py | 8 +++----- homeassistant/components/flexit_bacnet/switch.py | 8 +++----- 7 files changed, 26 insertions(+), 39 deletions(-) diff --git a/homeassistant/components/flexit_bacnet/__init__.py b/homeassistant/components/flexit_bacnet/__init__.py index b0ebc5a40fd..01e0051f53f 100644 --- a/homeassistant/components/flexit_bacnet/__init__.py +++ b/homeassistant/components/flexit_bacnet/__init__.py @@ -2,12 +2,10 @@ from __future__ import annotations -from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN -from .coordinator import FlexitCoordinator +from .coordinator import FlexitConfigEntry, FlexitCoordinator PLATFORMS: list[Platform] = [ Platform.BINARY_SENSOR, @@ -18,21 +16,18 @@ PLATFORMS: list[Platform] = [ ] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_setup_entry(hass: HomeAssistant, entry: FlexitConfigEntry) -> bool: """Set up Flexit Nordic (BACnet) from a config entry.""" coordinator = FlexitCoordinator(hass, entry) 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) return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: FlexitConfigEntry) -> bool: """Unload the Flexit Nordic (BACnet) config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - 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/flexit_bacnet/binary_sensor.py b/homeassistant/components/flexit_bacnet/binary_sensor.py index e122d0321e6..faee803e915 100644 --- a/homeassistant/components/flexit_bacnet/binary_sensor.py +++ b/homeassistant/components/flexit_bacnet/binary_sensor.py @@ -10,12 +10,10 @@ from homeassistant.components.binary_sensor import ( BinarySensorEntity, BinarySensorEntityDescription, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from . import FlexitCoordinator -from .const import DOMAIN +from .coordinator import FlexitConfigEntry, FlexitCoordinator from .entity import FlexitEntity @@ -38,11 +36,11 @@ SENSOR_TYPES: tuple[FlexitBinarySensorEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: FlexitConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up Flexit (bacnet) binary sensor from a config entry.""" - coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator = config_entry.runtime_data async_add_entities( FlexitBinarySensor(coordinator, description) for description in SENSOR_TYPES diff --git a/homeassistant/components/flexit_bacnet/climate.py b/homeassistant/components/flexit_bacnet/climate.py index 0a97500afb1..abfa59d0a6d 100644 --- a/homeassistant/components/flexit_bacnet/climate.py +++ b/homeassistant/components/flexit_bacnet/climate.py @@ -19,32 +19,28 @@ from homeassistant.components.climate import ( HVACAction, HVACMode, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, PRECISION_HALVES, UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from .const import ( - DOMAIN, MAX_TEMP, MIN_TEMP, PRESET_TO_VENTILATION_MODE_MAP, VENTILATION_TO_PRESET_MODE_MAP, ) -from .coordinator import FlexitCoordinator +from .coordinator import FlexitConfigEntry, FlexitCoordinator from .entity import FlexitEntity async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: FlexitConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up the Flexit Nordic unit.""" - coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] - - async_add_entities([FlexitClimateEntity(coordinator)]) + async_add_entities([FlexitClimateEntity(config_entry.runtime_data)]) class FlexitClimateEntity(FlexitEntity, ClimateEntity): diff --git a/homeassistant/components/flexit_bacnet/coordinator.py b/homeassistant/components/flexit_bacnet/coordinator.py index f723117c9ef..da9415f2b87 100644 --- a/homeassistant/components/flexit_bacnet/coordinator.py +++ b/homeassistant/components/flexit_bacnet/coordinator.py @@ -1,5 +1,7 @@ """DataUpdateCoordinator for Flexit Nordic (BACnet) integration..""" +from __future__ import annotations + import asyncio.exceptions from datetime import timedelta import logging @@ -17,13 +19,15 @@ from .const import DOMAIN _LOGGER = logging.getLogger(__name__) +type FlexitConfigEntry = ConfigEntry[FlexitCoordinator] + class FlexitCoordinator(DataUpdateCoordinator[FlexitBACnet]): """Class to manage fetching data from a Flexit Nordic (BACnet) device.""" - config_entry: ConfigEntry + config_entry: FlexitConfigEntry - def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry) -> None: + def __init__(self, hass: HomeAssistant, config_entry: FlexitConfigEntry) -> None: """Initialize my coordinator.""" super().__init__( hass, diff --git a/homeassistant/components/flexit_bacnet/number.py b/homeassistant/components/flexit_bacnet/number.py index e8fbce54b74..dfcfc193692 100644 --- a/homeassistant/components/flexit_bacnet/number.py +++ b/homeassistant/components/flexit_bacnet/number.py @@ -13,14 +13,12 @@ from homeassistant.components.number import ( NumberEntityDescription, NumberMode, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE, UnitOfTime from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from . import FlexitCoordinator -from .const import DOMAIN +from .coordinator import FlexitConfigEntry, FlexitCoordinator from .entity import FlexitEntity _MAX_FAN_SETPOINT = 100 @@ -196,11 +194,11 @@ NUMBERS: tuple[FlexitNumberEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: FlexitConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up Flexit (bacnet) number from a config entry.""" - coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator = config_entry.runtime_data async_add_entities( FlexitNumber(coordinator, description) for description in NUMBERS diff --git a/homeassistant/components/flexit_bacnet/sensor.py b/homeassistant/components/flexit_bacnet/sensor.py index a14c7559945..23d8f20da36 100644 --- a/homeassistant/components/flexit_bacnet/sensor.py +++ b/homeassistant/components/flexit_bacnet/sensor.py @@ -11,7 +11,6 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( PERCENTAGE, REVOLUTIONS_PER_MINUTE, @@ -23,8 +22,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import StateType -from . import FlexitCoordinator -from .const import DOMAIN +from .coordinator import FlexitConfigEntry, FlexitCoordinator from .entity import FlexitEntity @@ -152,11 +150,11 @@ SENSOR_TYPES: tuple[FlexitSensorEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: FlexitConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up Flexit (bacnet) sensor from a config entry.""" - coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator = config_entry.runtime_data async_add_entities( FlexitSensor(coordinator, description) for description in SENSOR_TYPES diff --git a/homeassistant/components/flexit_bacnet/switch.py b/homeassistant/components/flexit_bacnet/switch.py index af6066410a1..283d0e1ec3b 100644 --- a/homeassistant/components/flexit_bacnet/switch.py +++ b/homeassistant/components/flexit_bacnet/switch.py @@ -13,13 +13,11 @@ from homeassistant.components.switch import ( SwitchEntity, SwitchEntityDescription, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from . import FlexitCoordinator -from .const import DOMAIN +from .coordinator import FlexitConfigEntry, FlexitCoordinator from .entity import FlexitEntity @@ -59,11 +57,11 @@ SWITCHES: tuple[FlexitSwitchEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: FlexitConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up Flexit (bacnet) switch from a config entry.""" - coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator = config_entry.runtime_data async_add_entities( FlexitSwitch(coordinator, description) for description in SWITCHES