mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59: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():
|
def remove_float_support():
|
||||||
flags = " ".join(env['LINKFLAGS'])
|
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 _printf_float", "")
|
||||||
flags = flags.replace("-u _scanf_float", "")
|
flags = flags.replace("-u _scanf_float", "")
|
||||||
newflags = flags.split()
|
newflags = flags.split()
|
||||||
|
|||||||
48
src/ems.cpp
48
src/ems.cpp
@@ -1199,7 +1199,10 @@ void _process_RC35StatusMessage(_EMS_RxTelegram * EMS_RxTelegram) {
|
|||||||
return;
|
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)
|
// ignore if the value is 0 (see https://github.com/proddy/EMS-ESP/commit/ccc30738c00f12ae6c89177113bd15af9826b836)
|
||||||
if (EMS_RxTelegram->data[EMS_OFFSET_RC35StatusMessage_setpoint] != 0x00) {
|
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
|
// return which heating circuit it is, 0-3 for HC1 to HC4
|
||||||
// based on type 0x3E (HC1), 0x48 (HC2), 0x52 (HC3), 0x5C (HC4)
|
// based on type 0x3E (HC1), 0x48 (HC2), 0x52 (HC3), 0x5C (HC4)
|
||||||
uint8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram) {
|
int8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram) {
|
||||||
uint8_t hc_num;
|
// check to see we have an active HC. Assuming first byte must have some bit status set.
|
||||||
switch (EMS_RxTelegram->type) {
|
// see https://github.com/proddy/EMS-ESP/issues/238
|
||||||
case EMS_TYPE_RC35StatusMessage_HC1:
|
if (EMS_RxTelegram->data[0] == 0x00) {
|
||||||
case EMS_TYPE_RC35Set_HC1:
|
return -1;
|
||||||
default:
|
}
|
||||||
hc_num = 1; // also default
|
|
||||||
break;
|
int8_t hc_num = 0; // default is HC1
|
||||||
case EMS_TYPE_RC35StatusMessage_HC2:
|
|
||||||
case EMS_TYPE_RC35Set_HC2:
|
if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC2) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC2)) {
|
||||||
hc_num = 2;
|
hc_num = 1;
|
||||||
break;
|
} else if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC3) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC3)) {
|
||||||
case EMS_TYPE_RC35StatusMessage_HC3:
|
hc_num = 2;
|
||||||
case EMS_TYPE_RC35Set_HC3:
|
} else if ((EMS_RxTelegram->type == EMS_TYPE_RC35StatusMessage_HC4) || (EMS_RxTelegram->type = EMS_TYPE_RC35Set_HC4)) {
|
||||||
hc_num = 3;
|
hc_num = 3;
|
||||||
break;
|
} else {
|
||||||
case EMS_TYPE_RC35StatusMessage_HC4:
|
return -1; // not a valid HC
|
||||||
case EMS_TYPE_RC35Set_HC4:
|
|
||||||
hc_num = 4;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hc_num--;
|
|
||||||
EMS_Thermostat.hc[hc_num].active = true;
|
EMS_Thermostat.hc[hc_num].active = true;
|
||||||
|
|
||||||
return (hc_num);
|
return (hc_num);
|
||||||
@@ -1400,7 +1399,10 @@ void _process_RC35Set(_EMS_RxTelegram * EMS_RxTelegram) {
|
|||||||
return;
|
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].mode, EMS_OFFSET_RC35Set_mode); // night, day, auto
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.hc[hc_num].daytemp, EMS_OFFSET_RC35Set_temp_day); // is * 2
|
_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 _debugPrintPackage(const char * prefix, _EMS_RxTelegram * EMS_RxTelegram, const char * color);
|
||||||
void _ems_clearTxData();
|
void _ems_clearTxData();
|
||||||
void _removeTxQueue();
|
void _removeTxQueue();
|
||||||
uint8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram);
|
int8_t _getHeatingCircuit(_EMS_RxTelegram * EMS_RxTelegram);
|
||||||
|
|
||||||
// global so can referenced in other classes
|
// global so can referenced in other classes
|
||||||
extern _EMS_Sys_Status EMS_Sys_Status;
|
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