diff --git a/plugin.py b/plugin.py index 8d8222f..9404433 100755 --- a/plugin.py +++ b/plugin.py @@ -4,7 +4,7 @@ # #pylint: disable=line-too-long,broad-exception-caught,possibly-used-before-assignment """ - +

Heatzy Pilote


Implementation of Heatzy Pilote as a Domoticz Plugin.
@@ -41,6 +41,9 @@ if None is not None: #Fake statement to remove warning on global Domoticz variab Images = Images # type: ignore #NOSONAR #pylint: disable=undefined-variable,self-assigning-variable Devices = Devices # type: ignore #NOSONAR #pylint: disable=undefined-variable,self-assigning-variable +global Parameters +global Devices + HEATZY_MODE = { '停止': 'OFF', '解冻': 'FROSTFREE', @@ -146,6 +149,10 @@ class BasePlugin: Domoticz.Status("No connection to Heatzy API ==> Device disabled for 15 minutes") self.pooling_current_step = - 15 * 60 // self.pooling + self.pooling_steps self.retry = self.max_retry + #Force refresh token/did + Domoticz.Status("Force refresh token and device id.") + self.token = "" + self.did = "" return self.mode = self.get_mode() @@ -273,6 +280,7 @@ class BasePlugin: headers = { 'Accept': 'application/json', + 'X-Gizwits-User-token': self.token, 'X-Gizwits-Application-Id': 'c70a66ff039d41b4a220e198b0fcc8b3', } url = f"https://euapi.gizwits.com/app/devdata/{self.did}/latest" @@ -324,6 +332,10 @@ class BasePlugin: #Invalid token self.token = "" self.did = "" + elif 'attr' in response and len(response["attr"]) == 0: + #attr is empty... + Domoticz.Status("We force a setMode to try to get the correct mode at the next try...") + self.setMode(HEATZY_MODE_VALUE['FROSTFREE']) return "" return mode