diff --git a/scripts/__pycache__/htmlPreprocessorDefines.cpython-311.pyc b/scripts/__pycache__/htmlPreprocessorDefines.cpython-311.pyc
index 8b8e3440..6dca7de6 100644
Binary files a/scripts/__pycache__/htmlPreprocessorDefines.cpython-311.pyc and b/scripts/__pycache__/htmlPreprocessorDefines.cpython-311.pyc differ
diff --git a/src/app.h b/src/app.h
index 12d03d0b..634696f2 100644
--- a/src/app.h
+++ b/src/app.h
@@ -239,14 +239,6 @@ class app : public IApp, public ah::Scheduler {
#endif
}
- bool getMqttJsonEnabled() override {
- #if defined(ENABLE_MQTT)
- return mMqtt.isJson();
- #else
- return 0;
- #endif
- }
-
uint32_t getMqttTxCnt() override {
#if defined(ENABLE_MQTT)
return mMqtt.getTxCnt();
diff --git a/src/appInterface.h b/src/appInterface.h
index 92fade46..f2292ec8 100644
--- a/src/appInterface.h
+++ b/src/appInterface.h
@@ -52,7 +52,6 @@ class IApp {
virtual bool getSettingsValid() = 0;
virtual void setMqttDiscoveryFlag() = 0;
virtual bool getMqttIsConnected() = 0;
- virtual bool getMqttJsonEnabled() = 0;
virtual bool getNrfEnabled() = 0;
virtual bool getCmtEnabled() = 0;
diff --git a/src/config/settings.h b/src/config/settings.h
index d10f641b..02beedce 100644
--- a/src/config/settings.h
+++ b/src/config/settings.h
@@ -486,7 +486,7 @@ class settings {
snprintf(mCfg.mqtt.pwd, MQTT_PWD_LEN, "%s", DEF_MQTT_PWD);
snprintf(mCfg.mqtt.topic, MQTT_TOPIC_LEN, "%s", DEF_MQTT_TOPIC);
mCfg.mqtt.interval = 0; // off
- mCfg.mqtt.json = 0; // off
+ mCfg.mqtt.json = false; // off
mCfg.mqtt.enableRetain = true;
mCfg.inst.sendInterval = SEND_INTERVAL;
diff --git a/src/hm/hmInverter.h b/src/hm/hmInverter.h
index 860cf51d..b72ec5ab 100644
--- a/src/hm/hmInverter.h
+++ b/src/hm/hmInverter.h
@@ -53,9 +53,6 @@ T calcIrradiation(Inverter<> *iv, uint8_t arg0);
template
T calcMaxPowerAcCh0(Inverter<> *iv, uint8_t arg0);
-template
-T calcMaxTempCh0(Inverter<> *iv, uint8_t arg0);
-
template
T calcMaxPowerDc(Inverter<> *iv, uint8_t arg0);
@@ -975,28 +972,6 @@ T calcMaxPowerAcCh0(Inverter<> *iv, uint8_t arg0) {
return acMaxPower;
}
-template
-T calcMaxTempCh0(Inverter<> *iv, uint8_t arg0) {
- DPRINTLN(DBG_VERBOSE, F("hmInverter.h:calcMaxTempCh0"));
- T maxTemp = 0.0;
- if(NULL != iv) {
- record_t<> *rec = iv->getRecordStruct(RealTimeRunData_Debug);
- T Temp = iv->getChannelFieldValue(arg0, FLD_T, rec);
-
- for(uint8_t i = 0; i < rec->length; i++) {
- if((FLD_MT == rec->assign[i].fieldId) && (0 == rec->assign[i].ch)) {
- maxTemp = iv->getValue(i, rec);
- }
- }
- if(Temp > maxTemp) {
- iv->tsMaxTemperature = *iv->Timestamp;
- return Temp;
- }
- }
- return maxTemp;
-}
-
-
template
T calcMaxPowerDc(Inverter<> *iv, uint8_t arg0) {
DPRINTLN(DBG_VERBOSE, F("hmInverter.h:calcMaxPowerDc"));
diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h
index f422fad7..f092a159 100644
--- a/src/publisher/pubMqtt.h
+++ b/src/publisher/pubMqtt.h
@@ -62,7 +62,7 @@ class PubMqtt {
mUptime = uptime;
mIntervalTimeout = 1;
- SendIvData.setup(app, sys, utcTs, &mSendList);
+ SendIvData.setup(app, sys, cfg_mqtt, utcTs, &mSendList);
SendIvData.setPublishFunc([this](const char *subTopic, const char *payload, bool retained, uint8_t qos) {
publish(subTopic, payload, retained, true, qos);
});
@@ -235,10 +235,6 @@ class PubMqtt {
return mRxCnt;
}
- inline bool isJson() {
- return mCfgMqtt->json;
- }
-
void sendDiscoveryConfig(void) {
DPRINTLN(DBG_VERBOSE, F("sendMqttDiscoveryConfig"));
mDiscovery.running = true;
diff --git a/src/publisher/pubMqttIvData.h b/src/publisher/pubMqttIvData.h
index afd6165b..d2ac2fae 100644
--- a/src/publisher/pubMqttIvData.h
+++ b/src/publisher/pubMqttIvData.h
@@ -24,10 +24,10 @@ class PubMqttIvData {
public:
PubMqttIvData() : mTotal{}, mSubTopic{}, mVal{} {}
- void setup(IApp *app, HMSYSTEM *sys, uint32_t *utcTs, std::queue *sendList) {
+ void setup(IApp *app, HMSYSTEM *sys, cfgMqtt_t *cfg_mqtt, uint32_t *utcTs, std::queue *sendList) {
mApp = app;
mSys = sys;
- mJson = app->getMqttJsonEnabled();
+ mCfg = cfg_mqtt;
mUtcTimestamp = utcTs;
mSendList = sendList;
mState = IDLE;
@@ -194,13 +194,13 @@ class PubMqttIvData {
static_cast(mIv->getChannelFieldValue(CH0, FLD_GRID_PROFILE_CODE, rec)),
static_cast(mIv->getChannelFieldValue(CH0, FLD_GRID_PROFILE_VERSION, rec)));
} else {
- if (!mJson) {
+ if (!mCfg->json) {
snprintf(mSubTopic.data(), mSubTopic.size(), "%s/ch%d/%s", mIv->config->name, rec->assign[mPos].ch, fields[rec->assign[mPos].fieldId]);
snprintf(mVal.data(), mVal.size(), "%g", ah::round3(mIv->getValue(mPos, rec)));
}
}
- if (InverterDevInform_All == mCmd || InverterDevInform_Simple == mCmd || !mJson) {
+ if ((InverterDevInform_All == mCmd) || (InverterDevInform_Simple == mCmd) || !mCfg->json) {
uint8_t qos = (FLD_ACT_ACTIVE_PWR_LIMIT == rec->assign[mPos].fieldId) ? QOS_2 : QOS_0;
if((FLD_EVT != rec->assign[mPos].fieldId)
&& (FLD_LAST_ALARM_CODE != rec->assign[mPos].fieldId))
@@ -210,26 +210,24 @@ class PubMqttIvData {
mPos++;
} else {
if (MqttSentStatus::LAST_SUCCESS_SENT == rec->mqttSentStatus) {
- if (mJson && RealTimeRunData_Debug == mCmd) {
+ if (mCfg->json && (RealTimeRunData_Debug == mCmd)) {
DynamicJsonDocument doc(300);
- std::array buf;
for (mPos = 0; mPos < rec->length; mPos++) {
doc[fields[rec->assign[mPos].fieldId]] = ah::round3(mIv->getValue(mPos, rec));
bool publish = false;
- if (mPos != rec->length - 1) { // not last one
+ if (mPos != (rec->length - 1)) { // not last one
if (rec->assign[mPos].ch != rec->assign[mPos+1].ch)
publish = true;
} else
publish = true;
if (publish) {
- publish = false;
// if next channel or end->publish
- serializeJson(doc, buf.data(), buf.size());
+ serializeJson(doc, mVal.data(), mVal.size());
snprintf(mSubTopic.data(), mSubTopic.size(), "%s/ch%d", mIv->config->name, rec->assign[mPos].ch);
- mPublish(mSubTopic.data(), buf.data(), false, QOS_0);
+ mPublish(mSubTopic.data(), mVal.data(), false, QOS_0);
doc.clear();
}
}
@@ -292,14 +290,14 @@ class PubMqttIvData {
mTotal[4] = mApp->getTotalMaxPower();
break;
}
- if (!mJson) {
+ if (!mCfg->json) {
snprintf(mSubTopic.data(), mSubTopic.size(), "total/%s", fields[fieldId]);
snprintf(mVal.data(), mVal.size(), "%g", ah::round3(mTotal[mPos]));
mPublish(mSubTopic.data(), mVal.data(), retained, QOS_0);
}
mPos++;
} else {
- if (mJson) {
+ if (mCfg->json) {
int type[5] = {FLD_PAC, FLD_YT, FLD_YD, FLD_PDC, FLD_MP};
snprintf(mVal.data(), mVal.size(), "{");
@@ -321,6 +319,7 @@ class PubMqttIvData {
private:
IApp *mApp = nullptr;
+ cfgMqtt_t *mCfg = nullptr;
HMSYSTEM *mSys = nullptr;
uint32_t *mUtcTimestamp = nullptr;
@@ -339,8 +338,7 @@ class PubMqttIvData {
bool mRTRDataHasBeenSent = false;
std::array mSubTopic;
- std::array mVal;
- bool mJson;
+ std::array mVal;
std::queue *mSendList = nullptr;
};