From 6d81b0a8566a33552744a45d5048a2ac25853447 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Thu, 13 Oct 2022 20:24:56 +0200 Subject: [PATCH] Fixed all build warnings --- src/AmsToMqttBridge.ino | 21 +++++++++++---------- src/EnergyAccounting.cpp | 2 +- src/IEC6205675.cpp | 10 +++++++--- src/Uptime.cpp | 3 +++ src/Uptime.h | 2 -- src/entsoe/EntsoeA44Parser.cpp | 6 +++++- src/entsoe/EntsoeA44Parser.h | 1 + src/entsoe/EntsoeApi.cpp | 4 ++-- src/mqtt/AmsMqttHandler.h | 1 + src/mqtt/HomeAssistantMqttHandler.cpp | 16 ++++++++-------- src/mqtt/JsonMqttHandler.cpp | 11 ++++++----- src/mqtt/RawMqttHandler.cpp | 8 ++++---- src/web/AmsWebServer.cpp | 12 ++++++------ web/data.json | 6 +++--- web/ha2.json | 2 +- web/json1.json | 4 ++-- web/json2.json | 4 ++-- web/json3.json | 6 +++--- web/json4.json | 6 +++--- 19 files changed, 69 insertions(+), 56 deletions(-) diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 9956cde0..5d988fac 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -119,7 +119,6 @@ DLMSParser *dlmsParser = NULL; DSMRParser *dsmrParser = NULL; void setup() { - WiFiConfig wifi; Serial.begin(115200); if(!config.getGpioConfig(gpioConfig)) { @@ -246,7 +245,6 @@ void setup() { } Debug.setSerialEnabled(true); - DebugConfig debug; delay(1); float vcc = hw.getVcc(); @@ -591,7 +589,7 @@ void loop() { if(mqtt != NULL && mqttHandler != NULL && WiFi.getMode() != WIFI_AP && WiFi.status() == WL_CONNECTED && mqtt->connected() && !topic.isEmpty()) { mqttHandler->publishTemperatures(&config, &hw); } - debugD("Used %d ms to update temperature", millis()-start); + debugD("Used %ld ms to update temperature", millis()-start); } if(now - lastSysupdate > 10000) { if(mqtt != NULL && mqttHandler != NULL && WiFi.getMode() != WIFI_AP && WiFi.status() == WL_CONNECTED && mqtt->connected() && !topic.isEmpty()) { @@ -1017,6 +1015,9 @@ void WiFi_connect() { debugE("WiFi error, wrong password"); break; #endif + default: + debugE("WiFi error, %d", WiFi.status()); + break; } if(wifiReconnectCount > 3) { ESP.restart(); @@ -1145,16 +1146,16 @@ void WiFi_connect() { void mqttMessageReceived(String &topic, String &payload) { debugI("Received message for topic %s", topic.c_str() ); - if(meterConfig.source == METER_SOURCE_MQTT) { - DataParserContext ctx = {static_cast(payload.length()/2)}; - fromHex(hanBuffer, payload, ctx.length); - uint16_t pos = unwrapData(hanBuffer, ctx); + //if(meterConfig.source == METER_SOURCE_MQTT) { + //DataParserContext ctx = {static_cast(payload.length()/2)}; + //fromHex(hanBuffer, payload, ctx.length); + //uint16_t pos = unwrapData(hanBuffer, ctx); // TODO: Run through DLMS/DMSR parser and apply AmsData - } + //} } int16_t unwrapData(uint8_t *buf, DataParserContext &context) { - int16_t ret; + int16_t ret = 0; bool doRet = false; uint16_t end = BUF_SIZE_HAN; uint8_t tag = (*buf); @@ -1399,7 +1400,7 @@ void MQTT_connect() { #if defined(ESP8266) if(mqttSecureClient) { time_t epoch = time(nullptr); - debugD("Setting NTP time %i for secure MQTT connection", epoch); + debugD("Setting NTP time %lld for secure MQTT connection", epoch); mqttSecureClient->setX509Time(epoch); } #endif diff --git a/src/EnergyAccounting.cpp b/src/EnergyAccounting.cpp index d31441fb..87a0d252 100644 --- a/src/EnergyAccounting.cpp +++ b/src/EnergyAccounting.cpp @@ -57,7 +57,7 @@ bool EnergyAccounting::update(AmsData* amsData) { for(uint8_t i = 0; i < 5; i++) { debugger->printf("(EnergyAccounting) Peak hour from day %d: %d\n", data.peaks[i].day, data.peaks[i].value*10); } - debugger->printf("(EnergyAccounting) Loaded cost yesterday: %d, this month: %d, last month: %d\n", data.costYesterday / 10.0, data.costThisMonth, data.costLastMonth); + debugger->printf("(EnergyAccounting) Loaded cost yesterday: %.2f, this month: %d, last month: %d\n", data.costYesterday / 10.0, data.costThisMonth, data.costLastMonth); } init = true; } diff --git a/src/IEC6205675.cpp b/src/IEC6205675.cpp index 10ebda8f..8a4ccab6 100644 --- a/src/IEC6205675.cpp +++ b/src/IEC6205675.cpp @@ -368,12 +368,16 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo if(mid != NULL) { switch(mid->base.type) { case CosemTypeString: - memcpy(&meterId, mid->str.data, mid->str.length); + memcpy(str, mid->oct.data, mid->oct.length); + str[mid->oct.length] = 0x00; + meterId = String(str); meterId[mid->str.length] = 0; break; case CosemTypeOctetString: - memcpy(&meterId, mid->oct.data, mid->oct.length); - meterId[mid->oct.length] = 0; + memcpy(str, mid->str.data, mid->str.length); + str[mid->str.length] = 0x00; + meterId = String(str); + meterId[mid->str.length] = 0; break; } } diff --git a/src/Uptime.cpp b/src/Uptime.cpp index d3f739fd..65b5bd1d 100644 --- a/src/Uptime.cpp +++ b/src/Uptime.cpp @@ -1,5 +1,8 @@ #include "Uptime.h" +uint32_t _uptime_last_value = 0; +uint32_t _uptime_rollovers = 0; + uint64_t millis64() { uint32_t new_low32 = millis(); if (new_low32 < _uptime_last_value) _uptime_rollovers++; diff --git a/src/Uptime.h b/src/Uptime.h index 9b1a14a9..aeea9732 100644 --- a/src/Uptime.h +++ b/src/Uptime.h @@ -3,8 +3,6 @@ #include "Arduino.h" -static uint32_t _uptime_last_value = 0; -static uint32_t _uptime_rollovers = 0; uint64_t millis64(); #endif diff --git a/src/entsoe/EntsoeA44Parser.cpp b/src/entsoe/EntsoeA44Parser.cpp index 1d7fa9b2..9dc41de6 100644 --- a/src/entsoe/EntsoeA44Parser.cpp +++ b/src/entsoe/EntsoeA44Parser.cpp @@ -5,6 +5,10 @@ EntsoeA44Parser::EntsoeA44Parser() { for(int i = 0; i < 24; i++) points[i] = ENTSOE_NO_VALUE; } +EntsoeA44Parser::~EntsoeA44Parser() { + +} + char* EntsoeA44Parser::getCurrency() { return currency; } @@ -35,7 +39,7 @@ void EntsoeA44Parser::flush() { } size_t EntsoeA44Parser::write(const uint8_t *buffer, size_t size) { - for(int i = 0; i < size; i++) { + for(size_t i = 0; i < size; i++) { write(buffer[i]); } return size; diff --git a/src/entsoe/EntsoeA44Parser.h b/src/entsoe/EntsoeA44Parser.h index 4d860214..2f538d10 100644 --- a/src/entsoe/EntsoeA44Parser.h +++ b/src/entsoe/EntsoeA44Parser.h @@ -14,6 +14,7 @@ class EntsoeA44Parser: public Stream { public: EntsoeA44Parser(); + virtual ~EntsoeA44Parser(); char* getCurrency(); char* getMeasurementUnit(); diff --git a/src/entsoe/EntsoeApi.cpp b/src/entsoe/EntsoeApi.cpp index 886e7201..922220a2 100644 --- a/src/entsoe/EntsoeApi.cpp +++ b/src/entsoe/EntsoeApi.cpp @@ -106,11 +106,11 @@ bool EntsoeApi::loop() { if(midnightMillis == 0) { uint32_t curDayMillis = (((((tm.Hour * 60) + tm.Minute) * 60) + tm.Second) * 1000); midnightMillis = now + (SECS_PER_DAY * 1000) - curDayMillis; - if(debugger->isActive(RemoteDebug::INFO)) debugger->printf("(EntsoeApi) Setting midnight millis %lu\n", midnightMillis); + if(debugger->isActive(RemoteDebug::INFO)) debugger->printf("(EntsoeApi) Setting midnight millis %llu\n", midnightMillis); currentDay = tm.Day; return false; } else if(now > midnightMillis && currentDay != tm.Day) { - if(debugger->isActive(RemoteDebug::INFO)) debugger->printf("(EntsoeApi) Rotating price objects at %lu\n", t); + if(debugger->isActive(RemoteDebug::INFO)) debugger->printf("(EntsoeApi) Rotating price objects at %lld\n", t); if(today != NULL) delete today; if(tomorrow != NULL) { today = tomorrow; diff --git a/src/mqtt/AmsMqttHandler.h b/src/mqtt/AmsMqttHandler.h index 4ec71634..109c2a8d 100644 --- a/src/mqtt/AmsMqttHandler.h +++ b/src/mqtt/AmsMqttHandler.h @@ -15,6 +15,7 @@ public: this->mqtt = mqtt; this->json = buf; }; + virtual ~AmsMqttHandler() {}; virtual bool publish(AmsData* data, AmsData* previousState, EnergyAccounting* ea); virtual bool publishTemperatures(AmsConfiguration*, HwTools*); diff --git a/src/mqtt/HomeAssistantMqttHandler.cpp b/src/mqtt/HomeAssistantMqttHandler.cpp index 969db87c..7880c254 100644 --- a/src/mqtt/HomeAssistantMqttHandler.cpp +++ b/src/mqtt/HomeAssistantMqttHandler.cpp @@ -141,7 +141,7 @@ bool HomeAssistantMqttHandler::publishPrices(EntsoeApi* eapi) { time_t now = time(nullptr); - float min1hr, min3hr, min6hr; + float min1hr = 0.0, min3hr = 0.0, min6hr = 0.0; int8_t min1hrIdx = -1, min3hrIdx = -1, min6hrIdx = -1; float min = INT16_MAX, max = INT16_MIN; float values[24]; @@ -191,7 +191,7 @@ bool HomeAssistantMqttHandler::publishPrices(EntsoeApi* eapi) { } - char ts1hr[21]; + char ts1hr[24]; if(min1hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min1hrIdx); //Serial.printf("1hr: %d %lu\n", min1hrIdx, ts); @@ -199,7 +199,7 @@ bool HomeAssistantMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts1hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts3hr[21]; + char ts3hr[24]; if(min3hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min3hrIdx); //Serial.printf("3hr: %d %lu\n", min3hrIdx, ts); @@ -207,7 +207,7 @@ bool HomeAssistantMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts3hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts6hr[21]; + char ts6hr[24]; if(min6hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min6hrIdx); //Serial.printf("6hr: %d %lu\n", min6hrIdx, ts); @@ -287,13 +287,13 @@ bool HomeAssistantMqttHandler::publishSystem(HwTools* hw, EntsoeApi* eapi, Energ peaks++; } snprintf_P(json, BufferSize, HADISCOVER_JSON, - FPSTR(sensor.name), - topic.c_str(), FPSTR(sensor.topic), + sensor.name, + topic.c_str(), sensor.topic, haUID.c_str(), uid.c_str(), haUID.c_str(), uid.c_str(), uom.c_str(), - FPSTR(sensor.path), - FPSTR(sensor.devcl), + sensor.path, + sensor.devcl, haUID.c_str(), haName.c_str(), haModel.c_str(), diff --git a/src/mqtt/JsonMqttHandler.cpp b/src/mqtt/JsonMqttHandler.cpp index 1b406c93..9448b762 100644 --- a/src/mqtt/JsonMqttHandler.cpp +++ b/src/mqtt/JsonMqttHandler.cpp @@ -149,8 +149,9 @@ bool JsonMqttHandler::publish(AmsData* data, AmsData* previousState, EnergyAccou bool JsonMqttHandler::publishTemperatures(AmsConfiguration* config, HwTools* hw) { int count = hw->getTempSensorCount(); - if(count < 2) + if(count < 2) { return false; + } snprintf(json, 24, "{\"temperatures\":{"); @@ -179,7 +180,7 @@ bool JsonMqttHandler::publishPrices(EntsoeApi* eapi) { time_t now = time(nullptr); - float min1hr, min3hr, min6hr; + float min1hr = 0.0, min3hr = 0.0, min6hr = 0.0; int8_t min1hrIdx = -1, min3hrIdx = -1, min6hrIdx = -1; float min = INT16_MAX, max = INT16_MIN; float values[24]; @@ -229,7 +230,7 @@ bool JsonMqttHandler::publishPrices(EntsoeApi* eapi) { } - char ts1hr[21]; + char ts1hr[24]; if(min1hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min1hrIdx); //Serial.printf("1hr: %d %lu\n", min1hrIdx, ts); @@ -237,7 +238,7 @@ bool JsonMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts1hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts3hr[21]; + char ts3hr[24]; if(min3hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min3hrIdx); //Serial.printf("3hr: %d %lu\n", min3hrIdx, ts); @@ -245,7 +246,7 @@ bool JsonMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts3hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts6hr[21]; + char ts6hr[24]; if(min6hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min6hrIdx); //Serial.printf("6hr: %d %lu\n", min6hrIdx, ts); diff --git a/src/mqtt/RawMqttHandler.cpp b/src/mqtt/RawMqttHandler.cpp index f2b681b4..19e6db44 100644 --- a/src/mqtt/RawMqttHandler.cpp +++ b/src/mqtt/RawMqttHandler.cpp @@ -124,7 +124,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) { time_t now = time(nullptr); - float min1hr, min3hr, min6hr; + float min1hr = 0.0, min3hr = 0.0, min6hr = 0.0; int8_t min1hrIdx = -1, min3hrIdx = -1, min6hrIdx = -1; float min = INT16_MAX, max = INT16_MIN; float values[34]; @@ -175,7 +175,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) { } - char ts1hr[21]; + char ts1hr[24]; if(min1hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min1hrIdx); //Serial.printf("1hr: %d %lu\n", min1hrIdx, ts); @@ -183,7 +183,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts1hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts3hr[21]; + char ts3hr[24]; if(min3hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min3hrIdx); //Serial.printf("3hr: %d %lu\n", min3hrIdx, ts); @@ -191,7 +191,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) { breakTime(ts, tm); sprintf(ts3hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char ts6hr[21]; + char ts6hr[24]; if(min6hrIdx > -1) { time_t ts = now + (SECS_PER_HOUR * min6hrIdx); //Serial.printf("6hr: %d %lu\n", min6hrIdx, ts); diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp index 0c7e44ce..20611d36 100644 --- a/src/web/AmsWebServer.cpp +++ b/src/web/AmsWebServer.cpp @@ -1599,21 +1599,21 @@ HTTPUpload& AmsWebServer::uploadFile(const char* path) { } file = LittleFS.open(path, "w"); if(debugger->isActive(RemoteDebug::DEBUG)) { - debugger->printf("handleFileUpload Open file and write: %lu\n", upload.currentSize); + debugger->printf("handleFileUpload Open file and write: %u\n", upload.currentSize); } size_t written = file.write(upload.buf, upload.currentSize); if(debugger->isActive(RemoteDebug::DEBUG)) { - debugger->printf("handleFileUpload Written: %lu\n", written); + debugger->printf("handleFileUpload Written: %u\n", written); } } } else if(upload.status == UPLOAD_FILE_WRITE) { if(debugger->isActive(RemoteDebug::DEBUG)) { - debugger->printf("handleFileUpload Writing: %lu\n", upload.currentSize); + debugger->printf("handleFileUpload Writing: %u\n", upload.currentSize); } if(file) { size_t written = file.write(upload.buf, upload.currentSize); if(debugger->isActive(RemoteDebug::DEBUG)) { - debugger->printf("handleFileUpload Written: %lu\n", written); + debugger->printf("handleFileUpload Written: %u\n", written); } delay(1); if(written != upload.currentSize) { @@ -2332,7 +2332,7 @@ void AmsWebServer::configFileDownload() { ds->getHourImport(23) )); if(day.activeExport > 0) { - server.sendContent(buf, snprintf(buf, BufferSize, " %lu %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + server.sendContent(buf, snprintf(buf, BufferSize, " %u %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", day.activeExport, ds->getHourExport(0), ds->getHourExport(1), @@ -2401,7 +2401,7 @@ void AmsWebServer::configFileDownload() { ds->getDayImport(31) )); if(month.activeExport > 0) { - server.sendContent(buf, snprintf_P(buf, BufferSize, " %lu %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + server.sendContent(buf, snprintf_P(buf, BufferSize, " %u %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", month.activeExport, ds->getDayExport(1), ds->getDayExport(2), diff --git a/web/data.json b/web/data.json index 0581d6ac..a713055a 100644 --- a/web/data.json +++ b/web/data.json @@ -23,8 +23,8 @@ "v" : %.3f, "r" : %d, "t" : %.2f, - "u" : %lu, - "m" : %lu, + "u" : %u, + "m" : %u, "em" : %d, "hm" : %d, "wm" : %d, @@ -53,5 +53,5 @@ "p" : %.2f } }, - "c" : %lu + "c" : %u } \ No newline at end of file diff --git a/web/ha2.json b/web/ha2.json index 06ab3f26..53fe3841 100644 --- a/web/ha2.json +++ b/web/ha2.json @@ -3,5 +3,5 @@ "tPO" : %.2f, "tQI" : %.2f, "tQO" : %.2f, - "rtc" : %lu + "rtc" : %lld } diff --git a/web/json1.json b/web/json1.json index 70f74801..e38fb4b9 100644 --- a/web/json1.json +++ b/web/json1.json @@ -1,8 +1,8 @@ { "id" : "%s", "name" : "%s", - "up" : %lu, - "t" : %lu, + "up" : %u, + "t" : %lld, "vcc" : %.3f, "rssi": %d, "temp": %.2f, diff --git a/web/json2.json b/web/json2.json index b875ac11..44bde282 100644 --- a/web/json2.json +++ b/web/json2.json @@ -1,8 +1,8 @@ { "id" : "%s", "name" : "%s", - "up" : %lu, - "t" : %lu, + "up" : %u, + "t" : %lld, "vcc" : %.3f, "rssi": %d, "temp": %.2f, diff --git a/web/json3.json b/web/json3.json index 33d022ba..09961abe 100644 --- a/web/json3.json +++ b/web/json3.json @@ -1,8 +1,8 @@ { "id" : "%s", "name" : "%s", - "up" : %lu, - "t" : %lu, + "up" : %u, + "t" : %lld, "vcc" : %.3f, "rssi": %d, "temp": %.2f, @@ -24,7 +24,7 @@ "tPO" : %.3f, "tQI" : %.3f, "tQO" : %.3f, - "rtc" : %lu + "rtc" : %lld }, "realtime" : { "h" : %.2f, diff --git a/web/json4.json b/web/json4.json index cb61fb90..417c2eed 100644 --- a/web/json4.json +++ b/web/json4.json @@ -1,8 +1,8 @@ { "id" : "%s", "name" : "%s", - "up" : %lu, - "t" : %lu, + "up" : %u, + "t" : %lld, "vcc" : %.3f, "rssi": %d, "temp": %.2f, @@ -34,7 +34,7 @@ "tPO" : %.2f, "tQI" : %.2f, "tQO" : %.2f, - "rtc" : %lu + "rtc" : %lld }, "realtime" : { "h" : %.2f,