diff --git a/homeassistant/components/flipr/__init__.py b/homeassistant/components/flipr/__init__.py index 99bddb5a0d0..81e61f2554a 100644 --- a/homeassistant/components/flipr/__init__.py +++ b/homeassistant/components/flipr/__init__.py @@ -1,7 +1,6 @@ """The Flipr integration.""" from collections import Counter -from dataclasses import dataclass import logging from flipr_api import FliprAPIRestClient @@ -13,24 +12,18 @@ from homeassistant.exceptions import ConfigEntryError from homeassistant.helpers import issue_registry as ir from .const import DOMAIN -from .coordinator import FliprDataUpdateCoordinator, FliprHubDataUpdateCoordinator +from .coordinator import ( + FliprConfigEntry, + FliprData, + FliprDataUpdateCoordinator, + FliprHubDataUpdateCoordinator, +) PLATFORMS = [Platform.BINARY_SENSOR, Platform.SELECT, Platform.SENSOR, Platform.SWITCH] _LOGGER = logging.getLogger(__name__) -@dataclass -class FliprData: - """The Flipr data class.""" - - flipr_coordinators: list[FliprDataUpdateCoordinator] - hub_coordinators: list[FliprHubDataUpdateCoordinator] - - -type FliprConfigEntry = ConfigEntry[FliprData] - - async def async_setup_entry(hass: HomeAssistant, entry: FliprConfigEntry) -> bool: """Set up flipr from a config entry.""" @@ -50,13 +43,13 @@ async def async_setup_entry(hass: HomeAssistant, entry: FliprConfigEntry) -> boo flipr_coordinators = [] for flipr_id in ids["flipr"]: - flipr_coordinator = FliprDataUpdateCoordinator(hass, client, flipr_id) + flipr_coordinator = FliprDataUpdateCoordinator(hass, entry, client, flipr_id) await flipr_coordinator.async_config_entry_first_refresh() flipr_coordinators.append(flipr_coordinator) hub_coordinators = [] for hub_id in ids["hub"]: - hub_coordinator = FliprHubDataUpdateCoordinator(hass, client, hub_id) + hub_coordinator = FliprHubDataUpdateCoordinator(hass, entry, client, hub_id) await hub_coordinator.async_config_entry_first_refresh() hub_coordinators.append(hub_coordinator) diff --git a/homeassistant/components/flipr/binary_sensor.py b/homeassistant/components/flipr/binary_sensor.py index cc6a9d36abc..07357b81af0 100644 --- a/homeassistant/components/flipr/binary_sensor.py +++ b/homeassistant/components/flipr/binary_sensor.py @@ -10,7 +10,7 @@ from homeassistant.components.binary_sensor import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import FliprConfigEntry +from .coordinator import FliprConfigEntry from .entity import FliprEntity BINARY_SENSORS_TYPES: tuple[BinarySensorEntityDescription, ...] = ( diff --git a/homeassistant/components/flipr/coordinator.py b/homeassistant/components/flipr/coordinator.py index 12fd174fe7d..0d86b43711a 100644 --- a/homeassistant/components/flipr/coordinator.py +++ b/homeassistant/components/flipr/coordinator.py @@ -1,5 +1,6 @@ """DataUpdateCoordinator for flipr integration.""" +from dataclasses import dataclass from datetime import timedelta import logging from typing import Any @@ -14,13 +15,28 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda _LOGGER = logging.getLogger(__name__) +@dataclass +class FliprData: + """The Flipr data class.""" + + flipr_coordinators: list["FliprDataUpdateCoordinator"] + hub_coordinators: list["FliprHubDataUpdateCoordinator"] + + +type FliprConfigEntry = ConfigEntry[FliprData] + + class BaseDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT]): """Parent class to hold Flipr and Hub data retrieval.""" - config_entry: ConfigEntry + config_entry: FliprConfigEntry def __init__( - self, hass: HomeAssistant, client: FliprAPIRestClient, flipr_or_hub_id: str + self, + hass: HomeAssistant, + config_entry: FliprConfigEntry, + client: FliprAPIRestClient, + flipr_or_hub_id: str, ) -> None: """Initialize.""" self.device_id = flipr_or_hub_id @@ -29,6 +45,7 @@ class BaseDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT]): super().__init__( hass, _LOGGER, + config_entry=config_entry, name=f"Flipr or Hub data measure for {self.device_id}", update_interval=timedelta(minutes=15), ) diff --git a/homeassistant/components/flipr/select.py b/homeassistant/components/flipr/select.py index b8a8f0db60a..79515be6ed4 100644 --- a/homeassistant/components/flipr/select.py +++ b/homeassistant/components/flipr/select.py @@ -6,7 +6,7 @@ from homeassistant.components.select import SelectEntity, SelectEntityDescriptio from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import FliprConfigEntry +from .coordinator import FliprConfigEntry from .entity import FliprEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/flipr/sensor.py b/homeassistant/components/flipr/sensor.py index ba863718182..2594186f24a 100644 --- a/homeassistant/components/flipr/sensor.py +++ b/homeassistant/components/flipr/sensor.py @@ -12,7 +12,7 @@ from homeassistant.const import PERCENTAGE, UnitOfElectricPotential, UnitOfTempe from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import FliprConfigEntry +from .coordinator import FliprConfigEntry from .entity import FliprEntity SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( diff --git a/homeassistant/components/flipr/switch.py b/homeassistant/components/flipr/switch.py index 65e729ec280..03df7f34d12 100644 --- a/homeassistant/components/flipr/switch.py +++ b/homeassistant/components/flipr/switch.py @@ -7,7 +7,7 @@ from homeassistant.components.switch import SwitchEntity, SwitchEntityDescriptio from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import FliprConfigEntry +from .coordinator import FliprConfigEntry from .entity import FliprEntity _LOGGER = logging.getLogger(__name__)