feat: added OT option alwaysSendIndoorTemp, rename nativeHeatingControl to nativeOTC (#204)

* added option to always send the current and target indoor temp, even if the current heating mode doesnt officially need it. This is a direct fix for WeHeat heatpumps which seem to require it.

* add option to AlwaysSendIndoorTemp and rename NativeHeatingControl to
NativeOTC.

Updated locals and settings page.

* change minor order
This commit is contained in:
inediblePotato
2025-12-12 13:08:44 +01:00
committed by GitHub
parent eafb33cb6a
commit f9cb421893
12 changed files with 72 additions and 50 deletions

View File

@@ -218,7 +218,7 @@ protected:
vars.master.heating.enabled,
vars.master.dhw.enabled,
settings.opentherm.options.coolingSupport,
settings.opentherm.options.nativeHeatingControl,
settings.opentherm.options.nativeOTC,
vars.master.ch2.enabled,
summerWinterMode,
dhwBlocking,
@@ -911,7 +911,7 @@ protected:
// Update CH2 temp
if (Sensors::getAmountByType(Sensors::Type::OT_CH2_TEMP, true)) {
if (vars.master.ch2.enabled && !settings.opentherm.options.nativeHeatingControl) {
if (vars.master.ch2.enabled && !settings.opentherm.options.nativeOTC) {
if (this->updateCh2Temp()) {
float convertedCh2Temp = convertTemp(
vars.slave.ch2.currentTemp,
@@ -1209,8 +1209,8 @@ protected:
}
}
// Native heating control
if (settings.opentherm.options.nativeHeatingControl) {
// NativeOTC or if the AlwaysSendIndoorTemp option is enabled.
if ((settings.opentherm.options.nativeOTC) || (settings.opentherm.options.alwaysSendIndoorTemp)) {
// Converted current indoor temp
float convertedTemp = convertTemp(vars.master.heating.indoorTemp, settings.system.unitSystem, settings.opentherm.unitSystem);
@@ -1238,7 +1238,6 @@ protected:
}
}
// Converted target indoor temp
convertedTemp = convertTemp(vars.master.heating.targetTemp, settings.system.unitSystem, settings.opentherm.unitSystem);
@@ -1274,7 +1273,7 @@ protected:
}
// Normal heating control
if (!settings.opentherm.options.nativeHeatingControl && vars.master.heating.enabled) {
if (!settings.opentherm.options.nativeOTC && vars.master.heating.enabled) {
// Converted target heating temp
float convertedTemp = convertTemp(vars.master.heating.setpointTemp, settings.system.unitSystem, settings.opentherm.unitSystem);
@@ -1311,7 +1310,7 @@ protected:
}
// Set CH2 temp
if (!settings.opentherm.options.nativeHeatingControl && vars.master.ch2.enabled) {
if (!settings.opentherm.options.nativeOTC && vars.master.ch2.enabled) {
if (settings.opentherm.options.heatingToCh2 || settings.opentherm.options.dhwToCh2) {
// Converted target CH2 temp
float convertedTemp = convertTemp(