diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c13a3b2a..db10a3c73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.8.1dev] 2019-06-24 +## [1.8.1dev] 2019-07-01 ### Added @@ -19,11 +19,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Detecting unset values in the SPIFFS and setting default values - Bosch Easy Connect wrongly classified as a thermostat +- Correctly handle telegrams who's size are exactly 32 bytes (e.g. 0x19 MonitorSlow) ### Changed - Improved handling of Solar Modules (thanks @Vuego123) - `publish_wait` renamed to `publish_time`, a value of 0 means disabling all MQTT sending +- How signed shorts are handled such as the current and setpoint temps on RC300s ## [1.8.0] 2019-06-15 diff --git a/src/emsuart.cpp b/src/emsuart.cpp index d17c69f78..2b6e166e0 100644 --- a/src/emsuart.cpp +++ b/src/emsuart.cpp @@ -69,7 +69,7 @@ static void ICACHE_FLASH_ATTR emsuart_recvTask(os_event_t * events) { if (length == 2) { // it's a poll or status code, single byte and ok to send on ems_parseTelegram((uint8_t *)pCurrent->buffer, 1); - } else if ((length > 4) && (length <= EMS_MAXBUFFERSIZE) && (pCurrent->buffer[length - 2] != 0x00)) { + } else if ((length > 4) && (length <= EMS_MAXBUFFERSIZE + 1) && (pCurrent->buffer[length - 2] != 0x00)) { // ignore double BRK at the end, possibly from the Tx loopback // also telegrams with no data value ems_parseTelegram((uint8_t *)pCurrent->buffer, length - 1); // transmit EMS buffer, excluding the BRK diff --git a/src/test_data.h b/src/test_data.h index 27e5b1444..91f1f40fc 100644 --- a/src/test_data.h +++ b/src/test_data.h @@ -50,7 +50,8 @@ static const char * TEST_DATA[] = { "08 00 E3 00 01 00 01 00 00 00 00 00 00 00 00 00 DF 00 64 55", // test 45 - heatpump Enviline "08 00 E5 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A", // test 46 - heatpump Enviline "38 10 FF 00 03 2B 00 C7 07 C3 01", // test 47 - heatpump Enviline - "08 0B 19 00 00 F7 80 00 80 00 00 00 00 00 03 58 97 0C 7B 1F 00 00 00 06 C4 DF 02 64 48 80 00" // test 48 - outdoor temp check + "08 0B 19 00 00 F7 80 00 80 00 00 00 00 00 03 58 97 0C 7B 1F 00 00 00 06 C4 DF 02 64 48 80 00", // test 48 - outdoor temp check + "88 00 19 00 00 DC 80 00 80 00 FF FF 00 00 00 21 9A 06 E1 7C 00 00 00 06 C2 13 00 1E 90 80 00" // test 49 - check max length };