decreased verbosity, send MQTT ping every 2 minutes to avoid disconnect.

This commit is contained in:
Martin Preuss
2023-07-12 16:45:20 +02:00
parent 4489314b47
commit c7f232dd98
9 changed files with 56 additions and 15 deletions

View File

@@ -47,6 +47,8 @@
#define I18N(msg) msg
#define I18S(msg) msg
#define AQHOME_MQTTLOG_PING_INTERVAL 120
//#define FULL_DEBUG
@@ -146,6 +148,7 @@ int _serve(GWEN_DB_NODE *dbArgs)
int rv;
int timeout;
time_t startTime;
time_t lastPingSendTime;
const char *baseFolder;
startTime=time(NULL);
@@ -196,6 +199,8 @@ int _serve(GWEN_DB_NODE *dbArgs)
return rv;
}
lastPingSendTime=time(NULL);
while(!stopService) {
DBG_DEBUG(NULL, "Next loop");
GWEN_MsgEndpoint2_IoLoop(epTcp, 2000); /* 2000 ms */
@@ -222,7 +227,10 @@ int _serve(GWEN_DB_NODE *dbArgs)
GWEN_Buffer_free(buf);
#endif
AqHomeMqttLog_HandlePublishMsg(baseFolder, itemList, msg);
}
}
else if ((AQH_MqttMsg_GetMsgTypeAndFlags(msg) & 0xf0)==(AQH_MQTTMSG_MSGTYPE_PINGRESP & 0xf0)) {
DBG_INFO(AQH_LOGDOMAIN, "PING response received");
}
else {
#ifdef FULL_DEBUG
DBG_ERROR(NULL, "Received this message:");
@@ -232,13 +240,26 @@ int _serve(GWEN_DB_NODE *dbArgs)
GWEN_Msg_free(msg);
}
}
if (timeout) {
time_t now;
now=time(NULL);
if ((now-startTime)>timeout) {
DBG_INFO(NULL, "Timeout, stopping service");
break;
DBG_INFO(NULL, "Timeout, stopping service");
break;
}
}
if (1){
time_t now;
now=time(NULL);
if (now-lastPingSendTime>AQHOME_MQTTLOG_PING_INTERVAL) {
rv=AqHomeMqttLog_Ping(epTcp);
if (rv<0) {
DBG_INFO(NULL, "Error sending PING");
}
lastPingSendTime=time(NULL);
}
}
}