From 0a577f80020f87a3eead7643618393890c669353 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 11 Oct 2022 23:28:22 +0200 Subject: [PATCH] Allow a maximum limit of 100 if limit type is relative --- lib/Hoymiles/src/inverters/HM_Abstract.cpp | 4 ++++ src/MqttSettings.cpp | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Hoymiles/src/inverters/HM_Abstract.cpp b/lib/Hoymiles/src/inverters/HM_Abstract.cpp index 64c01fd..5fc0bbb 100644 --- a/lib/Hoymiles/src/inverters/HM_Abstract.cpp +++ b/lib/Hoymiles/src/inverters/HM_Abstract.cpp @@ -97,6 +97,10 @@ bool HM_Abstract::sendSystemConfigParaRequest(HoymilesRadio* radio) bool HM_Abstract::sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type) { + if (type == PowerLimitControlType::RelativNonPersistent || type == PowerLimitControlType::RelativPersistent) { + limit = min(100, limit); + } + _activePowerControlLimit = limit; _activePowerControlType = type; diff --git a/src/MqttSettings.cpp b/src/MqttSettings.cpp index 3970670..d7e7a65 100644 --- a/src/MqttSettings.cpp +++ b/src/MqttSettings.cpp @@ -129,7 +129,6 @@ void MqttSettingsClass::onMqttMessage(const espMqttClientTypes::MessagePropertie if (!strcmp(setting, TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE)) { // Set inverter limit relative persistent - payload_val = min(100, payload_val); Serial.printf("Limit Persistent: %d %%\n", payload_val); inv->sendActivePowerControlRequest(Hoymiles.getRadio(), payload_val, PowerLimitControlType::RelativPersistent); @@ -140,7 +139,6 @@ void MqttSettingsClass::onMqttMessage(const espMqttClientTypes::MessagePropertie } else if (!strcmp(setting, TOPIC_SUB_LIMIT_NONPERSISTENT_RELATIVE)) { // Set inverter limit relative non persistent - payload_val = min(100, payload_val); Serial.printf("Limit Non-Persistent: %d %%\n", payload_val); if (!properties.retain) { inv->sendActivePowerControlRequest(Hoymiles.getRadio(), payload_val, PowerLimitControlType::RelativNonPersistent);