Change uptime calculation method (#901)

and revert #897
This commit is contained in:
Florian authored and GitHub committed 2021-03-18 15:07:59 -05:00
1 parent 401cc39123
commit 221afa98b0
2 files changed
+17 -3

No files matched your search

+1 -1
View File
@@ -174,7 +174,7 @@ void pubMqttDiscovery() {
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: Uptime", (char*)getUniqueId("uptime", "").c_str(), //set state_topic,name,uniqueId
"", "", "{{ value_json.uptime }}", //set availability_topic,device_class,value_template,
"", "", "min", //set,payload_on,payload_off,unit_of_meas,
"", "", "s", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
+16 -2
View File
@@ -1318,12 +1318,26 @@ void loop() {
#endif
}
/**
* Calculate uptime and take into account the millis() rollover
*/
unsigned long uptime() {
static unsigned long lastUptime = 0;
static unsigned long uptimeAdd = 0;
unsigned long uptime = millis() / 1000 + uptimeAdd;
if (uptime < lastUptime) {
uptime += 4294967;
uptimeAdd += 4294967;
}
lastUptime = uptime;
return uptime;
}
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
void stateMeasures() {
StaticJsonBuffer<JSON_MSG_BUFFER> jsonBuffer;
JsonObject& SYSdata = jsonBuffer.createObject();
unsigned long uptime = millis() / 60000; //minutes uptime
SYSdata["uptime"] = uptime;
SYSdata["uptime"] = uptime();
SYSdata["version"] = OMG_VERSION;
Log.trace(F("retrieving value of system characteristics Uptime (min):%u" CR), uptime);
# if defined(ESP8266) || defined(ESP32)