From 6d3172b73b2033a36a3b7c643ee0d3380d3fc5f4 Mon Sep 17 00:00:00 2001 From: Yurii Date: Wed, 11 Oct 2023 19:04:58 +0300 Subject: [PATCH] fix pid --- src/MqttTask.h | 1 + src/OpenThermTask.h | 9 ++++----- src/RegulatorTask.h | 4 ++-- src/Settings.h | 1 + src/defines.h | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/MqttTask.h b/src/MqttTask.h index 06c4574..62cb6f0 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -595,6 +595,7 @@ protected: doc["temperatures"]["heating"] = vars.temperatures.heating; doc["temperatures"]["dhw"] = vars.temperatures.dhw; + doc["parameters"]["heatingEnabled"] = vars.parameters.heatingEnabled; doc["parameters"]["heatingMinTemp"] = vars.parameters.heatingMinTemp; doc["parameters"]["heatingMaxTemp"] = vars.parameters.heatingMaxTemp; doc["parameters"]["heatingSetpoint"] = vars.parameters.heatingSetpoint; diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index 49a9c86..c319431 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -36,9 +36,9 @@ protected: WARN("Slave member id failed"); } - bool _heatingEnabled = (vars.states.emergency || settings.heating.enable) && pump && isReady(); + bool heatingEnabled = (vars.states.emergency || settings.heating.enable) && pump && isReady(); localResponse = ot->setBoilerStatus( - _heatingEnabled, + heatingEnabled, settings.opentherm.dhwPresent && settings.dhw.enable, false, false, true, false, false ); @@ -48,8 +48,8 @@ protected: return; } - if ( heatingEnabled != _heatingEnabled ) { - heatingEnabled = _heatingEnabled; + if ( vars.parameters.heatingEnabled != heatingEnabled ) { + vars.parameters.heatingEnabled = heatingEnabled; INFO_F("Heating enabled: %s\r\n", heatingEnabled ? "on\0" : "off\0"); } @@ -201,7 +201,6 @@ protected: protected: bool pump = true; - bool heatingEnabled = false; unsigned long prevUpdateNonEssentialVars = 0; unsigned long startupTime = millis(); diff --git a/src/RegulatorTask.h b/src/RegulatorTask.h index 9891767..0ae48d7 100644 --- a/src/RegulatorTask.h +++ b/src/RegulatorTask.h @@ -123,7 +123,7 @@ protected: } // if use pid - if (settings.pid.enable && vars.states.heating) { + if (settings.pid.enable && vars.parameters.heatingEnabled) { float pidResult = getPidTemp( settings.equitherm.enable ? (settings.pid.maxTemp * -1) : settings.pid.minTemp, settings.equitherm.enable ? settings.pid.maxTemp : settings.pid.maxTemp @@ -139,7 +139,7 @@ protected: newTemp += prevPidResult; } - } else if ( settings.pid.enable && !vars.states.heating && prevPidResult != 0 ) { + } else if ( settings.pid.enable && !vars.parameters.heatingEnabled && prevPidResult != 0 ) { newTemp += prevPidResult; } diff --git a/src/Settings.h b/src/Settings.h index 58ab545..e88c503 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -106,6 +106,7 @@ struct Variables { } temperatures; struct { + bool heatingEnabled = false; byte heatingMinTemp = 0; byte heatingMaxTemp = 0; byte heatingSetpoint = 0.0f; diff --git a/src/defines.h b/src/defines.h index 6b0ddad..7965cf9 100644 --- a/src/defines.h +++ b/src/defines.h @@ -1,4 +1,4 @@ -#define OT_GATEWAY_VERSION "1.3.0" +#define OT_GATEWAY_VERSION "1.3.1" #define AP_SSID "OpenTherm Gateway" #define AP_PASSWORD "otgateway123456" #define USE_TELNET