diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.cpp b/lib/Hoymiles/src/inverters/InverterAbstract.cpp index 3f95589..98cf6fa 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.cpp +++ b/lib/Hoymiles/src/inverters/InverterAbstract.cpp @@ -160,7 +160,7 @@ uint8_t InverterAbstract::getAssignIdxByChannelField(uint8_t channel, uint8_t fi return 0xff; } -float InverterAbstract::getValue(uint8_t channel, uint8_t fieldId) +float InverterAbstract::getChannelFieldValue(uint8_t channel, uint8_t fieldId) { uint8_t pos = getAssignIdxByChannelField(channel, fieldId); if (pos == 0xff) { @@ -190,13 +190,13 @@ float InverterAbstract::getValue(uint8_t channel, uint8_t fieldId) return 0; } -bool InverterAbstract::hasValue(uint8_t channel, uint8_t fieldId) +bool InverterAbstract::hasChannelFieldValue(uint8_t channel, uint8_t fieldId) { uint8_t pos = getAssignIdxByChannelField(channel, fieldId); return pos != 0xff; } -const char* InverterAbstract::getUnit(uint8_t channel, uint8_t fieldId) +const char* InverterAbstract::getChannelFieldUnit(uint8_t channel, uint8_t fieldId) { uint8_t pos = getAssignIdxByChannelField(channel, fieldId); const byteAssign_t* b = getByteAssignment(); @@ -204,7 +204,7 @@ const char* InverterAbstract::getUnit(uint8_t channel, uint8_t fieldId) return units[b[pos].unitId]; } -const char* InverterAbstract::getName(uint8_t channel, uint8_t fieldId) +const char* InverterAbstract::getChannelFieldName(uint8_t channel, uint8_t fieldId) { uint8_t pos = getAssignIdxByChannelField(channel, fieldId); const byteAssign_t* b = getByteAssignment(); @@ -216,7 +216,7 @@ static float calcYieldTotalCh0(InverterAbstract* iv, uint8_t arg0) { float yield = 0; for (uint8_t i = 1; i <= iv->getChannelCount(); i++) { - yield += iv->getValue(i, FLD_YT); + yield += iv->getChannelFieldValue(i, FLD_YT); } return yield; } @@ -225,7 +225,7 @@ static float calcYieldDayCh0(InverterAbstract* iv, uint8_t arg0) { float yield = 0; for (uint8_t i = 1; i <= iv->getChannelCount(); i++) { - yield += iv->getValue(i, FLD_YD); + yield += iv->getChannelFieldValue(i, FLD_YD); } return yield; } @@ -233,14 +233,14 @@ static float calcYieldDayCh0(InverterAbstract* iv, uint8_t arg0) // arg0 = channel of source static float calcUdcCh(InverterAbstract* iv, uint8_t arg0) { - return iv->getValue(arg0, FLD_UDC); + return iv->getChannelFieldValue(arg0, FLD_UDC); } static float calcPowerDcCh0(InverterAbstract* iv, uint8_t arg0) { float dcPower = 0; for (uint8_t i = 1; i <= iv->getChannelCount(); i++) { - dcPower += iv->getValue(i, FLD_PDC); + dcPower += iv->getChannelFieldValue(i, FLD_PDC); } return dcPower; } @@ -248,10 +248,10 @@ static float calcPowerDcCh0(InverterAbstract* iv, uint8_t arg0) // arg0 = channel static float calcEffiencyCh0(InverterAbstract* iv, uint8_t arg0) { - float acPower = iv->getValue(CH0, FLD_PAC); + float acPower = iv->getChannelFieldValue(CH0, FLD_PAC); float dcPower = 0; for (uint8_t i = 1; i <= iv->getChannelCount(); i++) { - dcPower += iv->getValue(i, FLD_PDC); + dcPower += iv->getChannelFieldValue(i, FLD_PDC); } if (dcPower > 0) { return acPower / dcPower * 100.0f; @@ -265,7 +265,7 @@ static float calcIrradiation(InverterAbstract* iv, uint8_t arg0) { if (NULL != iv) { if (iv->getChannelMaxPower(arg0) > 0) - return iv->getValue(arg0, FLD_PDC) / iv->getChannelMaxPower(arg0) * 100.0f; + return iv->getChannelFieldValue(arg0, FLD_PDC) / iv->getChannelMaxPower(arg0) * 100.0f; } return 0.0; } \ No newline at end of file diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.h b/lib/Hoymiles/src/inverters/InverterAbstract.h index 3f47e7b..5c7d331 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.h +++ b/lib/Hoymiles/src/inverters/InverterAbstract.h @@ -106,10 +106,10 @@ public: uint8_t verifyAllFragments(); uint8_t getAssignIdxByChannelField(uint8_t channel, uint8_t fieldId); - float getValue(uint8_t channel, uint8_t fieldId); - bool hasValue(uint8_t channel, uint8_t fieldId); - const char* getUnit(uint8_t channel, uint8_t fieldId); - const char* getName(uint8_t channel, uint8_t fieldId); + float getChannelFieldValue(uint8_t channel, uint8_t fieldId); + bool hasChannelFieldValue(uint8_t channel, uint8_t fieldId); + const char* getChannelFieldUnit(uint8_t channel, uint8_t fieldId); + const char* getChannelFieldName(uint8_t channel, uint8_t fieldId); virtual bool getStatsRequest(inverter_transaction_t* payload) = 0; uint32_t getLastStatsUpdate(); diff --git a/src/MqttPublishing.cpp b/src/MqttPublishing.cpp index 94b2194..6d7df5b 100644 --- a/src/MqttPublishing.cpp +++ b/src/MqttPublishing.cpp @@ -62,7 +62,7 @@ void MqttPublishingClass::loop() void MqttPublishingClass::publishField(String subtopic, std::shared_ptr inv, uint8_t channel, uint8_t fieldId) { - if (inv->hasValue(channel, fieldId)) { - MqttSettings.publish(subtopic + "/" + String(channel) + "/" + inv->getName(channel, fieldId), String(inv->getValue(channel, fieldId))); + if (inv->hasChannelFieldValue(channel, fieldId)) { + MqttSettings.publish(subtopic + "/" + String(channel) + "/" + inv->getChannelFieldName(channel, fieldId), String(inv->getChannelFieldValue(channel, fieldId))); } } \ No newline at end of file diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 6340755..8d9fc6e 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -81,8 +81,8 @@ void WebApiWsLiveClass::loop() void WebApiWsLiveClass::addField(JsonDocument& root, uint8_t idx, std::shared_ptr inv, uint8_t channel, uint8_t fieldId) { - if (inv->hasValue(channel, fieldId)) { - root[idx][String(channel)][inv->getName(channel, fieldId)]["v"] = inv->getValue(channel, fieldId); - root[idx][String(channel)][inv->getName(channel, fieldId)]["u"] = inv->getUnit(channel, fieldId); + if (inv->hasChannelFieldValue(channel, fieldId)) { + root[idx][String(channel)][inv->getChannelFieldName(channel, fieldId)]["v"] = inv->getChannelFieldValue(channel, fieldId); + root[idx][String(channel)][inv->getChannelFieldName(channel, fieldId)]["u"] = inv->getChannelFieldUnit(channel, fieldId); } } \ No newline at end of file