diff --git a/src/main.py b/src/main.py index 266643d..dc45563 100644 --- a/src/main.py +++ b/src/main.py @@ -6,7 +6,6 @@ import time host = "192.168.0.100" - if __name__ == "__main__": diff --git a/src/pytevolve.py b/src/pytevolve.py index 3d23cf6..30b7cc3 100644 --- a/src/pytevolve.py +++ b/src/pytevolve.py @@ -94,15 +94,18 @@ class Tevolve: def get_sid(self): - url = "https://api-tevolve.termoweb.net/socket.io/?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) + "&EIO" \ - "=3&transport=polling" - response = requests.request("GET", url) + try: + url = "https://api-tevolve.termoweb.net/socket.io/?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) + "&EIO" \ + "=3&transport=polling" + response = requests.request("GET", url) - if response.status_code == 200: - self.sid = json.loads(response.text[5:])["sid"] - else: - self.token_primary = "" - # Tevolve.token_manager() + if response.status_code == 200: + self.sid = json.loads(response.text[5:])["sid"] + # else: + # self.token_primary = "" + # Tevolve.token_manager() + except Exception as e: + raise e def get_devices(self): @@ -124,23 +127,30 @@ class Tevolve: def post_websocket(self): # Tevolve.token_manager() - # Tevolve.get_sid() + + try: + self.get_sid() - url = "https://api-tevolve.termoweb.net/socket.io/?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) + "&EIO" \ - "=3&transport=polling&t=Ntb6xXn" \ - "&sid=" + self.sid + url = "https://api-tevolve.termoweb.net/socket.io/?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) + "&EIO" \ + "=3&transport=polling&t=Ntb6xXn" \ + "&sid=" + self.sid - payload = "401:40/api/v2/socket_io?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) + payload = "401:40/api/v2/socket_io?token=" + self.token_primary + "&dev_id=" + str(self.dev_id) - headers = { - 'Cookie': "io=" + self.sid, - 'Content-Type': 'text/plain', - 'Connection': 'keep-alive' + headers = { + 'Cookie': "io=" + self.sid, + 'Content-Type': 'text/plain', + 'Connection': 'keep-alive' - } + } + + r = requests.request("POST", url, headers=headers, data=payload) + + print("post_websocket " + str(r.status_code)) + except Exception as e: + raise e - requests.request("POST", url, headers=headers, data=payload) def set_mode(self, heater_id, mode): @@ -263,6 +273,13 @@ class Tevolve: def on_open(ws): + try: + self.post_websocket() + # self.create_websocket(mqtt_connection) + except Exception as e: + print(e) + ws.close() + def run(): print("websocket (run)") counter = 0 @@ -282,21 +299,28 @@ class Tevolve: def on_close(ws, close_status_code, close_msg): print("WEB SOCKET ClOSED") - mqtt_connection.publish_heater() + # mqtt_connection.publish_heater() time.sleep(2) - self.post_websocket() - self.create_websocket(mqtt_connection) + print("post websocket") + try: + self.post_websocket() + self.create_websocket(mqtt_connection) + except Exception as e: + print(e) def on_error(ws, err): print("WEB SOCKET ERROR") # self.post_websocket() - # self.create_websocket(mqtt_connection) + # self.create_websocket(mqtt_connection + + def on_reconnect(ws): + print("Reconnect") ws = websocket.WebSocketApp(websocket_url) websocket.enableTrace(False) ws.on_message = on_message ws.on_open = on_open ws.on_close = on_close - ws.on_error = on_error + # ws.on_error = on_error - ws.run_forever(ping_interval=10, ping_payload='42/api/v2/socket_io,["message","ping"]') + ws.run_forever(ping_interval=10, ping_payload='42/api/v2/socket_io,["message","ping"]', reconnect=5)