Retry MQTT connection indefinitely until it works

This commit is contained in:
2025-11-27 13:17:30 +01:00
parent 8907700a8a
commit f1a8ec6ed0

View File

@@ -17,16 +17,25 @@ void connect_wlan(Config *config) {
delay(1000); delay(1000);
Serial.print("."); Serial.print(".");
} }
Serial.println("");
Serial.println("WiFi connected"); Serial.println("WiFi connected");
} }
void connect_mqtt(PubSubClient &client, Config *config) { void connect_mqtt(PubSubClient &client, Config *config) {
if (!client.connected()) bool connection;
client.setServer(config->mqtt_host, config->mqtt_port); client.setServer(config->mqtt_host, config->mqtt_port);
if (client.connect(config->device_id, config->mqtt_user,
config->mqtt_password)) { while (!client.connected()) {
connection = client.connect(config->device_id, config->mqtt_user,
config->mqtt_password);
if (connection) {
Serial.println("MQTT connected"); Serial.println("MQTT connected");
client.subscribe(config->topic); client.subscribe(config->topic);
} else {
Serial.println("MQTT failed to connect");
Serial.println(client.state());
delay(5000);
}
} }
} }