diff --git a/custom_components/reolink_dev/binary_sensor.py b/custom_components/reolink_dev/binary_sensor.py index 83d0fc2..7f1e90d 100644 --- a/custom_components/reolink_dev/binary_sensor.py +++ b/custom_components/reolink_dev/binary_sensor.py @@ -292,11 +292,15 @@ async def async_added_to_hass(self) -> None: async def handle_event(self, event): """Handle incoming event for motion detection and availability.""" + new_availability = self._available + try: new_availability = event.data["available"] - if new_availability != self._available: - self._available = new_availability - self.async_schedule_update_ha_state() + if not new_availability: + if new_availability != self._available: + self._available = new_availability + self.async_schedule_update_ha_state() + return except KeyError: pass @@ -330,8 +334,11 @@ async def handle_event(self, event): break if not object_found: - self._available = False - self.async_schedule_update_ha_state() + new_availability = False + + if new_availability != self._available: + self._available = new_availability + self.async_schedule_update_ha_state()