mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-04-28 12:58:10 +00:00
Changed MQTT client timeout setting for ESP8266 (#1077)
This commit is contained in:
@@ -102,10 +102,17 @@ bool AmsMqttHandler::connect() {
|
|||||||
}
|
}
|
||||||
actualClient = mqttClient;
|
actualClient = mqttClient;
|
||||||
}
|
}
|
||||||
int clientTimeout = mqttConfig.timeout / 1000;
|
|
||||||
if(clientTimeout > 3) clientTimeout = 3; // 3000ms is default, see WiFiClient.cpp WIFI_CLIENT_DEF_CONN_TIMEOUT_MS
|
// This section helps with power saving on ESP32 devices by reducing timeouts
|
||||||
actualClient->setTimeout(clientTimeout);
|
// The timeout is multiplied by 10 because WiFiClient is retrying 10 times internally
|
||||||
// Why can't we set number of retries for write here? WiFiClient defaults to 10 (10*3s == 30s)
|
// Power drain for this timeout is too great when using the default 3s timeout
|
||||||
|
// On ESP8266 the timeout is used differently and the following code causes MQTT instability
|
||||||
|
#if defined(ESP32)
|
||||||
|
int clientTimeout = mqttConfig.timeout / 1000;
|
||||||
|
if(clientTimeout > 3) clientTimeout = 3; // 3000ms is default, see WiFiClient.cpp WIFI_CLIENT_DEF_CONN_TIMEOUT_MS
|
||||||
|
actualClient->setTimeout(clientTimeout);
|
||||||
|
// Why can't we set number of retries for write here? WiFiClient defaults to 10 (10*3s == 30s)
|
||||||
|
#endif
|
||||||
|
|
||||||
mqttConfigChanged = false;
|
mqttConfigChanged = false;
|
||||||
mqtt.setTimeout(mqttConfig.timeout);
|
mqtt.setTimeout(mqttConfig.timeout);
|
||||||
|
|||||||
Reference in New Issue
Block a user