diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 74ff85866..6a20ff555 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -682,8 +682,10 @@ 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); + myDebug_P(PSTR(" Mixing Circuit %d"), hc_num); _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 5e363f35b..ad4aebd3f 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 @@ -1496,7 +1498,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 4d5c25a98..0d2d64f05 100644 --- a/src/ems.h +++ b/src/ems.h @@ -381,6 +381,8 @@ typedef struct { bool active; // true if there is data for this HC 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 dd8b265e7..db74ac75a 100644 --- a/src/ems_devices.h +++ b/src/ems_devices.h @@ -145,11 +145,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