Switch to TimedOut only when update_at < command_at

This commit is contained in:
2025-11-02 15:56:35 +01:00
parent c77c76e2fe
commit 4eea028f0a

View File

@@ -174,7 +174,6 @@ class BasePlugin:
self.pooling_current_step = 1 self.pooling_current_step = 1
else: else:
# Devices["9420ae048da545c88fc6274d204dd25f"].Refresh()
self.pooling_current_step = self.pooling_current_step + 1 self.pooling_current_step = self.pooling_current_step + 1
def get_token(self, user, password): def get_token(self, user, password):
@@ -263,7 +262,7 @@ class BasePlugin:
product_key = device['product_key'] product_key = device['product_key']
alias = device['dev_alias'] alias = device['dev_alias']
did = device['did'] did = device['did']
self.did[product_key] = {"did":did, "alias":alias, "updated_at":0} self.did[product_key] = {"did":did, "alias":alias, "updated_at":0, "command_at":0}
Domoticz.Status(f"Devide Id from Heatzy API: {alias} - {did}") Domoticz.Status(f"Devide Id from Heatzy API: {alias} - {did}")
unit = unit + 1 unit = unit + 1
@@ -310,11 +309,12 @@ class BasePlugin:
#Last Update #Last Update
if 'updated_at' in response: if 'updated_at' in response:
obsolete_min = int((time.time() - response["updated_at"])//60)
if response["updated_at"] == device["updated_at"]: if response["updated_at"] == device["updated_at"]:
#No update since last heartbeat #No update since last heartbeat
if obsolete_min >= 180 and Devices[deviceid].TimedOut == 0: if device["command_at"] - 60 > device["updated_at"] and Devices[deviceid].TimedOut == 0:
Domoticz.Status(f"Last update from '{alias}' was {obsolete_min} min earlier.") #No update while a command has been sent
obsolete_min = int((time.time() - response["updated_at"])//60)
Domoticz.Error(f"Last update from '{alias}' was {obsolete_min} min earlier.")
Devices[deviceid].TimedOut = 1 Devices[deviceid].TimedOut = 1
continue continue
device["updated_at"] = response["updated_at"] device["updated_at"] = response["updated_at"]
@@ -394,6 +394,7 @@ class BasePlugin:
#Should not occur... but it occurs sometimes #Should not occur... but it occurs sometimes
self.did = self.get_heatzy_devices() self.did = self.get_heatzy_devices()
did = self.did[deviceid]["did"] did = self.did[deviceid]["did"]
self.did[deviceid]["command_at"] = time.time()
url = f"https://euapi.gizwits.com/app/control/{did}" url = f"https://euapi.gizwits.com/app/control/{did}"
try: try:
response = requests.post(url, headers=headers, data=data, timeout=self._HTTP_TIMEOUT).json() response = requests.post(url, headers=headers, data=data, timeout=self._HTTP_TIMEOUT).json()