feat(add ability to do a polite power meter read):

This commit is contained in:
helgeerbe 2023-06-14 16:21:58 +02:00
parent 080a3eb29e
commit fd58ad2003
3 changed files with 9 additions and 7 deletions

View File

@ -40,7 +40,7 @@ public:
void mqtt(); void mqtt();
void loop(); void loop();
void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total); void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total);
float getPowerTotal(); float getPowerTotal(bool forceUpdate = true);
uint32_t getLastPowerMeterUpdate(); uint32_t getLastPowerMeterUpdate();
private: private:

View File

@ -94,12 +94,14 @@ void PowerMeterClass::onMqttMessage(const espMqttClientTypes::MessageProperties&
_lastPowerMeterUpdate = millis(); _lastPowerMeterUpdate = millis();
} }
float PowerMeterClass::getPowerTotal() float PowerMeterClass::getPowerTotal(bool forceUpdate)
{ {
CONFIG_T& config = Configuration.get(); if (forceUpdate) {
if (config.PowerMeter_Enabled CONFIG_T& config = Configuration.get();
&& (millis() - _lastPowerMeterUpdate) < (1000)) { if (config.PowerMeter_Enabled
readPowerMeter(); && (millis() - _lastPowerMeterUpdate) > (1000)) {
readPowerMeter();
}
} }
return _powerMeter1Power + _powerMeter2Power + _powerMeter3Power; return _powerMeter1Power + _powerMeter2Power + _powerMeter3Power;
} }

View File

@ -202,7 +202,7 @@ void WebApiWsLiveClass::generateJsonResponse(JsonVariant& root)
JsonObject powerMeterObj = root.createNestedObject("power_meter"); JsonObject powerMeterObj = root.createNestedObject("power_meter");
powerMeterObj[F("enabled")] = Configuration.get().PowerMeter_Enabled; powerMeterObj[F("enabled")] = Configuration.get().PowerMeter_Enabled;
addTotalField(powerMeterObj, "Power", PowerMeter.getPowerTotal(), "W", 1); addTotalField(powerMeterObj, "Power", PowerMeter.getPowerTotal(false), "W", 1);
} }