fix: update target heating temp when restoring settings

This commit is contained in:
Yurii
2024-11-12 11:42:48 +03:00
parent 8b6e6be670
commit 2ff84cbddf

View File

@@ -1351,20 +1351,24 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false
// force check heating target // force check heating target
{ {
float value = !src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].isNull() ? src[FPSTR(S_HEATING)][FPSTR(S_TARGET)].as<float>() : 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<float>()
: dst.heating.target;
bool valid = isValidTemp( bool valid = isValidTemp(
value, value,
dst.system.unitSystem, dst.system.unitSystem,
vars.master.heating.minTemp, minTemp,
vars.master.heating.maxTemp, maxTemp,
dst.system.unitSystem dst.system.unitSystem
); );
if (!valid) { if (!valid) {
value = convertTemp( value = convertTemp(
vars.master.heating.indoorTempControl indoorTempControl ? THERMOSTAT_INDOOR_DEFAULT_TEMP : DEFAULT_HEATING_TARGET_TEMP,
? THERMOSTAT_INDOOR_DEFAULT_TEMP
: DEFAULT_HEATING_TARGET_TEMP,
UnitSystem::METRIC, UnitSystem::METRIC,
dst.system.unitSystem dst.system.unitSystem
); );
@@ -1378,7 +1382,9 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false
// force check dhw target // force check dhw target
{ {
float value = !src[FPSTR(S_DHW)][FPSTR(S_TARGET)].isNull() ? src[FPSTR(S_DHW)][FPSTR(S_TARGET)].as<float>() : dst.dhw.target; float value = !src[FPSTR(S_DHW)][FPSTR(S_TARGET)].isNull()
? src[FPSTR(S_DHW)][FPSTR(S_TARGET)].as<float>()
: dst.dhw.target;
bool valid = isValidTemp( bool valid = isValidTemp(
value, value,
dst.system.unitSystem, dst.system.unitSystem,