Explicitly pass in the config_entry in sfr_box coordinator (#137955)

explicitly pass in the config_entry in coordinator
This commit is contained in:
Michael 2025-02-09 15:33:09 +01:00 committed by GitHub
parent 8073bccc87
commit 00803f98d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 6 deletions

View File

@ -37,12 +37,18 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
data = DomainData(
box=box,
dsl=SFRDataUpdateCoordinator(hass, box, "dsl", lambda b: b.dsl_get_info()),
ftth=SFRDataUpdateCoordinator(hass, box, "ftth", lambda b: b.ftth_get_info()),
system=SFRDataUpdateCoordinator(
hass, box, "system", lambda b: b.system_get_info()
dsl=SFRDataUpdateCoordinator(
hass, entry, box, "dsl", lambda b: b.dsl_get_info()
),
ftth=SFRDataUpdateCoordinator(
hass, entry, box, "ftth", lambda b: b.ftth_get_info()
),
system=SFRDataUpdateCoordinator(
hass, entry, box, "system", lambda b: b.system_get_info()
),
wan=SFRDataUpdateCoordinator(
hass, entry, box, "wan", lambda b: b.wan_get_info()
),
wan=SFRDataUpdateCoordinator(hass, box, "wan", lambda b: b.wan_get_info()),
)
# Preload system information
await data.system.async_config_entry_first_refresh()

View File

@ -8,6 +8,7 @@ from typing import Any
from sfrbox_api.bridge import SFRBox
from sfrbox_api.exceptions import SFRBoxError
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@ -18,9 +19,12 @@ _SCAN_INTERVAL = timedelta(minutes=1)
class SFRDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT | None]):
"""Coordinator to manage data updates."""
config_entry: ConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: ConfigEntry,
box: SFRBox,
name: str,
method: Callable[[SFRBox], Coroutine[Any, Any, _DataT | None]],
@ -28,7 +32,13 @@ class SFRDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT | None]):
"""Initialize coordinator."""
self.box = box
self._method = method
super().__init__(hass, _LOGGER, name=name, update_interval=_SCAN_INTERVAL)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=name,
update_interval=_SCAN_INTERVAL,
)
async def _async_update_data(self) -> _DataT | None:
"""Update data."""