+ self.last_update = None
+
+ def maybe_update(self) -> None:
+ if self.last_update is None:
+ self.update()
+ else:
+ now = datetime.datetime.now()
+ delta = now - self.last_update
+ if delta.total_seconds() > config.config['presence_tolerable_staleness_seconds'].total_seconds():
+ logger.debug(
+ f"It's been {delta.total_seconds()}s since last update; refreshing now."
+ )
+ self.update()