MQTT esp_wifi
Build, push image, and notify Watchtower / build-image (push) Successful in 51s
Build, push image, and notify Watchtower / notify (push) Successful in 1m40s

This commit is contained in:
2026-07-17 18:50:53 +02:00
parent 77872d183b
commit 0e89e42b48
9 changed files with 207 additions and 29 deletions
+9
View File
@@ -1,2 +1,11 @@
# LoRa
HEARTBEAT_INTERVAL = 10
# MQTT
MQTT_BROKER_HOST = "192.168.50.1"
MQTT_TOPIC = b"smartwave/demo"
MQTT_KEEPALIVE = 30
USE_TLS = True
MQTT_QOS = 2
+19 -3
View File
@@ -104,9 +104,17 @@ class BrokerClient:
return self._client
if IS_MICROPYTHON:
import ssl
ssl_params = self.ssl_params
if self.use_tls and ssl_params is None and self.cafile is not None:
ssl_params = {"cadata": _read_file_bytes(self.cafile)}
if self.use_tls and ssl_params is None:
# MicroPython uses context-less structures.
# If your CA is self-signed, validation can fail without a valid hostname match.
ssl_params = {
"cert_reqs": ssl.CERT_NONE, # Temporarily change to NONE to test if validation is the culprit
"cadata": _read_file_bytes(self.cafile)
}
client = _MQTTClient(
self.client_id or "smartWave-client",
self.host,
@@ -114,7 +122,7 @@ class BrokerClient:
user=self.username,
password=self.password,
keepalive=self.keepalive,
ssl=self.use_tls or ssl_params is not None,
ssl=self.use_tls,
ssl_params=ssl_params,
)
self._client = client
@@ -155,6 +163,10 @@ class BrokerClient:
payload_bytes = _ensure_bytes(payload)
if IS_MICROPYTHON:
return client.publish(topic, payload_bytes, retain=retain, qos=qos)
if isinstance(topic, bytes):
topic = topic.decode('utf-8')
return client.publish(topic, payload_bytes, qos=qos, retain=retain)
def subscribe(self, topic, qos=2):
@@ -162,6 +174,10 @@ class BrokerClient:
if IS_MICROPYTHON:
client.set_callback(self._on_micropython_message)
return client.subscribe(topic, qos=qos)
if isinstance(topic, bytes):
topic = topic.decode('utf-8')
return client.subscribe(topic, qos=qos)
def _on_micropython_message(self, topic, payload):