From 66453b08541f860544b54874cc55839a0960f1b5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 3 Oct 2022 13:58:50 +0200 Subject: [PATCH] Return correct formatted HwVersion --- lib/Hoymiles/src/parser/DevInfoParser.cpp | 6 ++++-- lib/Hoymiles/src/parser/DevInfoParser.h | 2 +- src/MqttPublishing.cpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index cefdfb7..ce32bfc 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -90,9 +90,11 @@ uint32_t DevInfoParser::getHwPartNumber() return ((uint32_t)hwpn_h << 16) | ((uint32_t)hwpn_l); } -uint16_t DevInfoParser::getHwVersion() +String DevInfoParser::getHwVersion() { - return (((uint16_t)_payloadDevInfoSimple[6]) << 8) | _payloadDevInfoSimple[7]; + char buf[6]; + snprintf(buf, sizeof(buf), "%02X.%02X", _payloadDevInfoSimple[6], _payloadDevInfoSimple[7]); + return String(buf); } /* struct tm to seconds since Unix epoch */ diff --git a/lib/Hoymiles/src/parser/DevInfoParser.h b/lib/Hoymiles/src/parser/DevInfoParser.h index 0718efa..4606586 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.h +++ b/lib/Hoymiles/src/parser/DevInfoParser.h @@ -23,7 +23,7 @@ public: uint16_t getFwBootloaderVersion(); uint32_t getHwPartNumber(); - uint16_t getHwVersion(); + String getHwVersion(); private: time_t timegm(struct tm* tm); diff --git a/src/MqttPublishing.cpp b/src/MqttPublishing.cpp index 048a635..0e722f6 100644 --- a/src/MqttPublishing.cpp +++ b/src/MqttPublishing.cpp @@ -59,7 +59,7 @@ void MqttPublishingClass::loop() MqttSettings.publish(subtopic + "/device/hwpartnumber", String(inv->DevInfo()->getHwPartNumber())); // Hardware version - MqttSettings.publish(subtopic + "/device/hwversion", String(inv->DevInfo()->getHwVersion())); + MqttSettings.publish(subtopic + "/device/hwversion", inv->DevInfo()->getHwVersion()); } if (inv->SystemConfigPara()->getLastUpdate() > 0) {