mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
don't detect HCs if there not active - #238
This commit is contained in:
@@ -25,7 +25,7 @@ def clr(color, text):
|
||||
|
||||
def remove_float_support():
|
||||
flags = " ".join(env['LINKFLAGS'])
|
||||
print(clr(Color.BLUE, "** LINKFLAGS = %ss" % flags))
|
||||
print(clr(Color.BLUE, "LINKFLAGS = %ss" % flags))
|
||||
flags = flags.replace("-u _printf_float", "")
|
||||
flags = flags.replace("-u _scanf_float", "")
|
||||
newflags = flags.split()
|
||||
|
||||
48
src/ems.cpp
48
src/ems.cpp
@@ -1199,7 +1199,10 @@ void _process_RC35StatusMessage(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t hc_num = _getHeatingCircuit(EMS_RxTelegram); // which HC is it, 0-3
|
||||
int8_t hc_num = _getHeatingCircuit(EMS_RxTelegram); // which HC is it, 0-3
|
||||
if (hc_num == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
// ignore if the value is 0 (see https://github.com/proddy/EMS-ESP/commit/ccc30738c00f12ae6c89177113bd15af9826b836)
|
||||
if (EMS_RxTelegram->data[EMS_OFFSET_RC35StatusMessage_setpoint] != 0x00) {
|
||||
@@ -1357,29 +1360,25 @@ void _process_RC30Set(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||
|
||||
// return which heating circuit it is, 0-3 for HC1 to HC4
|
||||
// based on type 0x3E (HC1), 0x48 (HC2), 0x52 (HC3), 0x5C (HC4)
|
||||
uint8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||
uint8_t hc_num;
|
||||
switch (EMS_RxTelegram->type) {
|
||||
case EMS_TYPE_RC35StatusMessage_HC1:
|
||||
case EMS_TYPE_RC35Set_HC1:
|
||||
default:
|
||||
hc_num = 1; // also default
|
||||
break;
|
||||
case EMS_TYPE_RC35StatusMessage_HC2:
|
||||
case EMS_TYPE_RC35Set_HC2:
|
||||
hc_num = 2;
|
||||
break;
|
||||
case EMS_TYPE_RC35StatusMessage_HC3:
|
||||
case EMS_TYPE_RC35Set_HC3:
|
||||
hc_num = 3;
|
||||
break;
|
||||
case EMS_TYPE_RC35StatusMessage_HC4:
|
||||
case EMS_TYPE_RC35Set_HC4:
|
||||
hc_num = 4;
|
||||
break;
|
||||
int8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||
// check to see we have an active HC. Assuming first byte must have some bit status set.
|
||||
// see https://github.com/proddy/EMS-ESP/issues/238
|
||||
if (EMS_RxTelegram->data[0] == 0x00) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int8_t hc_num = 0; // default is HC1
|
||||
|
||||
if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC2) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC2)) {
|
||||
hc_num = 1;
|
||||
} else if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC3) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC3)) {
|
||||
hc_num = 2;
|
||||
} else if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC4) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC4)) {
|
||||
hc_num = 3;
|
||||
} else {
|
||||
return -1; // not a valid HC
|
||||
}
|
||||
|
||||
hc_num--;
|
||||
EMS_Thermostat.hc[hc_num].active = true;
|
||||
|
||||
return (hc_num);
|
||||
@@ -1400,7 +1399,10 @@ void _process_RC35Set(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t hc_num = _getHeatingCircuit(EMS_RxTelegram); // which HC is it?
|
||||
int8_t hc_num = _getHeatingCircuit(EMS_RxTelegram); // which HC is it, 0-3
|
||||
if (hc_num == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.hc[hc_num].mode, EMS_OFFSET_RC35Set_mode); // night, day, auto
|
||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.hc[hc_num].daytemp, EMS_OFFSET_RC35Set_temp_day); // is * 2
|
||||
|
||||
@@ -456,7 +456,7 @@ void _processType(_EMS_RxTelegram * EMS_RxTelegram);
|
||||
void _debugPrintPackage(const char * prefix, _EMS_RxTelegram * EMS_RxTelegram, const char * color);
|
||||
void _ems_clearTxData();
|
||||
void _removeTxQueue();
|
||||
uint8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram);
|
||||
int8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram);
|
||||
|
||||
// global so can referenced in other classes
|
||||
extern _EMS_Sys_Status EMS_Sys_Status;
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define APP_VERSION "1.9.5b8"
|
||||
#define APP_VERSION "1.9.5b9"
|
||||
|
||||
Reference in New Issue
Block a user