From d65f2ac31a7f0f51f4e7901d9736af089ae3125e Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Fri, 10 Jan 2020 12:55:39 -0600 Subject: [PATCH] Do not save last_seen if older than prev_seen (#30647) Also add warnings when updates skipped similar to google_maps --- .../components/life360/device_tracker.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/life360/device_tracker.py b/homeassistant/components/life360/device_tracker.py index b2ba1ca3164..b7b0415a1b3 100644 --- a/homeassistant/components/life360/device_tracker.py +++ b/homeassistant/components/life360/device_tracker.py @@ -195,7 +195,10 @@ class Life360Scanner: ) reported = False - self._dev_data[dev_id] = last_seen or prev_seen, reported + # Don't remember last_seen unless it's really an update. + if not last_seen or prev_seen and last_seen <= prev_seen: + last_seen = prev_seen + self._dev_data[dev_id] = last_seen, reported return prev_seen @@ -218,7 +221,17 @@ class Life360Scanner: return # Only update when we truly have an update. - if not last_seen or prev_seen and last_seen <= prev_seen: + if not last_seen: + _LOGGER.warning("%s: Ignoring update because timestamp is missing", dev_id) + return + if prev_seen and last_seen < prev_seen: + _LOGGER.warning( + "%s: Ignoring update because timestamp is older than last timestamp", + dev_id, + ) + _LOGGER.debug("%s < %s", last_seen, prev_seen) + return + if last_seen == prev_seen: return lat = loc.get("latitude")