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; };