From b9af4325c9f6165c18699bc49b8f80015654bcfc Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 11 Dec 2023 10:57:17 +0100 Subject: [PATCH] set curBurnPower for 3.party burners, #1483 --- src/devices/boiler.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index b612dd03a..ceebb5e36 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -1149,8 +1149,8 @@ void Boiler::process_UBAFactory(std::shared_ptr telegram) { void Boiler::process_UBAMonitorFast(std::shared_ptr telegram) { has_update(telegram, selFlowTemp_, 0); has_update(telegram, curFlowTemp_, 1); - has_update(telegram, selBurnPow_, 3); // burn power max setting - has_update(telegram, curBurnPow_, 4); + // has_update(telegram, selBurnPow_, 3); // burn power max setting + // has_update(telegram, curBurnPow_, 4); has_update(telegram, boilerState_, 5); // bits 0-heat, 1-dhw, 2-service, 3-flame, 4-preheat, 5-lock-Err, 6-block-err, 7-maint has_bitupdate(telegram, burnGas_, 7, 0); has_bitupdate(telegram, burnGas2_, 7, 1); @@ -1184,10 +1184,20 @@ void Boiler::process_UBAMonitorFast(std::shared_ptr telegram) { has_update(telegram, serviceCodeNumber_, 20); - if (telegram->offset <= 4 && telegram->offset + telegram->message_length > 7) { - if (burnGas_ || burnGas2_) { + if (telegram->offset <= 3 && telegram->offset + telegram->message_length > 7) { + // some boiler only switch burnGas and have no other burner values, https://github.com/emsesp/EMS-ESP32/discussions/1483 + uint8_t selBurnPow = selBurnPow_; + uint8_t curBurnPow = curBurnPow_; + telegram->read_value(selBurnPow, 3); + telegram->read_value(curBurnPow, 4); + if (burnGas_ && selBurnPow == 0 && curBurnPow == 0) { boilerState_ |= 0x08; // set flame signal + curBurnPow = 100; + selBurnPow = 100; } + has_update(selBurnPow_, selBurnPow); + has_update(curBurnPow_, curBurnPow); + check_active(); // do a quick check to see if the hot water or heating is active } }