From 434cd95a66de1c14503a1d3cca9357fd7043ad67 Mon Sep 17 00:00:00 2001 From: DeerMaximum <43999966+DeerMaximum@users.noreply.github.com> Date: Fri, 13 Jun 2025 18:47:21 +0200 Subject: [PATCH] Use ConfigEntry.runtime_data to store runtime data in NINA (#146754) Co-authored-by: Joost Lekkerkerker --- homeassistant/components/nina/__init__.py | 12 +++++------- homeassistant/components/nina/binary_sensor.py | 6 +++--- homeassistant/components/nina/coordinator.py | 2 ++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/nina/__init__.py b/homeassistant/components/nina/__init__.py index b02d6711e74..e074f7ad000 100644 --- a/homeassistant/components/nina/__init__.py +++ b/homeassistant/components/nina/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations -from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant @@ -11,15 +10,14 @@ from .const import ( CONF_AREA_FILTER, CONF_FILTER_CORONA, CONF_HEADLINE_FILTER, - DOMAIN, NO_MATCH_REGEX, ) -from .coordinator import NINADataUpdateCoordinator +from .coordinator import NinaConfigEntry, NINADataUpdateCoordinator PLATFORMS: list[str] = [Platform.BINARY_SENSOR] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_setup_entry(hass: HomeAssistant, entry: NinaConfigEntry) -> bool: """Set up platform from a ConfigEntry.""" if CONF_HEADLINE_FILTER not in entry.data: filter_regex = NO_MATCH_REGEX @@ -41,18 +39,18 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: entry.async_on_unload(entry.add_update_listener(_async_update_listener)) - 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: NinaConfigEntry) -> bool: """Unload a config entry.""" return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) -async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: +async def _async_update_listener(hass: HomeAssistant, entry: NinaConfigEntry) -> None: """Handle options update.""" await hass.config_entries.async_reload(entry.entry_id) diff --git a/homeassistant/components/nina/binary_sensor.py b/homeassistant/components/nina/binary_sensor.py index 3f7d496aca9..be7e5995fbc 100644 --- a/homeassistant/components/nina/binary_sensor.py +++ b/homeassistant/components/nina/binary_sensor.py @@ -30,17 +30,17 @@ from .const import ( CONF_REGIONS, DOMAIN, ) -from .coordinator import NINADataUpdateCoordinator +from .coordinator import NinaConfigEntry, NINADataUpdateCoordinator async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: NinaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up entries.""" - coordinator: NINADataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator = config_entry.runtime_data regions: dict[str, str] = config_entry.data[CONF_REGIONS] message_slots: int = config_entry.data[CONF_MESSAGE_SLOTS] diff --git a/homeassistant/components/nina/coordinator.py b/homeassistant/components/nina/coordinator.py index 3c27729ef09..eb1ad3d6293 100644 --- a/homeassistant/components/nina/coordinator.py +++ b/homeassistant/components/nina/coordinator.py @@ -23,6 +23,8 @@ from .const import ( SCAN_INTERVAL, ) +type NinaConfigEntry = ConfigEntry[NINADataUpdateCoordinator] + @dataclass class NinaWarningData: