From 5f9340ee3dfa515c3de62eb62f039724beba2ab7 Mon Sep 17 00:00:00 2001 From: Klaudiusz Staniek Date: Sun, 6 Oct 2019 20:50:20 +0200 Subject: [PATCH 1/2] Current flow temp for MM100 should be displayed as UShortValue --- src/ems-esp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index ea2493d7..6105a8b3 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -675,7 +675,7 @@ void showInfo() { for (uint8_t hc_num = 1; hc_num <= EMS_THERMOSTAT_MAXHC; hc_num++) { if (EMS_Mixing.hc[hc_num - 1].active) { myDebug_P(PSTR(" Mixing Circuit %d"), hc_num); - _renderShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp); + _renderUShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp); } } } From cf38000d78471fefb22acb185240ff82d1196979 Mon Sep 17 00:00:00 2001 From: Klaudiusz Staniek Date: Sun, 6 Oct 2019 21:51:00 +0200 Subject: [PATCH 2/2] Added pump modulation and valve status --- src/ems-esp.cpp | 4 +++- src/ems.cpp | 16 ++++++++++------ src/ems.h | 4 +++- src/ems_devices.h | 12 +++++++----- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 6105a8b3..157b3bf3 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -675,7 +675,9 @@ void showInfo() { for (uint8_t hc_num = 1; hc_num <= EMS_THERMOSTAT_MAXHC; hc_num++) { if (EMS_Mixing.hc[hc_num - 1].active) { myDebug_P(PSTR(" Mixing Circuit %d"), hc_num); - _renderUShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp); + _renderUShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp); + _renderIntValue(" Current pump modulation", "%", EMS_Mixing.hc[hc_num - 1].pumpMod); + _renderIntValue(" Current valve status", "%", EMS_Mixing.hc[hc_num - 1].valveStatus); } } } diff --git a/src/ems.cpp b/src/ems.cpp index 2c3f8d2b..17bc4b82 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -278,11 +278,13 @@ void ems_init() { EMS_Mixing.detected = false; // init all mixing modules for (uint8_t i = 0; i < EMS_THERMOSTAT_MAXHC; i++) { - EMS_Mixing.hc[i].hc = i + 1; - EMS_Mixing.hc[i].flowTemp = EMS_VALUE_SHORT_NOTSET; - EMS_Mixing.hc[i].device_id = EMS_ID_NONE; - EMS_Mixing.hc[i].model_id = EMS_MODEL_NONE; - EMS_Mixing.hc[i].product_id = EMS_ID_NONE; + EMS_Mixing.hc[i].hc = i + 1; + EMS_Mixing.hc[i].flowTemp = EMS_VALUE_SHORT_NOTSET; + EMS_Mixing.hc[i].pumpMod = EMS_VALUE_INT_NOTSET; + EMS_Mixing.hc[i].valveStatus = EMS_VALUE_INT_NOTSET; + EMS_Mixing.hc[i].device_id = EMS_ID_NONE; + EMS_Mixing.hc[i].model_id = EMS_MODEL_NONE; + EMS_Mixing.hc[i].product_id = EMS_ID_NONE; } // UBAParameterWW @@ -1497,7 +1499,9 @@ void _process_MMPLUSStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { if (EMS_RxTelegram->data_length == 1) { } else if (EMS_RxTelegram->data_length > 8) { - EMS_Mixing.hc[hc].flowTemp = _toShort(EMS_OFFSET_MMPLUSStatusMessage_flow_temp); + EMS_Mixing.hc[hc].flowTemp = _toShort(EMS_OFFSET_MMPLUSStatusMessage_flow_temp); + EMS_Mixing.hc[hc].pumpMod = _toByte(EMS_OFFSET_MMPLUSStatusMessage_pump_mod); + EMS_Mixing.hc[hc].valveStatus = _toByte(EMS_OFFSET_MMPLUSStatusMessage_valve_status); } } diff --git a/src/ems.h b/src/ems.h index ae9d6bdf..442d0e3a 100644 --- a/src/ems.h +++ b/src/ems.h @@ -381,7 +381,9 @@ typedef struct { uint8_t hc; // heating circuit 1,2, 3 or 4 bool active; // true if there is data for this HC - uint8_t flowTemp; + uint16_t flowTemp; + uint8_t pumpMod; + uint8_t valveStatus; } _EMS_Mixing_HC; // Mixer data diff --git a/src/ems_devices.h b/src/ems_devices.h index 84c8e1a6..25b4cba1 100644 --- a/src/ems_devices.h +++ b/src/ems_devices.h @@ -144,11 +144,13 @@ #define EMS_OFFSET_JunkersStatusMessage_curr 4 // current temp // MM100 (EMS Plus) -#define EMS_TYPE_MMPLUSStatusMessage_HC1 0x01D7 // mixer status HC1 -#define EMS_TYPE_MMPLUSStatusMessage_HC2 0x01D8 // mixer status HC2 -#define EMS_TYPE_MMPLUSStatusMessage_HC3 0x01D9 // mixer status HC3 -#define EMS_TYPE_MMPLUSStatusMessage_HC4 0x01DA // mixer status HC4 -#define EMS_OFFSET_MMPLUSStatusMessage_flow_temp 3 // flow temperature +#define EMS_TYPE_MMPLUSStatusMessage_HC1 0x01D7 // mixer status HC1 +#define EMS_TYPE_MMPLUSStatusMessage_HC2 0x01D8 // mixer status HC2 +#define EMS_TYPE_MMPLUSStatusMessage_HC3 0x01D9 // mixer status HC3 +#define EMS_TYPE_MMPLUSStatusMessage_HC4 0x01DA // mixer status HC4 +#define EMS_OFFSET_MMPLUSStatusMessage_flow_temp 3 // flow temperature +#define EMS_OFFSET_MMPLUSStatusMessage_pump_mod 5 // pump modulation +#define EMS_OFFSET_MMPLUSStatusMessage_valve_status 2 // valve in percent // Known EMS devices