From b6afe130fcd3a0e333f54fdf8e89af3f0d3fbe28 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sun, 9 Feb 2025 20:27:28 +0100 Subject: [PATCH] Explicitly pass in the config_entry in iskra coordinator (#138134) explicitly pass in the config_entry in coordinator --- homeassistant/components/iskra/__init__.py | 10 +++------- homeassistant/components/iskra/coordinator.py | 14 ++++++++++---- homeassistant/components/iskra/sensor.py | 3 +-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/iskra/__init__.py b/homeassistant/components/iskra/__init__.py index b841da9df26..21c60db20fe 100644 --- a/homeassistant/components/iskra/__init__.py +++ b/homeassistant/components/iskra/__init__.py @@ -6,7 +6,6 @@ from pyiskra.adapters import Modbus, RestAPI from pyiskra.devices import Device from pyiskra.exceptions import DeviceConnectionError, DeviceNotSupported, NotAuthorised -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( CONF_ADDRESS, CONF_HOST, @@ -21,14 +20,11 @@ from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.helpers import device_registry as dr from .const import DOMAIN, MANUFACTURER -from .coordinator import IskraDataUpdateCoordinator +from .coordinator import IskraConfigEntry, IskraDataUpdateCoordinator PLATFORMS: list[Platform] = [Platform.SENSOR] -type IskraConfigEntry = ConfigEntry[list[IskraDataUpdateCoordinator]] - - async def async_setup_entry(hass: HomeAssistant, entry: IskraConfigEntry) -> bool: """Set up iskra device from a config entry.""" conf = entry.data @@ -79,11 +75,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: IskraConfigEntry) -> boo ) coordinators = [ - IskraDataUpdateCoordinator(hass, child_device) + IskraDataUpdateCoordinator(hass, entry, child_device) for child_device in base_device.get_child_devices() ] else: - coordinators = [IskraDataUpdateCoordinator(hass, base_device)] + coordinators = [IskraDataUpdateCoordinator(hass, entry, base_device)] for coordinator in coordinators: await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/iskra/coordinator.py b/homeassistant/components/iskra/coordinator.py index 175d8ed4c86..d476556e96d 100644 --- a/homeassistant/components/iskra/coordinator.py +++ b/homeassistant/components/iskra/coordinator.py @@ -11,6 +11,7 @@ from pyiskra.exceptions import ( NotAuthorised, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed @@ -18,21 +19,26 @@ from .const import DOMAIN _LOGGER = logging.getLogger(__name__) +type IskraConfigEntry = ConfigEntry[list[IskraDataUpdateCoordinator]] + class IskraDataUpdateCoordinator(DataUpdateCoordinator[None]): """Class to manage fetching Iskra data.""" - def __init__(self, hass: HomeAssistant, device: Device) -> None: + config_entry: IskraConfigEntry + + def __init__( + self, hass: HomeAssistant, config_entry: IskraConfigEntry, device: Device + ) -> None: """Initialize.""" self.device = device - update_interval = timedelta(seconds=60) - super().__init__( hass, _LOGGER, + config_entry=config_entry, name=DOMAIN, - update_interval=update_interval, + update_interval=timedelta(seconds=60), ) async def _async_update_data(self) -> None: diff --git a/homeassistant/components/iskra/sensor.py b/homeassistant/components/iskra/sensor.py index df9e3ec53f9..a61951dedb9 100644 --- a/homeassistant/components/iskra/sensor.py +++ b/homeassistant/components/iskra/sensor.py @@ -26,7 +26,6 @@ from homeassistant.const import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import IskraConfigEntry from .const import ( ATTR_FREQUENCY, ATTR_NON_RESETTABLE_COUNTER, @@ -44,7 +43,7 @@ from .const import ( ATTR_TOTAL_APPARENT_POWER, ATTR_TOTAL_REACTIVE_POWER, ) -from .coordinator import IskraDataUpdateCoordinator +from .coordinator import IskraConfigEntry, IskraDataUpdateCoordinator from .entity import IskraEntity