Explicitly pass in the config_entry in watergate coordinator (#137872)

explicitly pass in the config_entry in coordinator
This commit is contained in:
Michael 2025-02-08 17:21:17 +01:00 committed by GitHub
parent 3cce2d679c
commit 219b5324e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 10 deletions

View File

@ -16,12 +16,11 @@ from homeassistant.components.webhook import (
async_generate_url,
async_register,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_IP_ADDRESS, CONF_WEBHOOK_ID, Platform
from homeassistant.core import HomeAssistant
from .const import DOMAIN
from .coordinator import WatergateDataCoordinator
from .coordinator import WatergateConfigEntry, WatergateDataCoordinator
_LOGGER = logging.getLogger(__name__)
@ -35,8 +34,6 @@ PLATFORMS: list[Platform] = [
Platform.VALVE,
]
type WatergateConfigEntry = ConfigEntry[WatergateDataCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: WatergateConfigEntry) -> bool:
"""Set up Watergate from a config entry."""
@ -52,7 +49,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: WatergateConfigEntry) ->
sonic_address if sonic_address.startswith("http") else f"http://{sonic_address}"
)
coordinator = WatergateDataCoordinator(hass, watergate_client)
coordinator = WatergateDataCoordinator(hass, entry, watergate_client)
entry.runtime_data = coordinator
async_register(

View File

@ -7,6 +7,7 @@ import logging
from watergate_local_api import WatergateApiException, WatergateLocalApiClient
from watergate_local_api.models import DeviceState, NetworkingData, TelemetryData
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@ -24,14 +25,25 @@ class WatergateAgregatedRequests:
networking: NetworkingData
type WatergateConfigEntry = ConfigEntry[WatergateDataCoordinator]
class WatergateDataCoordinator(DataUpdateCoordinator[WatergateAgregatedRequests]):
"""Class to manage fetching watergate data."""
def __init__(self, hass: HomeAssistant, api: WatergateLocalApiClient) -> None:
config_entry: WatergateConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: WatergateConfigEntry,
api: WatergateLocalApiClient,
) -> None:
"""Initialize."""
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=timedelta(minutes=2),
)

View File

@ -26,8 +26,11 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.util import dt as dt_util
from . import WatergateConfigEntry
from .coordinator import WatergateAgregatedRequests, WatergateDataCoordinator
from .coordinator import (
WatergateAgregatedRequests,
WatergateConfigEntry,
WatergateDataCoordinator,
)
from .entity import WatergateEntity
_LOGGER = logging.getLogger(__name__)

View File

@ -10,8 +10,7 @@ from homeassistant.components.valve import (
from homeassistant.core import callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import WatergateConfigEntry
from .coordinator import WatergateDataCoordinator
from .coordinator import WatergateConfigEntry, WatergateDataCoordinator
from .entity import WatergateEntity
ENTITY_NAME = "valve"