From 75e4214841161bd37b48d891d053a253a30f4c59 Mon Sep 17 00:00:00 2001 From: connorroy Date: Wed, 19 Nov 2025 22:20:30 +0000 Subject: [PATCH] Move from thread to rel dispatcher --- src/main.py | 9 +++++--- src/pytevolve.py | 53 +++++++++++++++++++++++++++--------------------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/main.py b/src/main.py index 9492e79..89ce90d 100644 --- a/src/main.py +++ b/src/main.py @@ -15,7 +15,9 @@ if __name__ == "__main__": token_thread_event = threading.Event() - t = threading.Thread(target=tevolve.token_manager, args=(token_thread_event,), daemon=True).start() + mqtt_manager = MqttManager(tevolve) + + t = threading.Thread(target=tevolve.token_manager, args=(token_thread_event, mqtt_manager, ), daemon=True).start() while token_thread_event.is_set() is False: time.sleep(1) @@ -26,7 +28,8 @@ if __name__ == "__main__": status = tevolve.get_status() - mqtt_manager = MqttManager(tevolve) + # mqtt_manager = MqttManager(tevolve) + time.sleep(5) while 1: if mqtt_manager.is_connected == True: @@ -36,4 +39,4 @@ if __name__ == "__main__": tevolve.get_sid() tevolve.post_websocket() - tevolve.create_websocket(mqtt_manager) \ No newline at end of file + # tevolve.create_websocket(mqtt_manager) \ No newline at end of file diff --git a/src/pytevolve.py b/src/pytevolve.py index f60ad59..c1bfe2e 100644 --- a/src/pytevolve.py +++ b/src/pytevolve.py @@ -3,7 +3,7 @@ import json import threading import websocket import time -import rel +# import rel import datetime data = "username=1202283%40uad.ac.uk&password=24e76d8e4&grant_type=password" @@ -32,6 +32,7 @@ class Tevolve: self.latest_message = "" self.time_token_start = 0 + setmode = "" setTemperature = "" sid = "" @@ -42,7 +43,7 @@ class Tevolve: - def token_manager(self, event): + def token_manager(self, event, mqtt_manager): while 1: @@ -58,6 +59,10 @@ class Tevolve: self.token_primary = x.json()["access_token"] self.time_token_start = time.time() print("GOT TOKEN") + try: + self.r.join() + except Exception as e: + self.r = threading.Thread(target=self.create_websocket).start() event.set() else: @@ -266,7 +271,7 @@ class Tevolve: pass - def create_websocket(self, mqtt_connection): + def create_websocket(self): global start_time global end_time @@ -284,13 +289,15 @@ class Tevolve: a = json.loads(message[20:]) if a[0] == "update": self.last_update = a[1] - mqtt_connection.update_homeassistant_entity(self.last_update) + self.update_homeassistant_entity(self.last_update) def on_open(ws): - start_time = datetime.datetime.now() + try: self.post_websocket() + websocket_url = "wss://api-tevolve.termoweb.net/socket.io/?token=" + self.token_primary + \ + "&dev_id=" + str(self.dev_id) + "&EIO=3&transport=websocket&sid=" + self.sid + "" print("postwebsocket") print("websocket (run)") @@ -314,19 +321,19 @@ class Tevolve: def on_close(ws, close_status_code, close_msg): print("WEB SOCKET ClOSED") - global end_time - end_time = datetime.datetime.now() - print("starttime: " + str(start_time)) - print("endtime: " + str(end_time)) - breakpoint() - - # mqtt_connection.publish_heater() - time.sleep(2) - try: - self.post_websocket() - # self.create_websocket(mqtt_connection) - except Exception as e: - print(e) + # global end_time + # end_time = datetime.datetime.now() + # print("starttime: " + str(start_time)) + # print("endtime: " + str(end_time)) + # breakpoint() + # + # # mqtt_connection.publish_heater() + # time.sleep(2) + # try: + # self.post_websocket() + # # self.create_websocket(mqtt_connection) + # except Exception as e: + # print(e) def on_error(ws, err): print("WEB SOCKET ERROR") breakpoint() @@ -369,8 +376,8 @@ class Tevolve: # ws.on_error = on_error # ws.on_reconnect = on_reconnect - ws.run_forever(dispatcher=rel, ping_interval=10, ping_payload='42/api/v2/socket_io,["message","ping"]', reconnect=5) - rel.signal(2, rel.abort) - rel.dispatch() - # r = threading.Thread(target=run) - # r.start() + ws.run_forever(ping_interval=10, ping_payload='42/api/v2/socket_io,["message","ping"]') + # rel.signal(2, rel.abort) + # rel.dispatch() + self.r = threading.Thread(target=run) +