diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 6de507d08..7da76ce3a 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -475,17 +475,17 @@ void showInfo() { myDebug_P(PSTR("")); // newline myDebug_P(PSTR("%sMixing module stats:%s"), COLOR_BOLD_ON, COLOR_BOLD_OFF); myDebug_P(PSTR(" Mixing: %s"), ems_getDeviceDescription(EMS_DEVICE_TYPE_MIXING, buffer_type,false)); - if (EMS_Boiler.switchTemp != EMS_VALUE_SHORT_NOTSET) + //if (EMS_Boiler.switchTemp != EMS_VALUE_SHORT_NOTSET) _renderShortValue("Switch temperature", "C", EMS_Boiler.switchTemp); 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); - if (EMS_Mixing.hc[hc_num - 1].flowTemp != EMS_VALUE_SHORT_NOTSET) + //if (EMS_Mixing.hc[hc_num - 1].flowTemp != EMS_VALUE_SHORT_NOTSET) _renderShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp); - if (EMS_Mixing.hc[hc_num - 1].flowSetTemp != EMS_VALUE_INT_NOTSET) + //if (EMS_Mixing.hc[hc_num - 1].flowSetTemp != EMS_VALUE_INT_NOTSET) _renderIntValue(" Setpoint flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowSetTemp); - if (EMS_Mixing.hc[hc_num - 1].pumpMod != EMS_VALUE_INT_NOTSET) + //if (EMS_Mixing.hc[hc_num - 1].pumpMod != EMS_VALUE_INT_NOTSET) _renderIntValue(" Current pump modulation", "%", EMS_Mixing.hc[hc_num - 1].pumpMod); if (EMS_Mixing.hc[hc_num - 1].valveStatus != EMS_VALUE_INT_NOTSET) _renderIntValue(" Current valve status", "", EMS_Mixing.hc[hc_num - 1].valveStatus); diff --git a/src/ems.cpp b/src/ems.cpp index 332ab5b6b..4d3a72943 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -1240,12 +1240,9 @@ void _process_MMPLUSStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { _setValue(EMS_RxTelegram, &EMS_Mixing.hc[hc].valveStatus, EMS_OFFSET_MMPLUSStatusMessage_valve_status); } -// 0xAB for MM10 HC2 +// 0xAB void _process_MMStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { - uint8_t hc = (EMS_RxTelegram->type - EMS_TYPE_MMStatusMessage_HC2+1); // 1 to 3 - if (hc >= EMS_THERMOSTAT_MAXHC) { - return; // invalid type - } + uint8_t hc = 1; // fixed, for 0xAB EMS_Mixing.hc[hc].active = true; _setValue(EMS_RxTelegram, &EMS_Mixing.hc[hc].flowTemp, EMS_OFFSET_MMStatusMessage_flow_temp); @@ -2732,7 +2729,7 @@ const _EMS_Type EMS_Types[] = { // Mixing devices MM10 - MM400 {EMS_DEVICE_UPDATE_FLAG_MIXING, EMS_TYPE_MMPLUSStatusMessage_HC1, "MMPLUSStatusMessage_HC1", _process_MMPLUSStatusMessage}, {EMS_DEVICE_UPDATE_FLAG_MIXING, EMS_TYPE_MMPLUSStatusMessage_HC2, "MMPLUSStatusMessage_HC2", _process_MMPLUSStatusMessage}, - {EMS_DEVICE_UPDATE_FLAG_MIXING, EMS_TYPE_MMStatusMessage_HC2, "MMStatusMessage", _process_MMStatusMessage} + {EMS_DEVICE_UPDATE_FLAG_MIXING, EMS_TYPE_MMStatusMessage, "MMStatusMessage", _process_MMStatusMessage} }; diff --git a/src/ems.h b/src/ems.h index 152033679..6badb513e 100644 --- a/src/ems.h +++ b/src/ems.h @@ -28,7 +28,7 @@ #define EMS_VALUE_BOOL_OFF 0x00 // boolean false #define EMS_VALUE_INT_NOTSET 0xFF // for 8-bit unsigned ints/bytes #define EMS_VALUE_SHORT_NOTSET -32000 // was -32768 for 2-byte signed shorts -#define EMS_VALUE_USHORT_NOTSET 0x8000 // for 2-byte unsigned shorts +#define EMS_VALUE_USHORT_NOTSET 32000 // was 0x8000 for 2-byte unsigned shorts #define EMS_VALUE_LONG_NOTSET 0xFFFFFF // for 3-byte longs #define EMS_VALUE_BOOL_NOTSET 0xFE // random number that's not 0, 1 or FF diff --git a/src/ems_devices.h b/src/ems_devices.h index 8542f7488..5a52eb7ba 100644 --- a/src/ems_devices.h +++ b/src/ems_devices.h @@ -198,7 +198,7 @@ const _EMS_Device_Types EMS_Devices_Types[] = { #define EMS_OFFSET_MMPLUSStatusMessage_valve_status 2 // valve in percent // MM10 -#define EMS_TYPE_MMStatusMessage_HC2 0xAB // mixer status HC2 +#define EMS_TYPE_MMStatusMessage 0xAB // mixer status #define EMS_OFFSET_MMStatusMessage_flow_set 0 // flow setpoint #define EMS_OFFSET_MMStatusMessage_flow_temp 1 // flow temperature #define EMS_OFFSET_MMStatusMessage_pump_mod 3 // pump modulation in percent diff --git a/src/ems_utils.cpp b/src/ems_utils.cpp index a617018f4..6746f289c 100644 --- a/src/ems_utils.cpp +++ b/src/ems_utils.cpp @@ -40,7 +40,7 @@ char * _bool_to_char(char * s, uint8_t value) { // negative values are assumed stored as 1-compliment (https://medium.com/@LeeJulija/how-integers-are-stored-in-memory-using-twos-complement-5ba04d61a56c) char * _short_to_char(char * s, int16_t value, uint8_t decimals) { // remove errors or invalid values - if (value == EMS_VALUE_SHORT_NOTSET || value == EMS_VALUE_USHORT_NOTSET) { + if (value <= EMS_VALUE_SHORT_NOTSET) { strlcpy(s, "?", 10); return (s); }