Move from thread to rel dispatcher

This commit is contained in:
2025-11-19 22:20:30 +00:00
parent 58a8d8dcb5
commit 75e4214841
2 changed files with 36 additions and 26 deletions

View File

@@ -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)
# tevolve.create_websocket(mqtt_manager)

View File

@@ -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)