Limit number of MQTT connection tries

as proposed by @nimbl at https://github.com/toblum/McLighting/issues/22
This commit is contained in:
Tobias Blum
2017-08-19 22:22:36 +02:00
parent ab9253abde
commit 91571eafcc
3 changed files with 17 additions and 7 deletions
+7 -3
View File
@@ -390,11 +390,12 @@ void checkForRequests() {
void mqtt_reconnect() {
// Loop until we're reconnected
while (!mqtt_client.connected()) {
DBG_OUTPUT_PORT.print("Attempting MQTT connection... ");
while (!mqtt_client.connected() && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) {
mqtt_reconnect_retries++;
DBG_OUTPUT_PORT.printf("Attempting MQTT connection %d / %d ...\n", mqtt_reconnect_retries, MQTT_MAX_RECONNECT_TRIES);
// Attempt to connect
if (mqtt_client.connect(mqtt_clientid, mqtt_user, mqtt_pass)) {
DBG_OUTPUT_PORT.println("connected!");
DBG_OUTPUT_PORT.println("MQTT connected!");
// Once connected, publish an announcement...
char * message = new char[18 + strlen(HOSTNAME) + 1];
strcpy(message, "McLighting ready: ");
@@ -413,5 +414,8 @@ void checkForRequests() {
delay(5000);
}
}
if (mqtt_reconnect_retries >= MQTT_MAX_RECONNECT_TRIES) {
DBG_OUTPUT_PORT.printf("MQTT connection failed, giving up after %d tries ...\n", mqtt_reconnect_retries);
}
}
#endif