From 5986967db7c73af6f6e183322d0dc4172aa65aec Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Wed, 3 Jan 2024 06:40:42 +0100 Subject: [PATCH] Avoid triggering ping device tracker `home` after restore (#106913) --- homeassistant/components/ping/device_tracker.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/ping/device_tracker.py b/homeassistant/components/ping/device_tracker.py index d627082a499..6b904043b30 100644 --- a/homeassistant/components/ping/device_tracker.py +++ b/homeassistant/components/ping/device_tracker.py @@ -136,7 +136,7 @@ async def async_setup_entry( class PingDeviceTracker(CoordinatorEntity[PingUpdateCoordinator], ScannerEntity): """Representation of a Ping device tracker.""" - _first_offline: datetime | None = None + _last_seen: datetime | None = None def __init__( self, config_entry: ConfigEntry, coordinator: PingUpdateCoordinator @@ -171,14 +171,12 @@ class PingDeviceTracker(CoordinatorEntity[PingUpdateCoordinator], ScannerEntity) def is_connected(self) -> bool: """Return true if ping returns is_alive or considered home.""" if self.coordinator.data.is_alive: - self._first_offline = None - return True + self._last_seen = dt_util.utcnow() - now = dt_util.utcnow() - if self._first_offline is None: - self._first_offline = now - - return (self._first_offline + self._consider_home_interval) > now + return ( + self._last_seen is not None + and (dt_util.utcnow() - self._last_seen) < self._consider_home_interval + ) @property def entity_registry_enabled_default(self) -> bool: