feat(add ability to do a polite power meter read):
This commit is contained in:
parent
080a3eb29e
commit
fd58ad2003
@ -40,7 +40,7 @@ public:
|
||||
void mqtt();
|
||||
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();
|
||||
float getPowerTotal(bool forceUpdate = true);
|
||||
uint32_t getLastPowerMeterUpdate();
|
||||
|
||||
private:
|
||||
|
||||
@ -94,12 +94,14 @@ void PowerMeterClass::onMqttMessage(const espMqttClientTypes::MessageProperties&
|
||||
_lastPowerMeterUpdate = millis();
|
||||
}
|
||||
|
||||
float PowerMeterClass::getPowerTotal()
|
||||
float PowerMeterClass::getPowerTotal(bool forceUpdate)
|
||||
{
|
||||
CONFIG_T& config = Configuration.get();
|
||||
if (config.PowerMeter_Enabled
|
||||
&& (millis() - _lastPowerMeterUpdate) < (1000)) {
|
||||
readPowerMeter();
|
||||
if (forceUpdate) {
|
||||
CONFIG_T& config = Configuration.get();
|
||||
if (config.PowerMeter_Enabled
|
||||
&& (millis() - _lastPowerMeterUpdate) > (1000)) {
|
||||
readPowerMeter();
|
||||
}
|
||||
}
|
||||
return _powerMeter1Power + _powerMeter2Power + _powerMeter3Power;
|
||||
}
|
||||
|
||||
@ -202,7 +202,7 @@ void WebApiWsLiveClass::generateJsonResponse(JsonVariant& root)
|
||||
|
||||
JsonObject powerMeterObj = root.createNestedObject("power_meter");
|
||||
powerMeterObj[F("enabled")] = Configuration.get().PowerMeter_Enabled;
|
||||
addTotalField(powerMeterObj, "Power", PowerMeter.getPowerTotal(), "W", 1);
|
||||
addTotalField(powerMeterObj, "Power", PowerMeter.getPowerTotal(false), "W", 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user