Fix MQTT connection

This commit is contained in:
2025-12-29 15:10:27 +01:00
parent dd57019c99
commit 0a6081ee6e
4 changed files with 28 additions and 10 deletions

View File

@@ -5,19 +5,24 @@ from typing import Callable, Optional
import paho.mqtt.client as mqtt
class MQTTService:
client : mqtt.Client
def __init__(self, address: str, port: int, client_id: Optional[str] = None,
username: Optional[str] = None, password: Optional[str] = None,
ca_certs: Optional[str] = None):
ca_certs: Optional[str] = None, insecure : bool = False):
self.address = address
self.port = port
self.client = mqtt.Client(client_id=client_id)
if username and password:
self.client.username_pw_set(username, password)
if ca_certs:
self.client.tls_set(ca_certs=ca_certs)
else:
self.client.tls_set()
self.client.tls_insecure_set(True)
self.client.tls_insecure_set(insecure)
self._connected = False
self.client.on_connect = self._on_connect
self.client.on_disconnect = self._on_disconnect
@@ -37,16 +42,18 @@ class MQTTService:
def connect(self):
if not self._connected:
print(f"Connecting to {self.address}...")
self.client.connect(self.address, self.port)
self.client.loop_start()
timeout = 5
start = time.time()
while not self._connected and time.time() - start < timeout:
print(f"Connecting to {self.address}...")
time.sleep(0.1)
if not self._connected:
raise ConnectionError(f"Cannot connect to MQTT broker at {self.address}:{self.port}")
print(f"Successfully connected to {self.address}")
else :
print(f"Already connected to {self.address}...")
def disconnect(self):
if self._connected: