diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index e0405527a..343aca6e7 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -34,3 +34,4 @@ For more details go to [emsesp.org](https://emsesp.org/). - fetch telegrams: set length to fetch [#3017](https://github.com/emsesp/EMS-ESP32/issues/3017) - move http client from stack to heap - heap optimizations [#3021](https://github.com/emsesp/EMS-ESP32/discussions/3021) +- check and read 0x470 as summer2_typeids[0] only if received [#2686](https://github.com/emsesp/EMS-ESP32/issues/2686), [#3055](https://github.com/emsesp/EMS-ESP32/issues/3055) diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index ebbb2e686..824897496 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -207,6 +207,7 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i register_telegram_type(0x16E, "Absent", true, MAKE_PF_CB(process_Absent), 1); register_telegram_type(0xBF, "ErrorMessage", false, MAKE_PF_CB(process_ErrorMessageBF)); register_telegram_type(0xC0, "RCErrorMessage", false, MAKE_PF_CB(process_RCErrorMessage2)); + register_telegram_type(0x470, "RC300Summer2", true, MAKE_PF_CB(process_RC300Summer2), 8); EMSESP::send_read_request(0xC0, device_id, 0, 20); // read last errorcode on start (only published on errors) // JUNKERS/HT3 @@ -1268,7 +1269,13 @@ void Thermostat::process_RC300Summer(std::shared_ptr telegram) { void Thermostat::process_RC300Summer2(std::shared_ptr telegram) { auto hc = heating_circuit(telegram); if (hc == nullptr) { - return; + // telegram 0x470 see https://github.com/emsesp/EMS-ESP32/issues/2686 + if (telegram->type_id == 0x470 && telegram->message_length > 2) { + hc = heating_circuit(1); + summer2_typeids[0] = 0x470; + } else { + return; + } } if (hc->statusbyte & 1) { has_update(telegram, hc->summersetmode, 0); diff --git a/src/emsesp_version.h b/src/emsesp_version.h index c98cd567e..e7b3ea13f 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.8.2-dev.19" +#define EMSESP_APP_VERSION "3.8.2-dev.20"