diff --git a/src/main.py b/src/main.py index 89ce90d..cfd9b72 100644 --- a/src/main.py +++ b/src/main.py @@ -15,9 +15,9 @@ if __name__ == "__main__": token_thread_event = threading.Event() - mqtt_manager = MqttManager(tevolve) - t = threading.Thread(target=tevolve.token_manager, args=(token_thread_event, mqtt_manager, ), daemon=True).start() + + t = threading.Thread(target=tevolve.token_manager, args=(token_thread_event,), daemon=True).start() while token_thread_event.is_set() is False: time.sleep(1) @@ -28,7 +28,7 @@ if __name__ == "__main__": status = tevolve.get_status() - # mqtt_manager = MqttManager(tevolve) + mqtt_manager = MqttManager(tevolve) time.sleep(5) while 1: @@ -39,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 c1bfe2e..01bbf7c 100644 --- a/src/pytevolve.py +++ b/src/pytevolve.py @@ -43,7 +43,7 @@ class Tevolve: - def token_manager(self, event, mqtt_manager): + def token_manager(self, event): while 1: @@ -59,10 +59,7 @@ 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: @@ -271,7 +268,7 @@ class Tevolve: pass - def create_websocket(self): + def create_websocket(self, mqtt_manager): global start_time global end_time @@ -289,7 +286,7 @@ class Tevolve: a = json.loads(message[20:]) if a[0] == "update": self.last_update = a[1] - self.update_homeassistant_entity(self.last_update) + mqtt_manager.update_homeassistant_entity(self.last_update) def on_open(ws): @@ -321,6 +318,9 @@ class Tevolve: def on_close(ws, close_status_code, close_msg): print("WEB SOCKET ClOSED") + self.r.join() + self.r = threading.Thread(target=run, args=(mqtt_manager,)) + self.r.start() # global end_time # end_time = datetime.datetime.now() # print("starttime: " + str(start_time)) @@ -379,5 +379,6 @@ class Tevolve: 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) + self.r = threading.Thread(target=run, args=(mqtt_manager,)) + self.r.start()