From 77a8857e2fcbe23bffd80eaea47ee18755b42b47 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 26 May 2022 12:42:38 +0200 Subject: [PATCH 1/5] fix #522, device-flag for IVT controller --- src/device_library.h | 2 +- src/devices/controller.cpp | 6 ++++-- src/emsdevice.h | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/device_library.h b/src/device_library.h index 21fd47917..acbbc514c 100644 --- a/src/device_library.h +++ b/src/device_library.h @@ -68,7 +68,7 @@ {224, DeviceType::CONTROLLER, F("9000i"), DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 {229, DeviceType::CONTROLLER, F("8700i"), DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 {230, DeviceType::CONTROLLER, F("BC Base"), DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 -{240, DeviceType::CONTROLLER, F("Rego 3000"), DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 +{240, DeviceType::CONTROLLER, F("Rego 3000"), DeviceFlags::EMS_DEVICE_FLAG_IVT}, // 0x09 {241, DeviceType::CONTROLLER, F("Condens 5000i"), DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 // Thermostat - not currently supporting write operations, like the Easy/100 types - 0x18 diff --git a/src/devices/controller.cpp b/src/devices/controller.cpp index f7b0b952f..a60912629 100644 --- a/src/devices/controller.cpp +++ b/src/devices/controller.cpp @@ -25,8 +25,10 @@ REGISTER_FACTORY(Controller, EMSdevice::DeviceType::CONTROLLER); Controller::Controller(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const std::string & name, uint8_t flags, uint8_t brand) : EMSdevice(device_type, device_id, product_id, version, name, flags, brand) { // IVT broadcasts Thermostat time from controller (0x09) if display is off. - register_telegram_type(0x06, F("RCTime"), false, MAKE_PF_CB(process_dateTime)); - register_device_value(DeviceValueTAG::TAG_NONE, &dateTime_, DeviceValueType::STRING, nullptr, FL_(dateTime), DeviceValueUOM::NONE); + if ((flags & 0x0F) == EMS_DEVICE_FLAG_IVT) { + register_telegram_type(0x06, F("RCTime"), false, MAKE_PF_CB(process_dateTime)); + register_device_value(DeviceValueTAG::TAG_NONE, &dateTime_, DeviceValueType::STRING, nullptr, FL_(dateTime), DeviceValueUOM::NONE); + } } // process_dateTime - type 0x06 - date and time from a thermostat - 14 bytes long, IVT only diff --git a/src/emsdevice.h b/src/emsdevice.h index 3da12a4e3..567cfd8f8 100644 --- a/src/emsdevice.h +++ b/src/emsdevice.h @@ -315,6 +315,9 @@ class EMSdevice { // device flags: The lower 4 bits hold the unique identifier, the upper 4 bits are used for specific flags static constexpr uint8_t EMS_DEVICE_FLAG_NONE = 0; + // Controller + static constexpr uint8_t EMS_DEVICE_FLAG_IVT = 1; + // Boiler static constexpr uint8_t EMS_DEVICE_FLAG_EMS = 1; static constexpr uint8_t EMS_DEVICE_FLAG_EMSPLUS = 2; From d2609e429174f997c1d6bf3182616bd63b3e93a7 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 26 May 2022 12:42:55 +0200 Subject: [PATCH 2/5] fix #523, rename 'climate' to more explaning name --- src/locale_EN.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale_EN.h b/src/locale_EN.h index 5ddf6dc1e..c6f0eb096 100644 --- a/src/locale_EN.h +++ b/src/locale_EN.h @@ -616,7 +616,7 @@ MAKE_PSTR_LIST(wwDailyHeating, F("wwdailyheating"), F("daily heating")) MAKE_PSTR_LIST(wwDailyHeatTime, F("wwdailyheattime"), F("daily heating time")) MAKE_PSTR_LIST(wwWhenModeOff, F("wwwhenmodeoff"), F("when thermostat mode off")) // thermostat hc -MAKE_PSTR_LIST(climate, F("climate")) +MAKE_PSTR_LIST(climate, F("ha_climate_config_creation")) // no full-name, hidden, only for creation MAKE_PSTR_LIST(selRoomTemp, F("seltemp"), F("selected room temperature")) MAKE_PSTR_LIST(roomTemp, F("currtemp"), F("current room temperature")) MAKE_PSTR_LIST(mode, F("mode"), F("mode")) From 34cb3ad375f0c2719526b5882bfa2ea7cdb5a3da Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 26 May 2022 12:43:10 +0200 Subject: [PATCH 3/5] fix #524, free memory of json response --- src/web/WebAPIService.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/web/WebAPIService.cpp b/src/web/WebAPIService.cpp index 5ab041987..407e33fb2 100644 --- a/src/web/WebAPIService.cpp +++ b/src/web/WebAPIService.cpp @@ -132,6 +132,7 @@ void WebAPIService::parse(AsyncWebServerRequest * request, JsonObject & input) { JsonVariant data = output["api_data"]; request->send(200, "text/plain; charset=utf-8", data.as()); api_count_++; + delete response; return; } From 89b07114645e3c7ff64a57de0e2a536c8e7ebea5 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 26 May 2022 13:05:37 +0200 Subject: [PATCH 4/5] changelog --- CHANGELOG_LATEST.md | 83 +++------------------------------------------ 1 file changed, 4 insertions(+), 79 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 0ec10fa91..cae9e2969 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -1,91 +1,16 @@ # Changelog -## [3.4.0] +## [3.4.1] ### Added -- WebUI optimizations, updated look&feel and better performance [#124](https://github.com/emsesp/EMS-ESP32/issues/124) -- Auto refresh of WebUI after successful firmware upload [#178](https://github.com/emsesp/EMS-ESP32/issues/178) -- New Customization Service in WebUI. First feature is the ability to enable/disabled Enitites (device values) from EMS devices [#206](https://github.com/emsesp/EMS-ESP32/issues/206) -- Option to disable Telnet Console [#209](https://github.com/emsesp/EMS-ESP32/issues/209) -- Added Hide SSID, Max Clients and Preferred Channel to Access Point -- Merged in MichaelDvP's changes like Fahrenheit conversion, publish single (for IOBroker) and a few other critical optimizations -- Enabled bi-directional read/write with Home Assistant, so values can be changed automatically from the UI without scripting [#265](https://github.com/emsesp/EMS-ESP32/issues/265) -- Added GC7000F Boiler [#270](https://github.com/emsesp/EMS-ESP32/issues/270) -- Revised LED flash sequence on boot up to show system health (1 flash=no ems, 2 flashes=no wifi) [#224](https://github.com/emsesp/EMS-ESP32/issues/224) -- Analog Sensor support [#271](https://github.com/emsesp/EMS-ESP32/issues/271) -- Solar cylinder priority [#247](https://github.com/emsesp/EMS-ESP32/issues/247) -- Read only mode in Settings, where EMS Tx/Write commands are blocked [#286](https://github.com/emsesp/EMS-ESP32/issues/286) -- Added 8700i Boiler device -- Added Cascade CM10 Controller device -- Add Olimex ESP32-POE-ISO to board profiles plus settings to customize Ethernet modules [#301](https://github.com/emsesp/EMS-ESP32/issues/301) -- Help text for string commands in WebUI [#320](https://github.com/emsesp/EMS-ESP32/issues/320) -- Germany translations (at compile time) -- #entities added to system/info` endpoint [#322](https://github.com/emsesp/EMS-ESP32/issues/322) -- analog outputs digital/pwm/dac -- remove MQTT retained configs if discovery is disabled -- timeout 10 min for MQTT-QoS wait -- Moduline 300 auto-temperatures T1-T4, RC300 romminfluencefactor -- RC35 parameters [#392](https://github.com/emsesp/EMS-ESP32/issues/392), [#398](https://github.com/emsesp/EMS-ESP32/issues/398) -- sync time with thermostat [#386](https://github.com/emsesp/EMS-ESP32/issues/386), [#408](https://github.com/emsesp/EMS-ESP32/issues/408) -- set mode has immediate effect [#395](https://github.com/emsesp/EMS-ESP32/issues/395) -- min/max in web value setting -- Extend customization to select if an entity is to be shown in the WebUI or forced as read-only [#317](https://github.com/emsesp/EMS-ESP32/issues/317) -- Added Moduline 400 installation parameters [PR #449 by @kwertie01](https://github.com/emsesp/EMS-ESP32/pull/449) -- Read time from IVT-controller [#439](https://github.com/emsesp/EMS-ESP32/issues/439) -- Hybrid Heatpump product-id 168 [#459](https://github.com/emsesp/EMS-ESP32/issues/459), thermostat settings -- Junkers ISM2 and IPM in warm water mode [#437](https://github.com/emsesp/EMS-ESP32/issues/437) -- Added Shower Alert trigger time and cold shot time [#436](https://github.com/emsesp/EMS-ESP32/issues/436) -- Improved Table layout in Web UI (searching, filtering, sorting, exporting to CSV) -- API fetch individual attributes from an entity [#462](https://github.com/emsesp/EMS-ESP32/issues/462) -- Option to disable mDNS -- Option for rendering booleans on dashboard [#456](https://github.com/emsesp/EMS-ESP32/issues/456) -- Upload customization settings from a file [#256](https://github.com/emsesp/EMS-ESP32/issues/256) - ### Fixed -- lastcode broke MQTT JSON structure [#228](https://github.com/emsesp/EMS-ESP32/issues/228) -- fixed issue with overlapping while reading sequence of EMS1.0 telegrams -- fixed redundant telegram readings (because of offset overflow) -- added missing RC30/Moduline 400 [#243](https://github.com/emsesp/EMS-ESP32/issues/243) -- Correct modes for RC25 [#106](https://github.com/emsesp/EMS-ESP32/issues/106) -- Clean up old HA config's in MQTT before publishing data. This will prevent HA giving the 'dict' warnings [#229](https://github.com/emsesp/EMS-ESP32/issues/229) -- RC25 temperature setting [#272](https://github.com/emsesp/EMS-ESP32/issues/272) -- Buderus RC25 - "hc1 mode type" incorrect value [#273](https://github.com/emsesp/EMS-ESP32/issues/273) -- Increased number of Mixers and Heating Circuits [#294](https://github.com/emsesp/EMS-ESP32/issues/294) -- Check receive status before removing a telegram fetch [#268](https://github.com/emsesp/EMS-ESP32/issues/268), [#282](https://github.com/emsesp/EMS-ESP32/issues/282) -- Fix uploading firmware on OSX [#345](https://github.com/emsesp/EMS-ESP32/issues/345) -- Non-nested MQTT would corrupt the json [#354](https://github.com/emsesp/EMS-ESP32/issues/354) -- Burner selected max power can have a value higher than 100% [#314](https://github.com/emsesp/EMS-ESP32/issues/314) -- some missing fahrenheit calculations -- limited number of exclusions [#339](https://github.com/emsesp/EMS-ESP32/issues/339) -- MQTT sometimes would not reconnect after a WiFi outage +- fix memory leak in api [#524](https://github.com/emsesp/EMS-ESP32/issues/524) ### Changed -- Use flash system to show system health (1 flash=no ems, 2 flashes=no wifi) [#224](https://github.com/emsesp/EMS-ESP32/issues/224) -- Renamed Dallas Sensor to Temperature Sensor in UI -- Dallas Format removed. Use the name to give each sensor an alias -- No longer MQTT subscribes to topic `/thermostat_hc` as it supports a path similar to the API endpoint construct -- Show Sensors quality in WebUI -- Controller not shown in WebUI dashboard -- renamed "Home Assistant Integration" to "MQTT Discovery" in MQTT Settings [#290](https://github.com/emsesp/EMS-ESP32/issues/290) -- Show ems tx reads and writes separately -- Show ems device handlers separated for received, fetched and pending handlers. -- Wired renamed to Ethernet -- removed system/pin command, new commands in analogsensors -- system/info device-info split to name/version/brand -- exclude list uses short-names, possible flags for web/api/mqtt excludes, readonly and favorite (selection not yet implemented) -- thermostat clock formate date-time: dd.mm.yyyy hh:mm -- RC300 summermode as other thermostats `winter/summer` instead of `off/on` +- controller data in web-ui only for IVT [#522](https://github.com/emsesp/EMS-ESP32/issues/522) +- rename hidden `climate` to a more explaining name [#523](https://github.com/emsesp/EMS-ESP32/issues/523) ## **BREAKING CHANGES:** - -- Settings: - - order of Boolean Format has changed in Application Settings - check your settings - - Dallas Format setting removed. Now customize name of each Dallas sensor via the UI -- MQTT/API - - Boiler `wwheat` renamed to `ww3wayon` [#211](https://github.com/emsesp/EMS-ESP32/issues/211) - - Boiler `ww` tag renamed to `dhw`. Any custom Home Assistant lovelace dashboards will need updating. - - Renamed description of `wwtapactivated` to "turn on/off DHW". Otherwise would have looked like "boiler_dhw_turn_on_off_dhw" in HA. - - `/api/system/info` endpoint has updated keys. Now lowercase, no underscores and not capitalized. Replace "handlers" with "handlers received", "handlers fetched" and "handlers pending". From 2d50f18dcfa8176183d40a351d89ebe6055006e8 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 26 May 2022 13:11:13 +0200 Subject: [PATCH 5/5] changelog from 3.4.0 --- CHANGELOG.md | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf8fd774f..080b6687e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,96 @@ 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). +# [3.4.0] May 23 2022 + +## Added + +- WebUI optimizations, updated look&feel and better performance [#124](https://github.com/emsesp/EMS-ESP32/issues/124) +- Auto refresh of WebUI after successful firmware upload [#178](https://github.com/emsesp/EMS-ESP32/issues/178) +- New Customization Service in WebUI. First feature is the ability to enable/disabled Enitites (device values) from EMS devices [#206](https://github.com/emsesp/EMS-ESP32/issues/206) +- Option to disable Telnet Console [#209](https://github.com/emsesp/EMS-ESP32/issues/209) +- Added Hide SSID, Max Clients and Preferred Channel to Access Point +- Merged in MichaelDvP's changes like Fahrenheit conversion, publish single (for IOBroker) and a few other critical optimizations +- Enabled bi-directional read/write with Home Assistant, so values can be changed automatically from the UI without scripting [#265](https://github.com/emsesp/EMS-ESP32/issues/265) +- Added GC7000F Boiler [#270](https://github.com/emsesp/EMS-ESP32/issues/270) +- Revised LED flash sequence on boot up to show system health (1 flash=no ems, 2 flashes=no wifi) [#224](https://github.com/emsesp/EMS-ESP32/issues/224) +- Analog Sensor support [#271](https://github.com/emsesp/EMS-ESP32/issues/271) +- Solar cylinder priority [#247](https://github.com/emsesp/EMS-ESP32/issues/247) +- Read only mode in Settings, where EMS Tx/Write commands are blocked [#286](https://github.com/emsesp/EMS-ESP32/issues/286) +- Added 8700i Boiler device +- Added Cascade CM10 Controller device +- Add Olimex ESP32-POE-ISO to board profiles plus settings to customize Ethernet modules [#301](https://github.com/emsesp/EMS-ESP32/issues/301) +- Help text for string commands in WebUI [#320](https://github.com/emsesp/EMS-ESP32/issues/320) +- Germany translations (at compile time) +- #entities added to system/info` endpoint [#322](https://github.com/emsesp/EMS-ESP32/issues/322) +- analog outputs digital/pwm/dac +- remove MQTT retained configs if discovery is disabled +- timeout 10 min for MQTT-QoS wait +- Moduline 300 auto-temperatures T1-T4, RC300 romminfluencefactor +- RC35 parameters [#392](https://github.com/emsesp/EMS-ESP32/issues/392), [#398](https://github.com/emsesp/EMS-ESP32/issues/398) +- sync time with thermostat [#386](https://github.com/emsesp/EMS-ESP32/issues/386), [#408](https://github.com/emsesp/EMS-ESP32/issues/408) +- set mode has immediate effect [#395](https://github.com/emsesp/EMS-ESP32/issues/395) +- min/max in web value setting +- Extend customization to select if an entity is to be shown in the WebUI or forced as read-only [#317](https://github.com/emsesp/EMS-ESP32/issues/317) +- Added Moduline 400 installation parameters [PR #449 by @kwertie01](https://github.com/emsesp/EMS-ESP32/pull/449) +- Read time from IVT-controller [#439](https://github.com/emsesp/EMS-ESP32/issues/439) +- Hybrid Heatpump product-id 168 [#459](https://github.com/emsesp/EMS-ESP32/issues/459), thermostat settings +- Junkers ISM2 and IPM in warm water mode [#437](https://github.com/emsesp/EMS-ESP32/issues/437) +- Added Shower Alert trigger time and cold shot time [#436](https://github.com/emsesp/EMS-ESP32/issues/436) +- Improved Table layout in Web UI (searching, filtering, sorting, exporting to CSV) +- API fetch individual attributes from an entity [#462](https://github.com/emsesp/EMS-ESP32/issues/462) +- Option to disable mDNS +- Option for rendering booleans on dashboard [#456](https://github.com/emsesp/EMS-ESP32/issues/456) +- Upload customization settings from a file [#256](https://github.com/emsesp/EMS-ESP32/issues/256) + +## Fixed + +- lastcode broke MQTT JSON structure [#228](https://github.com/emsesp/EMS-ESP32/issues/228) +- fixed issue with overlapping while reading sequence of EMS1.0 telegrams +- fixed redundant telegram readings (because of offset overflow) +- added missing RC30/Moduline 400 [#243](https://github.com/emsesp/EMS-ESP32/issues/243) +- Correct modes for RC25 [#106](https://github.com/emsesp/EMS-ESP32/issues/106) +- Clean up old HA config's in MQTT before publishing data. This will prevent HA giving the 'dict' warnings [#229](https://github.com/emsesp/EMS-ESP32/issues/229) +- RC25 temperature setting [#272](https://github.com/emsesp/EMS-ESP32/issues/272) +- Buderus RC25 - "hc1 mode type" incorrect value [#273](https://github.com/emsesp/EMS-ESP32/issues/273) +- Increased number of Mixers and Heating Circuits [#294](https://github.com/emsesp/EMS-ESP32/issues/294) +- Check receive status before removing a telegram fetch [#268](https://github.com/emsesp/EMS-ESP32/issues/268), [#282](https://github.com/emsesp/EMS-ESP32/issues/282) +- Fix uploading firmware on OSX [#345](https://github.com/emsesp/EMS-ESP32/issues/345) +- Non-nested MQTT would corrupt the json [#354](https://github.com/emsesp/EMS-ESP32/issues/354) +- Burner selected max power can have a value higher than 100% [#314](https://github.com/emsesp/EMS-ESP32/issues/314) +- some missing fahrenheit calculations +- limited number of exclusions [#339](https://github.com/emsesp/EMS-ESP32/issues/339) +- MQTT sometimes would not reconnect after a WiFi outage + +## Changed + +- Use flash system to show system health (1 flash=no ems, 2 flashes=no wifi) [#224](https://github.com/emsesp/EMS-ESP32/issues/224) +- Renamed Dallas Sensor to Temperature Sensor in UI +- Dallas Format removed. Use the name to give each sensor an alias +- No longer MQTT subscribes to topic `/thermostat_hc` as it supports a path similar to the API endpoint construct +- Show Sensors quality in WebUI +- Controller not shown in WebUI dashboard +- renamed "Home Assistant Integration" to "MQTT Discovery" in MQTT Settings [#290](https://github.com/emsesp/EMS-ESP32/issues/290) +- Show ems tx reads and writes separately +- Show ems device handlers separated for received, fetched and pending handlers. +- Wired renamed to Ethernet +- removed system/pin command, new commands in analogsensors +- system/info device-info split to name/version/brand +- exclude list uses short-names, possible flags for web/api/mqtt excludes, readonly and favorite (selection not yet implemented) +- thermostat clock formate date-time: dd.mm.yyyy hh:mm +- RC300 summermode as other thermostats `winter/summer` instead of `off/on` + +## **BREAKING CHANGES:** + +- Settings: + - order of Boolean Format has changed in Application Settings - check your settings + - Dallas Format setting removed. Now customize name of each Dallas sensor via the UI +- MQTT/API + - Boiler `wwheat` renamed to `ww3wayon` [#211](https://github.com/emsesp/EMS-ESP32/issues/211) + - Boiler `ww` tag renamed to `dhw`. Any custom Home Assistant lovelace dashboards will need updating. + - Renamed description of `wwtapactivated` to "turn on/off DHW". Otherwise would have looked like "boiler_dhw_turn_on_off_dhw" in HA. + - `/api/system/info` endpoint has updated keys. Now lowercase, no underscores and not capitalized. Replace "handlers" with "handlers received", "handlers fetched" and "handlers pending". + # [3.3.1] January 20 2022 - lastcode broke MQTT JSON structure [#228](https://github.com/emsesp/EMS-ESP32/issues/228)