From 64d9fac6dba0772b579469b96518ce2780ff0cf8 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Thu, 2 May 2024 13:40:49 +0200 Subject: [PATCH] Use runtime_data for acmeda (#116606) --- homeassistant/components/acmeda/__init__.py | 18 ++++++++++-------- homeassistant/components/acmeda/cover.py | 9 ++++----- homeassistant/components/acmeda/helpers.py | 9 +++++++-- homeassistant/components/acmeda/sensor.py | 9 ++++----- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/acmeda/__init__.py b/homeassistant/components/acmeda/__init__.py index b4a0f237522..418e8997239 100644 --- a/homeassistant/components/acmeda/__init__.py +++ b/homeassistant/components/acmeda/__init__.py @@ -4,30 +4,35 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN from .hub import PulseHub CONF_HUBS = "hubs" PLATFORMS = [Platform.COVER, Platform.SENSOR] +AcmedaConfigEntry = ConfigEntry[PulseHub] -async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: + +async def async_setup_entry( + hass: HomeAssistant, config_entry: AcmedaConfigEntry +) -> bool: """Set up Rollease Acmeda Automate hub from a config entry.""" hub = PulseHub(hass, config_entry) if not await hub.async_setup(): return False - hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = hub + config_entry.runtime_data = hub await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS) return True -async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: +async def async_unload_entry( + hass: HomeAssistant, config_entry: AcmedaConfigEntry +) -> bool: """Unload a config entry.""" - hub = hass.data[DOMAIN][config_entry.entry_id] + hub = config_entry.runtime_data unload_ok = await hass.config_entries.async_unload_platforms( config_entry, PLATFORMS @@ -36,7 +41,4 @@ async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> if not await hub.async_reset(): return False - if unload_ok: - hass.data[DOMAIN].pop(config_entry.entry_id) - return unload_ok diff --git a/homeassistant/components/acmeda/cover.py b/homeassistant/components/acmeda/cover.py index f8116221668..d96675de10c 100644 --- a/homeassistant/components/acmeda/cover.py +++ b/homeassistant/components/acmeda/cover.py @@ -9,24 +9,23 @@ from homeassistant.components.cover import ( CoverEntity, CoverEntityFeature, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AcmedaConfigEntry from .base import AcmedaBase -from .const import ACMEDA_HUB_UPDATE, DOMAIN +from .const import ACMEDA_HUB_UPDATE from .helpers import async_add_acmeda_entities -from .hub import PulseHub async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AcmedaConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up the Acmeda Rollers from a config entry.""" - hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id] + hub = config_entry.runtime_data current: set[int] = set() diff --git a/homeassistant/components/acmeda/helpers.py b/homeassistant/components/acmeda/helpers.py index 9e48124208a..52af7d586de 100644 --- a/homeassistant/components/acmeda/helpers.py +++ b/homeassistant/components/acmeda/helpers.py @@ -2,6 +2,8 @@ from __future__ import annotations +from typing import TYPE_CHECKING + from aiopulse import Roller from homeassistant.config_entries import ConfigEntry @@ -11,17 +13,20 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN, LOGGER +if TYPE_CHECKING: + from . import AcmedaConfigEntry + @callback def async_add_acmeda_entities( hass: HomeAssistant, entity_class: type, - config_entry: ConfigEntry, + config_entry: AcmedaConfigEntry, current: set[int], async_add_entities: AddEntitiesCallback, ) -> None: """Add any new entities.""" - hub = hass.data[DOMAIN][config_entry.entry_id] + hub = config_entry.runtime_data LOGGER.debug("Looking for new %s on: %s", entity_class.__name__, hub.host) api = hub.api.rollers diff --git a/homeassistant/components/acmeda/sensor.py b/homeassistant/components/acmeda/sensor.py index 0b458a8c32a..be9f37b03dc 100644 --- a/homeassistant/components/acmeda/sensor.py +++ b/homeassistant/components/acmeda/sensor.py @@ -3,25 +3,24 @@ from __future__ import annotations from homeassistant.components.sensor import SensorDeviceClass, SensorEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddEntitiesCallback +from . import AcmedaConfigEntry from .base import AcmedaBase -from .const import ACMEDA_HUB_UPDATE, DOMAIN +from .const import ACMEDA_HUB_UPDATE from .helpers import async_add_acmeda_entities -from .hub import PulseHub async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: AcmedaConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up the Acmeda Rollers from a config entry.""" - hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id] + hub = config_entry.runtime_data current: set[int] = set()