From 5d5124dd5bc020b0375cfea7a8ed9037146fff9f Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Wed, 22 Mar 2023 14:53:36 +0100 Subject: [PATCH] fix last power meter update time --- include/PowerLimiter.h | 1 - include/PowerMeter.h | 1 + src/PowerLimiter.cpp | 5 ++--- src/PowerMeter.cpp | 4 ++++ 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/PowerLimiter.h b/include/PowerLimiter.h index e34a5e04..ed1ff2ed 100644 --- a/include/PowerLimiter.h +++ b/include/PowerLimiter.h @@ -30,7 +30,6 @@ public: private: uint32_t _lastCommandSent; uint32_t _lastLoop; - uint32_t _lastPowerMeterUpdate; int32_t _lastRequestedPowerLimit; plStates _plState = STATE_DISCOVER; diff --git a/include/PowerMeter.h b/include/PowerMeter.h index c0ae4640..9fba0888 100644 --- a/include/PowerMeter.h +++ b/include/PowerMeter.h @@ -23,6 +23,7 @@ public: void loop(); void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total); float getPowerTotal(); + uint32_t getLastPowerMeterUpdate(); private: uint32_t _interval; diff --git a/src/PowerLimiter.cpp b/src/PowerLimiter.cpp index aacce897..b9b5b171 100644 --- a/src/PowerLimiter.cpp +++ b/src/PowerLimiter.cpp @@ -19,7 +19,6 @@ void PowerLimiterClass::init() { _lastCommandSent = 0; _lastLoop = 0; - _lastPowerMeterUpdate = 0; _lastRequestedPowerLimit = 0; } @@ -52,7 +51,7 @@ void PowerLimiterClass::loop() return; } - if (millis() - _lastPowerMeterUpdate < (30 * 1000)) { + if (millis() - PowerMeter.getLastPowerMeterUpdate() < (30 * 1000)) { MessageOutput.printf("[PowerLimiterClass::loop] dcVoltage: %.2f Voltage Start Threshold: %.2f Voltage Stop Threshold: %.2f inverter->isProducing(): %d\r\n", dcVoltage, config.PowerLimiter_VoltageStartThreshold, config.PowerLimiter_VoltageStopThreshold, inverter->isProducing()); } @@ -177,7 +176,7 @@ int32_t PowerLimiterClass::calcPowerLimit(std::shared_ptr inve MessageOutput.printf("[PowerLimiterClass::loop] victronChargePower: %d, efficiency: %.2f, consumeSolarPowerOnly: %s, powerConsumption: %d \r\n", victronChargePower, efficency, consumeSolarPowerOnly ? "true" : "false", newPowerLimit); - if (millis() - _lastPowerMeterUpdate < (30 * 1000)) { + if (millis() - PowerMeter.getLastPowerMeterUpdate() < (30 * 1000)) { if (config.PowerLimiter_IsInverterBehindPowerMeter) { // If the inverter the behind the power meter (part of measurement), // the produced power of this inverter has also to be taken into account. diff --git a/src/PowerMeter.cpp b/src/PowerMeter.cpp index ca66943c..752c0801 100644 --- a/src/PowerMeter.cpp +++ b/src/PowerMeter.cpp @@ -88,6 +88,10 @@ float PowerMeterClass::getPowerTotal(){ return _powerMeter1Power + _powerMeter2Power + _powerMeter3Power; } +uint32_t PowerMeterClass::getLastPowerMeterUpdate(){ + return _lastPowerMeterUpdate; +} + void PowerMeterClass::mqtt(){ if (!MqttSettings.getConnected()){ return;