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); + } } }