Explicitly pass in the config_entry in weheat coordinator (#137868)

explicitly pass in the config_entry in coordinator
This commit is contained in:
Michael 2025-02-08 21:46:05 +01:00 committed by GitHub
parent a59d829e6a
commit 07e9d80607
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 11 additions and 9 deletions

View File

@ -8,7 +8,6 @@ import aiohttp
from weheat.abstractions.discovery import HeatPumpDiscovery
from weheat.exceptions import UnauthorizedException
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ACCESS_TOKEN, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
@ -19,12 +18,10 @@ from homeassistant.helpers.config_entry_oauth2_flow import (
)
from .const import API_URL, LOGGER
from .coordinator import WeheatDataUpdateCoordinator
from .coordinator import WeheatConfigEntry, WeheatDataUpdateCoordinator
PLATFORMS: list[Platform] = [Platform.BINARY_SENSOR, Platform.SENSOR]
type WeheatConfigEntry = ConfigEntry[list[WeheatDataUpdateCoordinator]]
async def async_setup_entry(hass: HomeAssistant, entry: WeheatConfigEntry) -> bool:
"""Set up Weheat from a config entry."""
@ -58,7 +55,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: WeheatConfigEntry) -> bo
for pump_info in discovered_heat_pumps:
LOGGER.debug("Adding %s", pump_info)
# for each pump, add a coordinator
new_coordinator = WeheatDataUpdateCoordinator(hass, session, pump_info)
new_coordinator = WeheatDataUpdateCoordinator(hass, entry, session, pump_info)
await new_coordinator.async_config_entry_first_refresh()

View File

@ -14,8 +14,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from . import WeheatConfigEntry
from .coordinator import WeheatDataUpdateCoordinator
from .coordinator import WeheatConfigEntry, WeheatDataUpdateCoordinator
from .entity import WeheatEntity
# Coordinator is used to centralize the data updates

View File

@ -13,6 +13,7 @@ from weheat.exceptions import (
UnauthorizedException,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ACCESS_TOKEN
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed
@ -30,13 +31,18 @@ EXCEPTIONS = (
ApiException,
)
type WeheatConfigEntry = ConfigEntry[list[WeheatDataUpdateCoordinator]]
class WeheatDataUpdateCoordinator(DataUpdateCoordinator[HeatPump]):
"""A custom coordinator for the Weheat heatpump integration."""
config_entry: WeheatConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: WeheatConfigEntry,
session: OAuth2Session,
heat_pump: HeatPumpDiscovery.HeatPumpInfo,
) -> None:
@ -44,6 +50,7 @@ class WeheatDataUpdateCoordinator(DataUpdateCoordinator[HeatPump]):
super().__init__(
hass,
logger=LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=timedelta(seconds=UPDATE_INTERVAL),
)

View File

@ -22,13 +22,12 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from . import WeheatConfigEntry
from .const import (
DISPLAY_PRECISION_COP,
DISPLAY_PRECISION_WATER_TEMP,
DISPLAY_PRECISION_WATTS,
)
from .coordinator import WeheatDataUpdateCoordinator
from .coordinator import WeheatConfigEntry, WeheatDataUpdateCoordinator
from .entity import WeheatEntity
# Coordinator is used to centralize the data updates