check mqtt connection for Network Timeout until restart

This commit is contained in:
technyon
2023-01-26 21:10:58 +01:00
parent ac1da3a25c
commit 05ef2fa5be

View File

@@ -181,19 +181,18 @@ int Network::update()
if(!_device->isConnected()) if(!_device->isConnected())
{ {
if(_networkTimeout > 0 && (ts - _lastConnectedTs > _networkTimeout * 1000)) return 2;
}
if(!_device->mqttClient()->connected())
{
if(_networkTimeout > 0 && (ts - _lastConnectedTs > _networkTimeout * 1000) && ts > 60000)
{ {
Log->println("Network timeout has been reached, restarting ..."); Log->println("Network timeout has been reached, restarting ...");
delay(200); delay(200);
ESP.restart(); ESP.restart();
} }
return 2;
}
_lastConnectedTs = ts;
if(!_device->mqttClient()->connected())
{
bool success = reconnect(); bool success = reconnect();
if(!success) if(!success)
{ {
@@ -201,6 +200,8 @@ int Network::update()
} }
} }
_lastConnectedTs = ts;
if(_presenceCsv != nullptr && strlen(_presenceCsv) > 0) if(_presenceCsv != nullptr && strlen(_presenceCsv) > 0)
{ {
bool success = publishString(_mqttPresencePrefix, mqtt_topic_presence, _presenceCsv); bool success = publishString(_mqttPresencePrefix, mqtt_topic_presence, _presenceCsv);