diff --git a/lib/CustomOpenTherm/CustomOpenTherm.h b/lib/CustomOpenTherm/CustomOpenTherm.h index 389cfe5..82f59c1 100644 --- a/lib/CustomOpenTherm/CustomOpenTherm.h +++ b/lib/CustomOpenTherm/CustomOpenTherm.h @@ -106,6 +106,11 @@ public: return isValidResponse(response) && isValidResponseId(response, OpenThermMessageID::RemoteRequest); } + static bool isCh2Active(unsigned long response) + { + return response & 0x20; + } + static bool isValidResponseId(unsigned long response, OpenThermMessageID id) { byte responseId = (response >> 16) & 0xFF; diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index e6fddae..21d9084 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -237,6 +237,7 @@ protected: vars.slave.dhw.active = settings.opentherm.options.dhwSupport ? CustomOpenTherm::isHotWaterActive(response) : false; vars.slave.flame = CustomOpenTherm::isFlameOn(response); vars.slave.cooling = CustomOpenTherm::isCoolingActive(response); + vars.slave.ch2.active = CustomOpenTherm::isCh2Active(response); vars.slave.fault.active = CustomOpenTherm::isFault(response); if (!settings.opentherm.options.ignoreDiagState) { @@ -247,9 +248,9 @@ protected: } Log.snoticeln( - FPSTR(L_OT), F("Received boiler status. Heating: %hhu; DHW: %hhu; flame: %hhu; cooling: %hhu; fault: %hhu; diag: %hhu"), + FPSTR(L_OT), F("Received boiler status. Heating: %hhu; DHW: %hhu; flame: %hhu; cooling: %hhu; channel 2: %hhu; fault: %hhu; diag: %hhu"), vars.slave.heating.active, vars.slave.dhw.active, - vars.slave.flame, vars.slave.cooling, vars.slave.fault.active, vars.slave.diag.active + vars.slave.flame, vars.slave.cooling, vars.slave.ch2.active, vars.slave.fault.active, vars.slave.diag.active ); } diff --git a/src/Settings.h b/src/Settings.h index 634d714..731e4e4 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -398,6 +398,7 @@ struct Variables { } dhw; struct { + bool active = false; bool enabled = false; float targetTemp = 0.0f; float currentTemp = 0.0f;