Explicitly pass in the config entry in anova coordinator init (#137701)

* explicitly pass in the config_entry in anova coordinator init

* fix anova
This commit is contained in:
Michael 2025-02-07 19:47:39 +01:00 committed by GitHub
parent a8de073076
commit 2b7e67aa0c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 25 additions and 28 deletions

View File

@ -18,8 +18,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client from homeassistant.helpers import aiohttp_client
from .coordinator import AnovaCoordinator from .coordinator import AnovaConfigEntry, AnovaCoordinator, AnovaData
from .models import AnovaConfigEntry, AnovaData
PLATFORMS = [Platform.SENSOR] PLATFORMS = [Platform.SENSOR]
@ -59,7 +58,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AnovaConfigEntry) -> boo
# websocket client # websocket client
assert api.websocket_handler is not None assert api.websocket_handler is not None
devices = list(api.websocket_handler.devices.values()) devices = list(api.websocket_handler.devices.values())
coordinators = [AnovaCoordinator(hass, device) for device in devices] coordinators = [AnovaCoordinator(hass, entry, device) for device in devices]
entry.runtime_data = AnovaData(api_jwt=api.jwt, coordinators=coordinators, api=api) entry.runtime_data = AnovaData(api_jwt=api.jwt, coordinators=coordinators, api=api)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True return True

View File

@ -1,8 +1,9 @@
"""Support for Anova Coordinators.""" """Support for Anova Coordinators."""
from dataclasses import dataclass
import logging import logging
from anova_wifi import APCUpdate, APCWifiDevice from anova_wifi import AnovaApi, APCUpdate, APCWifiDevice
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -14,15 +15,33 @@ from .const import DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@dataclass
class AnovaData:
"""Data for the Anova integration."""
api_jwt: str
coordinators: list["AnovaCoordinator"]
api: AnovaApi
type AnovaConfigEntry = ConfigEntry[AnovaData]
class AnovaCoordinator(DataUpdateCoordinator[APCUpdate]): class AnovaCoordinator(DataUpdateCoordinator[APCUpdate]):
"""Anova custom coordinator.""" """Anova custom coordinator."""
config_entry: ConfigEntry config_entry: AnovaConfigEntry
def __init__(self, hass: HomeAssistant, anova_device: APCWifiDevice) -> None: def __init__(
self,
hass: HomeAssistant,
config_entry: AnovaConfigEntry,
anova_device: APCWifiDevice,
) -> None:
"""Set up Anova Coordinator.""" """Set up Anova Coordinator."""
super().__init__( super().__init__(
hass, hass,
config_entry=config_entry,
name="Anova Precision Cooker", name="Anova Precision Cooker",
logger=_LOGGER, logger=_LOGGER,
) )

View File

@ -1,20 +0,0 @@
"""Dataclass models for the Anova integration."""
from dataclasses import dataclass
from anova_wifi import AnovaApi
from homeassistant.config_entries import ConfigEntry
from .coordinator import AnovaCoordinator
type AnovaConfigEntry = ConfigEntry[AnovaData]
@dataclass
class AnovaData:
"""Data for the Anova integration."""
api_jwt: str
coordinators: list[AnovaCoordinator]
api: AnovaApi

View File

@ -18,9 +18,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from .coordinator import AnovaCoordinator from .coordinator import AnovaConfigEntry, AnovaCoordinator
from .entity import AnovaDescriptionEntity from .entity import AnovaDescriptionEntity
from .models import AnovaConfigEntry
@dataclass(frozen=True, kw_only=True) @dataclass(frozen=True, kw_only=True)