From dd79bd4d0d180a8f0b53b050289339cbece6bbfb Mon Sep 17 00:00:00 2001 From: DanielR92 Date: Mon, 8 Apr 2024 20:25:27 +0200 Subject: [PATCH] Update zeroExport.h Add mqttObj and remove some hints --- src/plugins/zeroExport/zeroExport.h | 38 +++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/src/plugins/zeroExport/zeroExport.h b/src/plugins/zeroExport/zeroExport.h index 64619d22..05286fed 100644 --- a/src/plugins/zeroExport/zeroExport.h +++ b/src/plugins/zeroExport/zeroExport.h @@ -68,14 +68,14 @@ class ZeroExport { if ((!mIsInitialized) || (!mCfg->enabled)) return; - bool DoLog = false; // false state ? + bool DoLog = false; unsigned long Tsp = millis(); mPowermeter.loop(&Tsp, &DoLog); if (DoLog) sendLog(); clearLog(); - DoLog = false; // here again?? + DoLog = false; for (uint8_t group = 0; group < ZEROEXPORT_MAX_GROUPS; group++) { zeroExportGroup_t *cfgGroup = &mCfg->groups[group]; @@ -263,9 +263,11 @@ class ZeroExport { void tickMidnight(void) { if (!mIsInitialized) return; - // Select all Inverter to reboot - for (uint8_t inv = 0; inv < ZEROEXPORT_GROUP_MAX_INVERTERS; inv++) { - for (uint8_t group = 0; group < ZEROEXPORT_MAX_GROUPS; group++) { + // Select all Inverter to reboot + // shutdown for clean start environment + //@Todo: move to ahoy! + for (uint8_t group = 0; group < ZEROEXPORT_MAX_GROUPS; group++) { + for (uint8_t inv = 0; inv < ZEROEXPORT_GROUP_MAX_INVERTERS; inv++) { mCfg->groups[group].inverters[inv].doReboot = 1; } } @@ -552,7 +554,7 @@ class ZeroExport { { mLog["mqttDevice"] = "topicInverter"; if(!topic.equals(mCfg->groups[group].pm_jsonPath)) return; - mCfg->groups[group].power = (int32_t)obj["val"]; + mCfg->groups[group].pm_P = (int32_t)obj["val"]; } } @@ -808,6 +810,14 @@ class ZeroExport { *doLog = true; } } + // Battery + String gr = "zero/state/groups/" + String(group) + "/battery"; + mqttObj["enabled"] = cfgGroup->battEnabled; + mqttObj["voltageOn"] = cfgGroup->battVoltageOn; + mqttObj["voltageOff"] = cfgGroup->battVoltageOff; + mqttObj["switch"] = cfgGroup->battSwitch; + mqttPublish(gr.c_str(), mqttDoc.as().c_str()); + mqttDoc.clear(); } else { mLog["en"] = false; @@ -1017,6 +1027,18 @@ class ZeroExport { return false; } + // Advanced + String gr = "zero/state/groups/" + String(group) + "/advanced"; + mqttObj["setPoint"] = cfgGroup->setPoint; + mqttObj["refresh"] = cfgGroup->refresh; + mqttObj["powerTolerance"] = cfgGroup->powerTolerance; + mqttObj["powerMax"] = cfgGroup->powerMax; + mqttObj["Kp"] = cfgGroup->Kp; + mqttObj["Ki"] = cfgGroup->Ki; + mqttObj["Kd"] = cfgGroup->Kd; + mqttPublish(gr.c_str(), mqttDoc.as().c_str()); + mqttDoc.clear(); + return true; } @@ -1242,7 +1264,7 @@ class ZeroExport { if ((cfgGroupInv->doReboot == 2) && (cfgGroupInv->waitAckSetReboot == 0)) { cfgGroupInv->doReboot = -1; if (mCfg->debug) { - logObj["act"] = "nothing to do"; + logObj["act"] = "done"; *doLog = true; } continue; @@ -1518,7 +1540,7 @@ class ZeroExport { mApi->ctrlRequest(obj); // publish to mqtt when mqtt - if(mMqtt->isConnected()) //@TODO: check if isConnected the correct way, or better bool from settings? + if(mMqtt->isConnected()) { String gr = "zero/state/groups/" + String(group) + "/inverters/" + String(inv); mqttObj["enabled"] = cfgGroupInv->enabled;