From 1b322c55e57772a32900e6bb2c283523ee601efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20JUMELLE?= Date: Sun, 15 Dec 2024 14:27:23 +0100 Subject: [PATCH] Better management of obsolete device --- plugin.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugin.py b/plugin.py index 6f78c72..a6cdef5 100755 --- a/plugin.py +++ b/plugin.py @@ -257,7 +257,7 @@ class BasePlugin: product_key = device['product_key'] alias = device['dev_alias'] did = device['did'] - self.did[product_key] = {"did":did, "alias":alias} + self.did[product_key] = {"did":did, "alias":alias, "updated_at":0} Domoticz.Status(f"Devide Id from Heatzy API: {alias} - {did}") unit = unit + 1 @@ -298,19 +298,22 @@ class BasePlugin: #Domoticz.Error("Headers: " + str(headers)) if 'response' in locals() and response != "": Domoticz.Error("Response: " + str(response)) - return "" + return Domoticz.Debug("Get Mode Response:" + str(response)) #Last Update if 'updated_at' in response: obsolete_min = int((time.time() - response["updated_at"])//60) - if obsolete_min >= 180: - if Devices[deviceid].TimedOut == 0: + if response["updated_at"] == device["updated_at"]: + #No update since last heartbeat + if obsolete_min >= 180 and Devices[deviceid].TimedOut == 0: Domoticz.Status(f"Last update from '{alias}' was {obsolete_min} min earlier.") Devices[deviceid].TimedOut = 1 return - elif Devices[deviceid].TimedOut == 1: + device["updated_at"] = response["updated_at"] + + if Devices[deviceid].TimedOut == 1: Domoticz.Status(f"'{alias}' is now back.") Devices[deviceid].TimedOut = 0