From 0af809e4eaa08b9bb5081b63c0df2c28367f2fb9 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 23 Sep 2022 19:14:15 +0200 Subject: [PATCH] Do not appy settings if mqtt was retained and topic was non-persistent --- src/MqttSettings.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/MqttSettings.cpp b/src/MqttSettings.cpp index 0d265a7..f3cbb52 100644 --- a/src/MqttSettings.cpp +++ b/src/MqttSettings.cpp @@ -135,12 +135,20 @@ void MqttSettingsClass::onMqttMessage(const espMqttClientTypes::MessagePropertie // Set inverter limit relative non persistent limit = min(100, limit); Serial.printf("Limit Non-Persistent: %d %%\n", limit); - inv->sendActivePowerControlRequest(Hoymiles.getRadio(), limit, PowerLimitControlType::RelativNonPersistent); + if (!properties.retain) { + inv->sendActivePowerControlRequest(Hoymiles.getRadio(), limit, PowerLimitControlType::RelativNonPersistent); + } else { + Serial.println("Ignored because retained"); + } } else if (!strcmp(setting, TOPIC_SUB_LIMIT_NONPERSISTENT_ABSOLUTE)) { // Set inverter limit absolute non persistent Serial.printf("Limit Non-Persistent: %d W\n", limit); - inv->sendActivePowerControlRequest(Hoymiles.getRadio(), limit, PowerLimitControlType::AbsolutNonPersistent); + if (!properties.retain) { + inv->sendActivePowerControlRequest(Hoymiles.getRadio(), limit, PowerLimitControlType::AbsolutNonPersistent); + } else { + Serial.println("Ignored because retained"); + } } }