From ff5da950c1522a06bf9f280e21088552e6d828f0 Mon Sep 17 00:00:00 2001 From: Yurii Date: Thu, 21 Dec 2023 16:34:21 +0300 Subject: [PATCH] fix: correction of PID coefficients limits --- src/HaHelper.h | 12 ++++++------ src/MqttTask.h | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/HaHelper.h b/src/HaHelper.h index 9f8a480..9f1b608 100644 --- a/src/HaHelper.h +++ b/src/HaHelper.h @@ -617,9 +617,9 @@ public: doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ value_json.pid.p_factor|float(0)|round(3) }}"); doc[FPSTR(HA_COMMAND_TOPIC)] = this->getDeviceTopic("settings/set"); doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"pid\": {\"p_factor\" : {{ value }}}}"); - doc[FPSTR(HA_MIN)] = 0.001; - doc[FPSTR(HA_MAX)] = 10; - doc[FPSTR(HA_STEP)] = 0.001; + doc[FPSTR(HA_MIN)] = 0.1; + doc[FPSTR(HA_MAX)] = 1000; + doc[FPSTR(HA_STEP)] = 0.1; doc[FPSTR(HA_MODE)] = "box"; doc[FPSTR(HA_EXPIRE_AFTER)] = 120; doc.shrinkToFit(); @@ -639,7 +639,7 @@ public: doc[FPSTR(HA_COMMAND_TOPIC)] = this->getDeviceTopic("settings/set"); doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"pid\": {\"i_factor\" : {{ value }}}}"); doc[FPSTR(HA_MIN)] = 0; - doc[FPSTR(HA_MAX)] = 10; + doc[FPSTR(HA_MAX)] = 100; doc[FPSTR(HA_STEP)] = 0.001; doc[FPSTR(HA_MODE)] = "box"; doc[FPSTR(HA_EXPIRE_AFTER)] = 120; @@ -660,8 +660,8 @@ public: doc[FPSTR(HA_COMMAND_TOPIC)] = this->getDeviceTopic("settings/set"); doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"pid\": {\"d_factor\" : {{ value }}}}"); doc[FPSTR(HA_MIN)] = 0; - doc[FPSTR(HA_MAX)] = 10; - doc[FPSTR(HA_STEP)] = 0.001; + doc[FPSTR(HA_MAX)] = 100000; + doc[FPSTR(HA_STEP)] = 1; doc[FPSTR(HA_MODE)] = "box"; doc[FPSTR(HA_EXPIRE_AFTER)] = 120; doc.shrinkToFit(); diff --git a/src/MqttTask.h b/src/MqttTask.h index e54bc7f..3c422f5 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -408,22 +408,22 @@ protected: } if (!doc["pid"]["p_factor"].isNull() && doc["pid"]["p_factor"].is()) { - if (doc["pid"]["p_factor"].as() > 0 && doc["pid"]["p_factor"].as() <= 10) { - settings.pid.p_factor = round(doc["pid"]["p_factor"].as() * 1000) / 1000; + if (doc["pid"]["p_factor"].as() > 0 && doc["pid"]["p_factor"].as() <= 1000) { + settings.pid.p_factor = round(doc["pid"]["p_factor"].as() * 10) / 10; flag = true; } } if (!doc["pid"]["i_factor"].isNull() && doc["pid"]["i_factor"].is()) { - if (doc["pid"]["i_factor"].as() >= 0 && doc["pid"]["i_factor"].as() <= 10) { + if (doc["pid"]["i_factor"].as() >= 0 && doc["pid"]["i_factor"].as() <= 100) { settings.pid.i_factor = round(doc["pid"]["i_factor"].as() * 1000) / 1000; flag = true; } } if (!doc["pid"]["d_factor"].isNull() && doc["pid"]["d_factor"].is()) { - if (doc["pid"]["d_factor"].as() >= 0 && doc["pid"]["d_factor"].as() <= 10) { - settings.pid.d_factor = round(doc["pid"]["d_factor"].as() * 1000) / 1000; + if (doc["pid"]["d_factor"].as() >= 0 && doc["pid"]["d_factor"].as() <= 100000) { + settings.pid.d_factor = round(doc["pid"]["d_factor"].as() * 10) / 10; flag = true; } }