From 2ff84cbddfcc3cfb5d4f05dbf3dcc46e08f24b8c Mon Sep 17 00:00:00 2001 From: Yurii Date: Tue, 12 Nov 2024 11:42:48 +0300 Subject: [PATCH] fix: update target heating temp when restoring settings --- src/utils.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/utils.h b/src/utils.h index b982f68..94ae99f 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1351,20 +1351,24 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false // force check heating target { - float value = !src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].isNull() ? src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].as() : dst.heating.target; + bool indoorTempControl = dst.equitherm.enabled || dst.pid.enabled || dst.opentherm.nativeHeatingControl; + float minTemp = indoorTempControl ? THERMOSTAT_INDOOR_MIN_TEMP : dst.heating.minTemp; + float maxTemp = indoorTempControl ? THERMOSTAT_INDOOR_MAX_TEMP : dst.heating.maxTemp; + + float value = !src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].isNull() + ? src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].as() + : dst.heating.target; bool valid = isValidTemp( value, dst.system.unitSystem, - vars.master.heating.minTemp, - vars.master.heating.maxTemp, + minTemp, + maxTemp, dst.system.unitSystem ); if (!valid) { value = convertTemp( - vars.master.heating.indoorTempControl - ? THERMOSTAT_INDOOR_DEFAULT_TEMP - : DEFAULT_HEATING_TARGET_TEMP, + indoorTempControl ? THERMOSTAT_INDOOR_DEFAULT_TEMP : DEFAULT_HEATING_TARGET_TEMP, UnitSystem::METRIC, dst.system.unitSystem ); @@ -1378,7 +1382,9 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false // force check dhw target { - float value = !src[FPSTR(S_DHW)][FPSTR(S_TARGET)].isNull() ? src[FPSTR(S_DHW)][FPSTR(S_TARGET)].as() : dst.dhw.target; + float value = !src[FPSTR(S_DHW)][FPSTR(S_TARGET)].isNull() + ? src[FPSTR(S_DHW)][FPSTR(S_TARGET)].as() + : dst.dhw.target; bool valid = isValidTemp( value, dst.system.unitSystem,