trying to fix mqtt stops to work after a few hours

This commit is contained in:
Holger Fleischmann
2020-11-15 11:36:06 +01:00
parent 91c7b5e2ef
commit 733ca426a4
3 changed files with 14 additions and 1 deletions

View File

@@ -4,6 +4,7 @@
#include "GeigerData.h" #include "GeigerData.h"
void initIngest(); void initIngest();
void loopIngest();
void deinitIngest(); void deinitIngest();
void ingestToThingspeak(GeigerData &geigerData, uint16_t intervalSamples); void ingestToThingspeak(GeigerData &geigerData, uint16_t intervalSamples);
void ingestToMqtt(GeigerData &geigerData, uint16_t intervalSamples); void ingestToMqtt(GeigerData &geigerData, uint16_t intervalSamples);

View File

@@ -50,6 +50,14 @@ void initIngest()
connectWiFi(); connectWiFi();
} }
void loopIngest()
{
if (mqttClient.connected())
{
mqttClient.loop();
}
}
void deinitIngest() void deinitIngest()
{ {
if (WiFi.status() == WL_CONNECTED) if (WiFi.status() == WL_CONNECTED)
@@ -182,6 +190,9 @@ void ingestToMqtt(GeigerData &geigerData, uint16_t intervalSamples)
sprintf(payload, "{\"pulses\":%lu, \"cpm\":%lu,\"uSph\":%.3f,\"secs\":%d}", sprintf(payload, "{\"pulses\":%lu, \"cpm\":%lu,\"uSph\":%.3f,\"secs\":%d}",
pulses, cpm, uSph, (int)intervalSamples); pulses, cpm, uSph, (int)intervalSamples);
mqttClient.publish(mqttTopic, payload); if (!mqttClient.publish(mqttTopic, payload))
{
mqttClient.disconnect();
}
} }
} }

View File

@@ -93,6 +93,7 @@ void loop()
if (wifiSwitchOn()) if (wifiSwitchOn())
{ {
loopIngest();
ingestCountdown--; ingestCountdown--;
if (ingestCountdown <= 0) if (ingestCountdown <= 0)
{ {