Raise UpdateFailed if API returns None in sfr_box (#157434)

This commit is contained in:
epenet
2025-11-27 18:01:56 +01:00
committed by GitHub
parent 08b758b0d2
commit a48f01f213
3 changed files with 5 additions and 7 deletions
@@ -97,6 +97,4 @@ class SFRBoxBinarySensor[_T](SFRCoordinatorEntity[_T], BinarySensorEntity):
@property
def is_on(self) -> bool | None:
"""Return the native value of the device."""
if self.coordinator.data is None:
return None
return self.entity_description.value_fn(self.coordinator.data)
@@ -33,7 +33,7 @@ class SFRRuntimeData:
wan: SFRDataUpdateCoordinator[WanInfo]
class SFRDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT | None]):
class SFRDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
"""Coordinator to manage data updates."""
config_entry: SFRConfigEntry
@@ -57,9 +57,11 @@ class SFRDataUpdateCoordinator[_DataT](DataUpdateCoordinator[_DataT | None]):
update_interval=_SCAN_INTERVAL,
)
async def _async_update_data(self) -> _DataT | None:
async def _async_update_data(self) -> _DataT:
"""Update data."""
try:
return await self._method(self.box)
if data := await self._method(self.box):
return data
except SFRBoxError as err:
raise UpdateFailed from err
raise UpdateFailed("No data received from SFR Box")
@@ -253,6 +253,4 @@ class SFRBoxSensor[_T](SFRCoordinatorEntity[_T], SensorEntity):
@property
def native_value(self) -> StateType:
"""Return the native value of the device."""
if self.coordinator.data is None:
return None
return self.entity_description.value_fn(self.coordinator.data)