Explicitly pass in the config_entry in flipr coordinator (#137818)

explicitly pass in the config_entry in coordinator
This commit is contained in:
Michael 2025-02-08 15:33:10 +01:00 committed by GitHub
parent d97ef67620
commit c9ffeb8007
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 31 additions and 21 deletions

View File

@ -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)

View File

@ -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, ...] = (

View File

@ -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),
)

View File

@ -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__)

View File

@ -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, ...] = (

View File

@ -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__)