set curBurnPower for 3.party burners, #1483

This commit is contained in:
MichaelDvP
2023-12-11 10:57:17 +01:00
parent 1ae2a624f7
commit b9af4325c9

View File

@@ -1149,8 +1149,8 @@ void Boiler::process_UBAFactory(std::shared_ptr<const Telegram> telegram) {
void Boiler::process_UBAMonitorFast(std::shared_ptr<const Telegram> telegram) { void Boiler::process_UBAMonitorFast(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, selFlowTemp_, 0); has_update(telegram, selFlowTemp_, 0);
has_update(telegram, curFlowTemp_, 1); has_update(telegram, curFlowTemp_, 1);
has_update(telegram, selBurnPow_, 3); // burn power max setting // has_update(telegram, selBurnPow_, 3); // burn power max setting
has_update(telegram, curBurnPow_, 4); // 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_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, burnGas_, 7, 0);
has_bitupdate(telegram, burnGas2_, 7, 1); has_bitupdate(telegram, burnGas2_, 7, 1);
@@ -1184,10 +1184,20 @@ void Boiler::process_UBAMonitorFast(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, serviceCodeNumber_, 20); has_update(telegram, serviceCodeNumber_, 20);
if (telegram->offset <= 4 && telegram->offset + telegram->message_length > 7) { if (telegram->offset <= 3 && telegram->offset + telegram->message_length > 7) {
if (burnGas_ || burnGas2_) { // 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 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 check_active(); // do a quick check to see if the hot water or heating is active
} }
} }