Feature: Set/obtain DPL target power consumption via MQTT
This commit is contained in:
parent
95e560bdc7
commit
ccbaf55808
@ -24,7 +24,8 @@ private:
|
||||
VoltageStopThreshold,
|
||||
FullSolarPassThroughStartVoltage,
|
||||
FullSolarPassThroughStopVoltage,
|
||||
UpperPowerLimit
|
||||
UpperPowerLimit,
|
||||
TargetPowerConsumption
|
||||
};
|
||||
|
||||
void onMqttCmd(MqttPowerLimiterCommand command, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total);
|
||||
|
||||
@ -45,6 +45,7 @@ void MqttHandlePowerLimiterClass::init(Scheduler& scheduler)
|
||||
subscribe("threshold/voltage/full_solar_passthrough_stop", MqttPowerLimiterCommand::FullSolarPassThroughStopVoltage);
|
||||
subscribe("mode", MqttPowerLimiterCommand::Mode);
|
||||
subscribe("upper_power_limit", MqttPowerLimiterCommand::UpperPowerLimit);
|
||||
subscribe("target_power_consumption", MqttPowerLimiterCommand::TargetPowerConsumption);
|
||||
|
||||
_lastPublish = millis();
|
||||
}
|
||||
@ -79,6 +80,8 @@ void MqttHandlePowerLimiterClass::loop()
|
||||
|
||||
MqttSettings.publish("powerlimiter/status/upper_power_limit", String(config.PowerLimiter.UpperPowerLimit));
|
||||
|
||||
MqttSettings.publish("powerlimiter/status/target_power_consumption", String(config.PowerLimiter.TargetPowerConsumption));
|
||||
|
||||
MqttSettings.publish("powerlimiter/status/inverter_update_timeouts", String(PowerLimiter.getInverterUpdateTimeouts()));
|
||||
|
||||
// no thresholds are relevant for setups without a battery
|
||||
@ -182,6 +185,11 @@ void MqttHandlePowerLimiterClass::onMqttCmd(MqttPowerLimiterCommand command, con
|
||||
MessageOutput.printf("Setting upper power limit to: %d W\r\n", intValue);
|
||||
config.PowerLimiter.UpperPowerLimit = intValue;
|
||||
break;
|
||||
case MqttPowerLimiterCommand::TargetPowerConsumption:
|
||||
if (config.PowerLimiter.TargetPowerConsumption == intValue) { return; }
|
||||
MessageOutput.printf("Setting target power consumption to: %d W\r\n", intValue);
|
||||
config.PowerLimiter.TargetPowerConsumption = intValue;
|
||||
break;
|
||||
}
|
||||
|
||||
// not reached if the value did not change
|
||||
|
||||
Loading…
Reference in New Issue
Block a user