All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix memory leak in api #524
- Controller data in web-ui only for IVT #522
- Rename hidden
climate
to a more explaining name #523 - Minor changes to the Customizations web page #527
- WebUI optimizations, updated look&feel and better performance #124
- Auto refresh of WebUI after successful firmware upload #178
- New Customization Service in WebUI. First feature is the ability to enable/disabled Enitites (device values) from EMS devices #206
- Option to disable Telnet Console #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
- Added GC7000F Boiler #270
- Revised LED flash sequence on boot up to show system health (1 flash=no ems, 2 flashes=no wifi) #224
- Analog Sensor support #271
- Solar cylinder priority #247
- Read only mode in Settings, where EMS Tx/Write commands are blocked #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
- Help text for string commands in WebUI #320
- Germany translations (at compile time)
- #entities added to system/info` endpoint #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, #398
- sync time with thermostat #386, #408
- set mode has immediate effect #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
- Added Moduline 400 installation parameters PR #449 by @kwertie01
- Read time from IVT-controller #439
- Hybrid Heatpump product-id 168 #459, thermostat settings
- Junkers ISM2 and IPM in warm water mode #437
- Added Shower Alert trigger time and cold shot time #436
- Improved Table layout in Web UI (searching, filtering, sorting, exporting to CSV)
- API fetch individual attributes from an entity #462
- Option to disable mDNS
- Option for rendering booleans on dashboard #456
- Upload customization settings from a file #256
- lastcode broke MQTT JSON structure #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
- Correct modes for RC25 #106
- Clean up old HA config's in MQTT before publishing data. This will prevent HA giving the 'dict' warnings #229
- RC25 temperature setting #272
- Buderus RC25 - "hc1 mode type" incorrect value #273
- Increased number of Mixers and Heating Circuits #294
- Check receive status before removing a telegram fetch #268, #282
- Fix uploading firmware on OSX #345
- Non-nested MQTT would corrupt the json #354
- Burner selected max power can have a value higher than 100% #314
- some missing fahrenheit calculations
- limited number of exclusions #339
- MQTT sometimes would not reconnect after a WiFi outage
- Use flash system to show system health (1 flash=no ems, 2 flashes=no wifi) #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<n>
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
- 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 ofoff/on
- 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 toww3wayon
#211 - Boiler
ww
tag renamed todhw
. 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".
- Boiler
- lastcode broke MQTT JSON structure #228
- overlapping while reading sequence of EMS1.0 telegrams
- redundant telegram readings (because of offset overflow)
- added missing RC30/Moduline400 #243
- check received status before toggling fetch on empty telegram [#268][#282]
- Add system commands for syslog level and watch #98
- Added pool data to telegrams 0x494 & 0x495 #102
- Add RC300 second summermode telegram #108
- Add support for the RC25 thermostat #106
- Add new command 'entities' for a device, e.g. http://ems-esp/api/boiler/entities to show the shortname, description and HA Entity name (if HA enabled) #116
- Support for Junkers program and remote (fb10/fb110) temperature
- Home Assistant
state_class
attribute for Wh, kWh, W and KW #129 - Add current room influence for RC300 #136
- Added Home Assistant device_class to sensor entities
- Added another Buderus RC10 thermostat with Product ID 65 #160
- Added support for mDNS #161
- Added last system ESP32 reset code to log (and
system info
output) - Firmware Checker in WebUI #168
- Added new MQTT setting for enabling 'response' topic
- Support for non-standard Thermostats like Tado #174
- Include MQTT connection status in 'api/system/info'
- Include Network status in 'api/system/info' and also the MQTT topic
info
#202 - Added Ethernet PHY module as an option in the Board Profile #210
- MQTT reconnecting after WiFi reconnect #99
- Manually Controlling Solar Circuit #107
- Fix thermostat commands not defaulting to the master thermostat #110
- Enlarge parse-buffer for long names like
cylinderpumpmodulation
- MQTT not subscribing to all device entities #166
- Help fix issues with WebUI unable to fully load UI over Ethernet #177
- Shower alert never reset after limit reached when enabled [(PR #185)]
- Remove HA entity entries when a device value goes dormant #196
- deciphering last error code dates on 0xC2 telegram #204
- Syslog BOM only for utf-8 messages #91
- Check for KM200 by device-id 0x48, remove tx-delay #90
- rename
fastheatupfactor
tofastheatup
and add percent #122 - "unit" renamed to "uom" in API call to recall a Device Value
- initial backend React changes to replace the class components (HOCs) with React Hooks
- Use program-names instead of numbers
- Boiler's maintenancemessage always published in MQTT (to prevent HA missing entity)
- Unit of Measure 'times' added to MQTT Fails, Rx fails, Rx received, Tx fails, Tx reads & Tx writes
- Improved API. Restful HTTP API works in the same way as MQTT calls
- Removed settings for MQTT subscribe format #173
- Improve Nefit Moduline 200 functionality #183
status
in the MQTT heartbeat renamed tobus_status
- Layout changes in the WebUI, showing stripped table rows in Dashboard
- Alternative font for log window #219
- API: "unit" renamed to "uom" in API call to recall a Device Value
- HA:
sensor.boiler_boiler_temperature
renamed tosensor.actual_boiler_temperature
- HA:
binary_sensor.boiler_ww_disinfecting
renamed tobinary_sensor.boiler_ww_disinfection
- HA: # removed from counts in MQTT Fails, Rx fails, Rx received, Tx fails, Tx reads & Tx writes
txread
renamed totxreads
andtxwrite
renamed totxwrites
in MQTT heartbeat payload- 'dallas sensors' in api/system/info moved to the "System" section. Renamed "uptime (seconds)" and "reset reason"
status
in the MQTT heartbeat renamed tobus_status
- json body in API can now take device, name, cmd, hc and id
- added example of how to use API directly to control values from Home Assistant
- API calls are shown in debug log (For troubleshooting)
- fixed issue with Home Assistant entity naming where boiler's ww was duplicated in entity name
- fixed issue where wwSetTemp was written too instead of wwSelTemp
- fixed case on mqtt names, like 'wwtankmiddletemp'
- renamed Product ID to 'EMS Product ID' in Home Assistant
- removed brackets around tags, e.g. (hc1) selected room temperature" is now just "hc1 selected room temperature"
- support for IPv6 (web/api/mqtt, not syslog yet) #83
- System Log in Web UI will show current time if the NTP Service is enabled #82
- Network settings for Tx-power, WiFi-bandwidth, WiFi-sleepmode #83
- optional low CPU clockrate (160 MHz) #83
- select format for enumerated values in web
- settings for water hysteresis on/off
- dallas sensor name editable.
sensorname
console-command, replace sensorid with a unique name #84 - 'restart' system command. Can be invoked via API with authentication. #87
- add Download button in Web UI for log
- set mode allow numbers
- Junkers thermostat shows mode as selected by set_mode
- HA thermostat mode if bool-format: numbers is selected
- Web UI System Log sometimes skipped a few log messages when watching real-time
- fix wwactivated #89
- don't show commands (like reset) as Device values in the Web or Console
- removed Rx echo failures counting as incomplete telegrams. Bad telegrams show as Warning and not Errors. #80
- add upload_sec to
api/system/info
and removed # from some names to keep consistent with MQTT heartbeat - added debug target to PlatformIO build to help hunt down system crashes
- enumerated values always start at zero
- maintenance settings for time/date as extra setting
- move api/mqtt formats to
settings
, addenum format
- UI improvements for editing Dallas Sensor details
- RESTful GET commands can also require authentication (via bearer access token) for better security
- Updated AsyncMqttClient to 0.9.0 and ArduinoJson to 6.18.3
- Download buttons for settings and info under the Help tab
- new command called
commands
which lists all available commands.ems-esp/api/{device}/commands
- More Home Assistant icons to match the UOMs
- new API. Using secure access tokens and OpenAPI standard. See
doc/EMS-ESP32 API.md
and #50 - show log messages in Web UI #71
- HA thermostat mode was not in sync with actual mode #66
- Don't publish rssi if Wifi is disabled and ethernet is being used
- Booleans are shown as true/false in API GETs
info
command always shows full names in API. For short names query the device or name directly, e.g.http://ems-esp/api/boiler
- free memory is shown in kilobytes
- boiler's warm water entities have ww added to the Home Assistant entity name #67
- improved layout and rendering of device values in the WebUI, also the edit value screen
- Mock API to simulate an ESP, for testing web
- Able to write values from the Web UI
- check values with
"cmd":<valuename>
and data empty or?
- set hc for values and commands by id or prefix
hc<x>
+separator, separator can be any char
- Don't create Home Assistant MQTT discovery entries for device values that don't exists (#756 on EMS-ESP repo)
- Update shower MQTT when a shower start is detected
- S32 board profile
- Icon for Network
- MQTT Formatting payload (nested vs single) is a pull-down option
- moved mqtt-topics and texts to local_EN, all topics lower case
- Re-enabled Shower Alert (still experimental)
- lowercased Flow temp in commands
- system console commands to main
- power settings, disabling BLE and turning off Wifi sleep
- Rx and Tx counts to Heartbeat MQTT payload
- ethernet support
- id to info command to show only a heatingcircuit
- add sending devices that are not listed to 0x07
- extra MQTT boolean option for "ON" and "OFF"
- support for chunked MQTT payloads to allow large data sets > 2kb
- external Button support (#708) for resetting to factory defaults and other actions
- new console set command in
system
,set board_profile <profile>
for quickly enabling cabled ethernet connections without using the captive wifi portal - added in MQTT nested mode, for thermostat and mixer, like we had back in v2
- cascade MC400 (product-id 210) (3.0.0b6), power values for heating sources (3.0.1b1)
- values for wwMaxPower, wwFlowtempOffset
- RC300
thermostat temp -1
to clear temporary setpoint in auto mode - syslog port selectable (#744)
- individual mqtt commands (#31)
- board Profiles (#11)
- telegrams matched to masterthermostat 0x18
- multiple roomcontrollers
- readback after write with delay (give ems-devices time to set the value)
- thermostat ES72/RC20 device 66 to command-set RC20_2
- MQTT payloads not adding to queue when MQTT is re-connecting (fixes #369)
- fix for HA topics with invalid command formats (#728)
- wrong position of values #723, #732
- OTA Upload via Web on OSX
- Rx and Tx quality % would sometimes show > 100
- changed how telegram parameters are rendered for mqtt, console and web (#632)
- split
show values
in smaller packages (edited) - extended length of IP/hostname from 32 to 48 chars (#676)
- check flowsensor for
tap_water_active
- mqtt prefixed with
Base
- count Dallas sensor fails
- switch from SPIFFS to LITTLEFS
- added ID to MQTT payloads which is the Device's product ID and used in HA to identify a unique HA device
- increased MQTT buffer and reduced wait time between publishes
- updated to the latest ArduinoJson library
- some names of mqtt-tags like in v2.2.1
- new ESP32 partition side to allow for smoother OTA and fallback
- network Gateway IP is optional (#682)emsesp/EMS-ESP
- moved to a new GitHub repo https://github.com/emsesp/EMS-ESP32
- invert LED changed to Hide LED. Default is off.
- renamed Scan Network to Scan WiFi Network
- added version to cmd=settings
- Allow both WiFi and Ethernet together, fall back to AP when Ethernet disconnects
- Shower Alert (disabled for now)
- Power settings, disabling BLE and turning off Wifi sleep
- Rx and Tx counts to Heartbeat MQTT payload
- Ethernet support
- id to info command to show only a heatingcircuit
- add sending devices that are not listed to 0x07
- extra MQTT boolean option for "ON" and "OFF"
- Support for chunked MQTT payloads to allow large data sets > 2kb
- External Button support (#708) for resetting to factory defaults and other actions
- new console set command in
system
,set ethernet <profile>
for quickly enabling cabled ethernet connections without using the captive wifi portal - Added in MQTT nested mode, for thermostat and mixer, like we had back in v2
- Cascade MC400 (product-id 210) (3.0.0b6)
- values for wwMaxPower, wwFlowtempOffset
- RC300
thermostat temp -1
to clear temporary setpoint in auto mode - Syslog port selectable (#744)
- telegrams matched to masterthermostat 0x18
- multiple roomcontrollers
- readback after write with delay (give ems-devices time to set the value)
- Thermostat ES72/RC20 device 66 to command-set RC20_2
- MQTT payloads not adding to queue when MQTT is re-connecting (fixes #369)
- fix for HA topics with invalid command formats (#728)
- wrong position of values #723, #732
- OTA Upload via Web on OSX
- changed how telegram parameters are rendered for mqtt, console and web (#632)
- split
show values
in smaller packages (edited) - extended length of IP/hostname from 32 to 48 chars (#676)
- check flowsensor for
tap_water_active
- mqtt prefixed with
Base
- count Dallas sensor fails
- switch from SPIFFS to LITTLEFS
- Added ID to MQTT payloads which is the Device's product ID and used in HA to identify a unique HA device
- Increased MQTT buffer and reduced wait time between publishes
- Updated to the latest ArduinoJson library
- some names of mqtt-tags like in v2.2.1
- new ESP32 partition side to allow for smoother OTA and fallback
- Network Gateway IP is optional (#682)emsesp/EMS-ESP
- moved to a new GitHub repo https://github.com/emsesp/EMS-ESP32