From f2fe2c45109b01d779f479a9e866f3c11ec868f7 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 6 Apr 2024 22:54:40 -1000 Subject: [PATCH] Fix synology_dsm availablity (#115073) * Remove reload on update failure from synology_dsm fixes #115062 The coordinator will retry on its own later, there is no reason to reload here. This was added in #42697 * fix available checks --- .../components/synology_dsm/binary_sensor.py | 2 +- homeassistant/components/synology_dsm/camera.py | 2 +- homeassistant/components/synology_dsm/common.py | 13 +------------ homeassistant/components/synology_dsm/sensor.py | 2 +- homeassistant/components/synology_dsm/switch.py | 2 +- homeassistant/components/synology_dsm/update.py | 2 +- 6 files changed, 6 insertions(+), 17 deletions(-) diff --git a/homeassistant/components/synology_dsm/binary_sensor.py b/homeassistant/components/synology_dsm/binary_sensor.py index 7579f350774..28dc750bc91 100644 --- a/homeassistant/components/synology_dsm/binary_sensor.py +++ b/homeassistant/components/synology_dsm/binary_sensor.py @@ -116,7 +116,7 @@ class SynoDSMSecurityBinarySensor(SynoDSMBinarySensor): @property def available(self) -> bool: """Return True if entity is available.""" - return bool(self._api.security) + return bool(self._api.security) and super().available @property def extra_state_attributes(self) -> dict[str, str]: diff --git a/homeassistant/components/synology_dsm/camera.py b/homeassistant/components/synology_dsm/camera.py index 19f95c710d0..82d15138f05 100644 --- a/homeassistant/components/synology_dsm/camera.py +++ b/homeassistant/components/synology_dsm/camera.py @@ -108,7 +108,7 @@ class SynoDSMCamera(SynologyDSMBaseEntity[SynologyDSMCameraUpdateCoordinator], C @property def available(self) -> bool: """Return the availability of the camera.""" - return self.camera_data.is_enabled and self.coordinator.last_update_success + return self.camera_data.is_enabled and super().available @property def is_recording(self) -> bool: diff --git a/homeassistant/components/synology_dsm/common.py b/homeassistant/components/synology_dsm/common.py index d8a2f1ede62..42ec45e94a4 100644 --- a/homeassistant/components/synology_dsm/common.py +++ b/homeassistant/components/synology_dsm/common.py @@ -286,18 +286,7 @@ class SynoApi: async def async_update(self) -> None: """Update function for updating API information.""" - try: - await self._update() - except SYNOLOGY_CONNECTION_EXCEPTIONS as err: - LOGGER.debug( - "Connection error during update of '%s' with exception: %s", - self._entry.unique_id, - err, - ) - LOGGER.warning( - "Connection error during update, fallback by reloading the entry" - ) - await self._hass.config_entries.async_reload(self._entry.entry_id) + await self._update() async def _update(self) -> None: """Update function for updating API information.""" diff --git a/homeassistant/components/synology_dsm/sensor.py b/homeassistant/components/synology_dsm/sensor.py index b742669712e..6769c1e4901 100644 --- a/homeassistant/components/synology_dsm/sensor.py +++ b/homeassistant/components/synology_dsm/sensor.py @@ -367,7 +367,7 @@ class SynoDSMUtilSensor(SynoDSMSensor): @property def available(self) -> bool: """Return True if entity is available.""" - return bool(self._api.utilisation) + return bool(self._api.utilisation) and super().available class SynoDSMStorageSensor(SynologyDSMDeviceEntity, SynoDSMSensor): diff --git a/homeassistant/components/synology_dsm/switch.py b/homeassistant/components/synology_dsm/switch.py index 6e1e38675a0..c19cdb8c815 100644 --- a/homeassistant/components/synology_dsm/switch.py +++ b/homeassistant/components/synology_dsm/switch.py @@ -98,7 +98,7 @@ class SynoDSMSurveillanceHomeModeToggle( @property def available(self) -> bool: """Return True if entity is available.""" - return bool(self._api.surveillance_station) + return bool(self._api.surveillance_station) and super().available @property def device_info(self) -> DeviceInfo: diff --git a/homeassistant/components/synology_dsm/update.py b/homeassistant/components/synology_dsm/update.py index 7b1a36c57b3..c7bcff48cea 100644 --- a/homeassistant/components/synology_dsm/update.py +++ b/homeassistant/components/synology_dsm/update.py @@ -59,7 +59,7 @@ class SynoDSMUpdateEntity( @property def available(self) -> bool: """Return True if entity is available.""" - return bool(self._api.upgrade) + return bool(self._api.upgrade) and super().available @property def installed_version(self) -> str | None: