From faafd51e40773dd29baf5dbc83a565224966d501 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 1 Nov 2023 18:16:21 +0100 Subject: [PATCH] add optional exhausttemp from telegram E5 --- src/devices/boiler.cpp | 11 ++++++++--- src/devices/boiler.h | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index f36bcf4b0..330eb6cef 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -1269,8 +1269,10 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr telegram has_update(telegram, heatblock_, 23); // see #1317 has_update(telegram, headertemp_, 25); // see #1317 //has_update(telegram, temperatur_, 27); // unknown temperature - has_update(telegram, exhaustTemp_, 31); - + telegram->read_value(exhaustTemp1_ , 31); + if (Helpers::hasValue(exhaustTemp1_)) { + has_update(exhaustTemp_, exhaustTemp1_); + } // read 3 char service code / installation status as appears on the display if ((telegram->message_length > 3) && (telegram->offset == 0)) { char serviceCode[4] = {0}; @@ -1338,7 +1340,10 @@ void Boiler::process_UBAMonitorSlowPlus(std::shared_ptr telegram has_bitupdate(telegram, heatingPump_, 2, 5); has_bitupdate(telegram, wwCirc_, 2, 7); // temperature measurements at offset 4 unknown, see https://github.com/emsesp/EMS-ESP/issues/620 - // exhaustTemp was offset 6, now in e4. See #1147, #1150, #1326 + // exhaust is in E4/31, but not always published, but this goes to zero if burner stops + if (!Helpers::hasValue(exhaustTemp1_)) { + has_update(telegram, exhaustTemp_, 6); + } has_update(telegram, burnStarts_, 10, 3); // force to 3 bytes has_update(telegram, burnWorkMin_, 13, 3); // force to 3 bytes has_update(telegram, burn2WorkMin_, 16, 3); // force to 3 bytes diff --git a/src/devices/boiler.h b/src/devices/boiler.h index 5215e3f00..b48d00ccf 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -113,7 +113,8 @@ class Boiler : public EMSdevice { uint16_t switchTemp_; // Switch temperature uint8_t sysPress_; // System pressure uint16_t boilTemp_; // Boiler temperature - uint16_t exhaustTemp_; // Exhaust temperature + uint16_t exhaustTemp_; // Exhaust temperature published + uint16_t exhaustTemp1_; // read from E4 uint8_t burnGas_; // Gas on/off uint8_t burnGas2_; // Gas stage 2 on/off uint16_t flameCurr_; // Flame current in micro amps