mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 18:54:28 +05:00
feat: added OT option `Heating state as summer/winter mode`
This commit is contained in:
@@ -178,13 +178,19 @@ protected:
|
|||||||
statusLb = 0xCA;
|
statusLb = 0xCA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Summer/winter mode
|
||||||
|
bool summerWinterMode = settings.opentherm.options.summerWinterMode;
|
||||||
|
if (settings.opentherm.options.heatingStateToSummerWinterMode) {
|
||||||
|
summerWinterMode = vars.master.heating.enabled == summerWinterMode;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned long response = this->instance->setBoilerStatus(
|
unsigned long response = this->instance->setBoilerStatus(
|
||||||
vars.master.heating.enabled,
|
vars.master.heating.enabled,
|
||||||
vars.master.dhw.enabled,
|
vars.master.dhw.enabled,
|
||||||
settings.opentherm.options.coolingSupport,
|
settings.opentherm.options.coolingSupport,
|
||||||
settings.opentherm.options.nativeHeatingControl,
|
settings.opentherm.options.nativeHeatingControl,
|
||||||
vars.master.ch2.enabled,
|
vars.master.ch2.enabled,
|
||||||
settings.opentherm.options.summerWinterMode,
|
summerWinterMode,
|
||||||
settings.opentherm.options.dhwBlocking,
|
settings.opentherm.options.dhwBlocking,
|
||||||
statusLb
|
statusLb
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ struct Settings {
|
|||||||
bool dhwSupport = true;
|
bool dhwSupport = true;
|
||||||
bool coolingSupport = false;
|
bool coolingSupport = false;
|
||||||
bool summerWinterMode = false;
|
bool summerWinterMode = false;
|
||||||
|
bool heatingStateToSummerWinterMode = false;
|
||||||
bool ch2AlwaysEnabled = true;
|
bool ch2AlwaysEnabled = true;
|
||||||
bool heatingToCh2 = false;
|
bool heatingToCh2 = false;
|
||||||
bool dhwToCh2 = false;
|
bool dhwToCh2 = false;
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ const char S_GPIO[] PROGMEM = "gpio";
|
|||||||
const char S_HEAP[] PROGMEM = "heap";
|
const char S_HEAP[] PROGMEM = "heap";
|
||||||
const char S_HEATING[] PROGMEM = "heating";
|
const char S_HEATING[] PROGMEM = "heating";
|
||||||
const char S_HEATING_TO_CH2[] PROGMEM = "heatingToCh2";
|
const char S_HEATING_TO_CH2[] PROGMEM = "heatingToCh2";
|
||||||
|
const char S_HEATING_STATE_TO_SUMMER_WINTER_MODE[] PROGMEM = "heatingStateToSummerWinterMode";
|
||||||
const char S_HIDDEN[] PROGMEM = "hidden";
|
const char S_HIDDEN[] PROGMEM = "hidden";
|
||||||
const char S_HOME_ASSISTANT_DISCOVERY[] PROGMEM = "homeAssistantDiscovery";
|
const char S_HOME_ASSISTANT_DISCOVERY[] PROGMEM = "homeAssistantDiscovery";
|
||||||
const char S_HOSTNAME[] PROGMEM = "hostname";
|
const char S_HOSTNAME[] PROGMEM = "hostname";
|
||||||
|
|||||||
10
src/utils.h
10
src/utils.h
@@ -382,6 +382,7 @@ void settingsToJson(const Settings& src, JsonVariant dst, bool safe = false) {
|
|||||||
otOptions[FPSTR(S_DHW_SUPPORT)] = src.opentherm.options.dhwSupport;
|
otOptions[FPSTR(S_DHW_SUPPORT)] = src.opentherm.options.dhwSupport;
|
||||||
otOptions[FPSTR(S_COOLING_SUPPORT)] = src.opentherm.options.coolingSupport;
|
otOptions[FPSTR(S_COOLING_SUPPORT)] = src.opentherm.options.coolingSupport;
|
||||||
otOptions[FPSTR(S_SUMMER_WINTER_MODE)] = src.opentherm.options.summerWinterMode;
|
otOptions[FPSTR(S_SUMMER_WINTER_MODE)] = src.opentherm.options.summerWinterMode;
|
||||||
|
otOptions[FPSTR(S_HEATING_STATE_TO_SUMMER_WINTER_MODE)] = src.opentherm.options.heatingStateToSummerWinterMode;
|
||||||
otOptions[FPSTR(S_CH2_ALWAYS_ENABLED)] = src.opentherm.options.ch2AlwaysEnabled;
|
otOptions[FPSTR(S_CH2_ALWAYS_ENABLED)] = src.opentherm.options.ch2AlwaysEnabled;
|
||||||
otOptions[FPSTR(S_HEATING_TO_CH2)] = src.opentherm.options.heatingToCh2;
|
otOptions[FPSTR(S_HEATING_TO_CH2)] = src.opentherm.options.heatingToCh2;
|
||||||
otOptions[FPSTR(S_DHW_TO_CH2)] = src.opentherm.options.dhwToCh2;
|
otOptions[FPSTR(S_DHW_TO_CH2)] = src.opentherm.options.dhwToCh2;
|
||||||
@@ -748,6 +749,15 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_HEATING_STATE_TO_SUMMER_WINTER_MODE)].is<bool>()) {
|
||||||
|
bool value = src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_HEATING_STATE_TO_SUMMER_WINTER_MODE)].as<bool>();
|
||||||
|
|
||||||
|
if (value != dst.opentherm.options.heatingStateToSummerWinterMode) {
|
||||||
|
dst.opentherm.options.heatingStateToSummerWinterMode = value;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_CH2_ALWAYS_ENABLED)].is<bool>()) {
|
if (src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_CH2_ALWAYS_ENABLED)].is<bool>()) {
|
||||||
bool value = src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_CH2_ALWAYS_ENABLED)].as<bool>();
|
bool value = src[FPSTR(S_OPENTHERM)][FPSTR(S_OPTIONS)][FPSTR(S_CH2_ALWAYS_ENABLED)].as<bool>();
|
||||||
|
|
||||||
|
|||||||
@@ -360,6 +360,7 @@
|
|||||||
"dhwSupport": "DHW support",
|
"dhwSupport": "DHW support",
|
||||||
"coolingSupport": "Cooling support",
|
"coolingSupport": "Cooling support",
|
||||||
"summerWinterMode": "Summer/winter mode",
|
"summerWinterMode": "Summer/winter mode",
|
||||||
|
"heatingStateToSummerWinterMode": "Heating state as summer/winter mode",
|
||||||
"ch2AlwaysEnabled": "CH2 always enabled",
|
"ch2AlwaysEnabled": "CH2 always enabled",
|
||||||
"heatingToCh2": "Duplicate heating to CH2",
|
"heatingToCh2": "Duplicate heating to CH2",
|
||||||
"dhwToCh2": "Duplicate DHW to CH2",
|
"dhwToCh2": "Duplicate DHW to CH2",
|
||||||
|
|||||||
@@ -360,6 +360,7 @@
|
|||||||
"dhwSupport": "Поддержка ГВС",
|
"dhwSupport": "Поддержка ГВС",
|
||||||
"coolingSupport": "Поддержка охлаждения",
|
"coolingSupport": "Поддержка охлаждения",
|
||||||
"summerWinterMode": "Летний/зимний режим",
|
"summerWinterMode": "Летний/зимний режим",
|
||||||
|
"heatingStateToSummerWinterMode": "Летний/зимний режим в качестве состояния отопления",
|
||||||
"ch2AlwaysEnabled": "Канал 2 всегда вкл.",
|
"ch2AlwaysEnabled": "Канал 2 всегда вкл.",
|
||||||
"heatingToCh2": "Дублировать параметры отопления в канал 2",
|
"heatingToCh2": "Дублировать параметры отопления в канал 2",
|
||||||
"dhwToCh2": "Дублировать параметры ГВС в канал 2",
|
"dhwToCh2": "Дублировать параметры ГВС в канал 2",
|
||||||
|
|||||||
@@ -419,6 +419,11 @@
|
|||||||
<span data-i18n>settings.ot.options.summerWinterMode</span>
|
<span data-i18n>settings.ot.options.summerWinterMode</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="opentherm[options][heatingStateToSummerWinterMode]" value="true">
|
||||||
|
<span data-i18n>settings.ot.options.heatingStateToSummerWinterMode</span>
|
||||||
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="opentherm[options][ch2AlwaysEnabled]" value="true">
|
<input type="checkbox" name="opentherm[options][ch2AlwaysEnabled]" value="true">
|
||||||
<span data-i18n>settings.ot.options.ch2AlwaysEnabled</span>
|
<span data-i18n>settings.ot.options.ch2AlwaysEnabled</span>
|
||||||
@@ -704,6 +709,7 @@
|
|||||||
setCheckboxValue("[name='opentherm[options][dhwSupport]']", data.opentherm.options.dhwSupport);
|
setCheckboxValue("[name='opentherm[options][dhwSupport]']", data.opentherm.options.dhwSupport);
|
||||||
setCheckboxValue("[name='opentherm[options][coolingSupport]']", data.opentherm.options.coolingSupport);
|
setCheckboxValue("[name='opentherm[options][coolingSupport]']", data.opentherm.options.coolingSupport);
|
||||||
setCheckboxValue("[name='opentherm[options][summerWinterMode]']", data.opentherm.options.summerWinterMode);
|
setCheckboxValue("[name='opentherm[options][summerWinterMode]']", data.opentherm.options.summerWinterMode);
|
||||||
|
setCheckboxValue("[name='opentherm[options][heatingStateToSummerWinterMode]']", data.opentherm.options.heatingStateToSummerWinterMode);
|
||||||
setCheckboxValue("[name='opentherm[options][ch2AlwaysEnabled]']", data.opentherm.options.ch2AlwaysEnabled);
|
setCheckboxValue("[name='opentherm[options][ch2AlwaysEnabled]']", data.opentherm.options.ch2AlwaysEnabled);
|
||||||
setCheckboxValue("[name='opentherm[options][heatingToCh2]']", data.opentherm.options.heatingToCh2);
|
setCheckboxValue("[name='opentherm[options][heatingToCh2]']", data.opentherm.options.heatingToCh2);
|
||||||
setCheckboxValue("[name='opentherm[options][dhwToCh2]']", data.opentherm.options.dhwToCh2);
|
setCheckboxValue("[name='opentherm[options][dhwToCh2]']", data.opentherm.options.dhwToCh2);
|
||||||
|
|||||||
Reference in New Issue
Block a user