Use runtime_data in flexit_bacnet (#138280)

This commit is contained in:
epenet 2025-02-11 17:08:39 +01:00 committed by GitHub
parent df4c718bac
commit 62b563eb60
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 26 additions and 39 deletions

View File

@ -2,12 +2,10 @@
from __future__ import annotations from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .const import DOMAIN from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .coordinator import FlexitCoordinator
PLATFORMS: list[Platform] = [ PLATFORMS: list[Platform] = [
Platform.BINARY_SENSOR, 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.""" """Set up Flexit Nordic (BACnet) from a config entry."""
coordinator = FlexitCoordinator(hass, entry) coordinator = FlexitCoordinator(hass, entry)
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: FlexitConfigEntry) -> bool:
"""Unload the Flexit Nordic (BACnet) config entry.""" """Unload the Flexit Nordic (BACnet) config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok

View File

@ -10,12 +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 . import FlexitCoordinator from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .const import DOMAIN
from .entity import FlexitEntity from .entity import FlexitEntity
@ -38,11 +36,11 @@ SENSOR_TYPES: tuple[FlexitBinarySensorEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: FlexitConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up Flexit (bacnet) binary sensor from a config entry.""" """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( async_add_entities(
FlexitBinarySensor(coordinator, description) for description in SENSOR_TYPES FlexitBinarySensor(coordinator, description) for description in SENSOR_TYPES

View File

@ -19,32 +19,28 @@ from homeassistant.components.climate import (
HVACAction, HVACAction,
HVACMode, HVACMode,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_HALVES, UnitOfTemperature from homeassistant.const import ATTR_TEMPERATURE, PRECISION_HALVES, UnitOfTemperature
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 AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .const import ( from .const import (
DOMAIN,
MAX_TEMP, MAX_TEMP,
MIN_TEMP, MIN_TEMP,
PRESET_TO_VENTILATION_MODE_MAP, PRESET_TO_VENTILATION_MODE_MAP,
VENTILATION_TO_PRESET_MODE_MAP, VENTILATION_TO_PRESET_MODE_MAP,
) )
from .coordinator import FlexitCoordinator from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .entity import FlexitEntity from .entity import FlexitEntity
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: FlexitConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up the Flexit Nordic unit.""" """Set up the Flexit Nordic unit."""
coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id] async_add_entities([FlexitClimateEntity(config_entry.runtime_data)])
async_add_entities([FlexitClimateEntity(coordinator)])
class FlexitClimateEntity(FlexitEntity, ClimateEntity): class FlexitClimateEntity(FlexitEntity, ClimateEntity):

View File

@ -1,5 +1,7 @@
"""DataUpdateCoordinator for Flexit Nordic (BACnet) integration..""" """DataUpdateCoordinator for Flexit Nordic (BACnet) integration.."""
from __future__ import annotations
import asyncio.exceptions import asyncio.exceptions
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -17,13 +19,15 @@ from .const import DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
type FlexitConfigEntry = ConfigEntry[FlexitCoordinator]
class FlexitCoordinator(DataUpdateCoordinator[FlexitBACnet]): class FlexitCoordinator(DataUpdateCoordinator[FlexitBACnet]):
"""Class to manage fetching data from a Flexit Nordic (BACnet) device.""" """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.""" """Initialize my coordinator."""
super().__init__( super().__init__(
hass, hass,

View File

@ -13,14 +13,12 @@ from homeassistant.components.number import (
NumberEntityDescription, NumberEntityDescription,
NumberMode, NumberMode,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE, UnitOfTime from homeassistant.const import PERCENTAGE, UnitOfTime
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 AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import FlexitCoordinator from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .const import DOMAIN
from .entity import FlexitEntity from .entity import FlexitEntity
_MAX_FAN_SETPOINT = 100 _MAX_FAN_SETPOINT = 100
@ -196,11 +194,11 @@ NUMBERS: tuple[FlexitNumberEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: FlexitConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up Flexit (bacnet) number from a config entry.""" """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( async_add_entities(
FlexitNumber(coordinator, description) for description in NUMBERS FlexitNumber(coordinator, description) for description in NUMBERS

View File

@ -11,7 +11,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,
REVOLUTIONS_PER_MINUTE, REVOLUTIONS_PER_MINUTE,
@ -23,8 +22,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 . import FlexitCoordinator from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .const import DOMAIN
from .entity import FlexitEntity from .entity import FlexitEntity
@ -152,11 +150,11 @@ SENSOR_TYPES: tuple[FlexitSensorEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: FlexitConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up Flexit (bacnet) sensor from a config entry.""" """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( async_add_entities(
FlexitSensor(coordinator, description) for description in SENSOR_TYPES FlexitSensor(coordinator, description) for description in SENSOR_TYPES

View File

@ -13,13 +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 AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import FlexitCoordinator from .coordinator import FlexitConfigEntry, FlexitCoordinator
from .const import DOMAIN
from .entity import FlexitEntity from .entity import FlexitEntity
@ -59,11 +57,11 @@ SWITCHES: tuple[FlexitSwitchEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: FlexitConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up Flexit (bacnet) switch from a config entry.""" """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( async_add_entities(
FlexitSwitch(coordinator, description) for description in SWITCHES FlexitSwitch(coordinator, description) for description in SWITCHES