From f1a8ec6ed0f4a2c2ce42d4361e4cd10d3a616c1e Mon Sep 17 00:00:00 2001 From: coolneng Date: Thu, 27 Nov 2025 13:17:30 +0100 Subject: [PATCH] Retry MQTT connection indefinitely until it works --- src/wlan.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/wlan.cpp b/src/wlan.cpp index 9bb6a8e..bbd172f 100644 --- a/src/wlan.cpp +++ b/src/wlan.cpp @@ -17,16 +17,25 @@ void connect_wlan(Config *config) { delay(1000); Serial.print("."); } + Serial.println(""); Serial.println("WiFi connected"); } void connect_mqtt(PubSubClient &client, Config *config) { - if (!client.connected()) - client.setServer(config->mqtt_host, config->mqtt_port); - if (client.connect(config->device_id, config->mqtt_user, - config->mqtt_password)) { - Serial.println("MQTT connected"); - client.subscribe(config->topic); + bool connection; + client.setServer(config->mqtt_host, config->mqtt_port); + + while (!client.connected()) { + connection = client.connect(config->device_id, config->mqtt_user, + config->mqtt_password); + if (connection) { + Serial.println("MQTT connected"); + client.subscribe(config->topic); + } else { + Serial.println("MQTT failed to connect"); + Serial.println(client.state()); + delay(5000); + } } }