From 2f658a9a14b2d83f84d7d383e5ff52cec2681e0b Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 8 Nov 2023 14:18:28 +0100 Subject: [PATCH] add boiler wwSelTempEcoplus --- src/devices/boiler.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 91b2d6750..f290ca169 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -797,6 +797,12 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const FL_(wwSelTempLow), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_ww_temp_low)); + register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, + &wwSelTempEcoplus_, + DeviceValueType::UINT, + FL_(wwSelTempEco), + DeviceValueUOM::DEGREES, + MAKE_CF_CB(set_ww_temp_eco)); register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, &wwSelTempOff_, DeviceValueType::UINT, FL_(wwSelTempOff), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, &wwSelTempSingle_, @@ -1416,6 +1422,7 @@ void Boiler::process_UBAParameterWWPlus(std::shared_ptr telegram has_update(telegram, wwSelTempLow_, 18); has_update(telegram, wwMaxTemp_, 20); has_update(telegram, wwChargeOptimization_, 25); + has_update(telegram, wwSelTempEcoplus_, 27); uint8_t wwComfort1 = EMS_VALUE_UINT_NOTSET; if (telegram->read_value(wwComfort1, 13)) { @@ -2023,6 +2030,17 @@ bool Boiler::set_ww_temp_low(const char * value, const int8_t id) { return true; } +// Set the eco+ dhw temperature 0xEA +bool Boiler::set_ww_temp_eco(const char * value, const int8_t id) { + int v; + if (!Helpers::value2temperature(value, v)) { + return false; + } + + write_command(EMS_TYPE_UBAParameterWWPlus, 27, v, EMS_TYPE_UBAParameterWWPlus); + return true; +} + // Set the dhw single charge temperature 0xEA bool Boiler::set_ww_temp_single(const char * value, const int8_t id) { int v = 0;