From ee29a391409246284e7c88b0fe3b8b36ef221013 Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 9 Jun 2020 18:20:17 +0200 Subject: [PATCH] added MC10Status values - #397 --- src/devices/boiler.cpp | 16 +++++++++++----- src/devices/boiler.h | 4 ++++ src/test/test.cpp | 5 ++++- src/version.h | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index a701f9a45..ac183af9c 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -369,6 +369,9 @@ void Boiler::show_values(uuid::console::Shell & shell) { print_value(shell, 2, F("Warm Water comfort setting"), "Intelligent"); } + print_value(shell, 2, F("Warm water mix temperature"), F_(degrees), Helpers::render_value(buffer, wwMixTemperature_, 10)); + print_value(shell, 2, F("Warm water buffer boiler temperature"), F_(degrees), Helpers::render_value(buffer, wwBufferBoilerTemperature_, 10)); + print_value(shell, 2, F("Warm Water disinfection temperature"), F_(degrees), Helpers::render_value(buffer, wWDisinfectTemp_, 1)); print_value(shell, 2, F("Warm Water selected temperature"), F_(degrees), Helpers::render_value(buffer, wWSelTemp_, 1)); print_value(shell, 2, F("Warm Water set temperature"), F_(degrees), Helpers::render_value(buffer, wWSetTmp_, 1)); @@ -636,6 +639,14 @@ void Boiler::process_UBADHWStatus(std::shared_ptr telegram) { telegram->read_value(wWDisinfectTemp_, 9); } +// 0x2A - MC10Status +// e.g. 88 00 2A 00 00 00 00 00 00 00 00 00 D2 00 00 80 00 00 01 08 80 00 02 47 00 +// see https://github.com/proddy/EMS-ESP/issues/397 +void Boiler::process_MC10Status(std::shared_ptr telegram) { + telegram->read_value(wwMixTemperature_, 14); + telegram->read_value(wwBufferBoilerTemperature_, 18); +} + /* * UBAOutdoorTemp - type 0xD1 - external temperature EMS+ */ @@ -658,11 +669,6 @@ void Boiler::process_UBASetPoints(std::shared_ptr telegram) { void Boiler::process_UBAFlags(std::shared_ptr telegram) { } -// 0x2A -// not yet implemented -void Boiler::process_MC10Status(std::shared_ptr telegram) { -} - // 0x1C // not yet implemented void Boiler::process_UBAMaintenanceStatus(std::shared_ptr telegram) { diff --git a/src/devices/boiler.h b/src/devices/boiler.h index b933d6bf7..3c15da307 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -66,6 +66,10 @@ class Boiler : public EMSdevice { uint8_t wWDisinfectTemp_ = EMS_VALUE_UINT_NOTSET; // Warm Water disinfection temperature to prevent infection uint8_t wWComfort_ = EMS_VALUE_UINT_NOTSET; // WW comfort mode + // MC10Status + uint16_t wwMixTemperature_ = EMS_VALUE_USHORT_NOTSET; // mengertemperatuur + uint16_t wwBufferBoilerTemperature_ = EMS_VALUE_USHORT_NOTSET; // bufferboilertemperatuur + // UBAMonitorFast - 0x18 on EMS1 uint8_t selFlowTemp_ = EMS_VALUE_UINT_NOTSET; // Selected flow temperature uint16_t curFlowTemp_ = EMS_VALUE_USHORT_NOTSET; // Current flow temperature diff --git a/src/test/test.cpp b/src/test/test.cpp index c39e12121..d0c335bda 100644 --- a/src/test/test.cpp +++ b/src/test/test.cpp @@ -188,6 +188,9 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & command) { // Boiler(0x08) -> All(0x00), UBAMonitorWW(0x34), data: 36 01 A5 80 00 21 00 00 01 00 01 3E 8D 03 77 91 00 80 00 uart_telegram( {0x08, 0x00, 0x34, 0x00, 0x36, 0x01, 0xA5, 0x80, 0x00, 0x21, 0x00, 0x00, 0x01, 0x00, 0x01, 0x3E, 0x8D, 0x03, 0x77, 0x91, 0x00, 0x80, 0x00}); + + // test 0x2A - DHWStatus3 + uart_telegram({0x88, 00, 0x2A, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0xD2, 00, 00, 0x80, 00, 00, 01, 0x9D, 0x80, 0x00, 0x02, 0x79, 00}); } if (command == "send") { @@ -347,7 +350,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & command) { } if (command == "mixing") { - shell.printfln(F("Mixing Solar")); + shell.printfln(F("Testing Mixing...")); EMSESP::rxservice_.ems_mask(EMSbus::EMS_MASK_BUDERUS); diff --git a/src/version.h b/src/version.h index 2c34a2eeb..01841a477 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "2.0.0a16" +#define EMSESP_APP_VERSION "2.0.0a17"