diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index d4f599003..fd6ed5cc7 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -137,6 +137,14 @@ time_t DevInfoParser::getFwBuildDateTime() const return timegm(&timeinfo); } +String DevInfoParser::getFwBuildDateTimeStr() const +{ + char timebuffer[32]; + const time_t t = getFwBuildDateTime(); + std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t)); + return timebuffer; +} + uint16_t DevInfoParser::getFwBootloaderVersion() const { HOY_SEMAPHORE_TAKE(); @@ -254,4 +262,4 @@ time_t DevInfoParser::timegm(const struct tm* t) result -= 3600; /*@ -matchanyintegral @*/ return (result); -} \ No newline at end of file +} diff --git a/lib/Hoymiles/src/parser/DevInfoParser.h b/lib/Hoymiles/src/parser/DevInfoParser.h index 89c40f862..239055251 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.h +++ b/lib/Hoymiles/src/parser/DevInfoParser.h @@ -21,6 +21,7 @@ class DevInfoParser : public Parser { uint16_t getFwBuildVersion() const; time_t getFwBuildDateTime() const; + String getFwBuildDateTimeStr() const; uint16_t getFwBootloaderVersion() const; uint32_t getHwPartNumber() const; @@ -43,4 +44,4 @@ class DevInfoParser : public Parser { uint8_t _payloadDevInfoSimple[DEV_INFO_SIZE] = {}; uint8_t _devInfoSimpleLength = 0; -}; \ No newline at end of file +}; diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index 761b0e083..0c1676e0b 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -68,10 +68,7 @@ void MqttHandleInverterClass::loop() MqttSettings.publish(subtopic + "/device/fwbuildversion", String(inv->DevInfo()->getFwBuildVersion())); // Firmware Build DateTime - char timebuffer[32]; - const time_t t = inv->DevInfo()->getFwBuildDateTime(); - std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t)); - MqttSettings.publish(subtopic + "/device/fwbuilddatetime", String(timebuffer)); + MqttSettings.publish(subtopic + "/device/fwbuilddatetime", inv->DevInfo()->getFwBuildDateTimeStr()); // Hardware part number MqttSettings.publish(subtopic + "/device/hwpartnumber", String(inv->DevInfo()->getHwPartNumber())); diff --git a/src/WebApi_devinfo.cpp b/src/WebApi_devinfo.cpp index b5f3e3707..07ed08171 100644 --- a/src/WebApi_devinfo.cpp +++ b/src/WebApi_devinfo.cpp @@ -46,13 +46,9 @@ void WebApiDevInfoClass::onDevInfoStatus(AsyncWebServerRequest* request) root["hw_version"] = inv->DevInfo()->getHwVersion(); root["hw_model_name"] = inv->DevInfo()->getHwModelName(); root["max_power"] = inv->DevInfo()->getMaxPower(); - - char timebuffer[32]; - const time_t t = inv->DevInfo()->getFwBuildDateTime(); - std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t)); - root["fw_build_datetime"] = String(timebuffer); + root["fw_build_datetime"] = inv->DevInfo()->getFwBuildDateTimeStr(); } response->setLength(); request->send(response); -} \ No newline at end of file +}