Skip to content

Version Release History

This lists the Change Log for only the rolled-up major versions since v3's primary release in March 2021. For a list of all releases and their fixes, changes and new features see the latest dev Change Log.

3.6.0 - current development version~

Lots of optimizations to the core, more entities, Discovery improvements, web improvements, scheduler and more new features coming (if it can fit into the 4MB Flash).

3.5.0 - Feb 6 2023~

🚨 BREAKING CHANGE 🚨

  • When upgrading to v3.5 for the first time from v3.4 on a BBQKees Gateway board you will need to use the EMS-EPS Flasher to correctly re-partition the flash. Make sure you backup the settings and customizations from the WebUI (System->Upload/Download) and restore after the upgrade.
  • Support for multiple EMS-ESPs [#759] has been added as an optional setting for MQTT. When enabled, which is now the default, all MQTT Discovery Entity IDs will include the MQTT base name and the shortname of the EMS-ESP device entity. For example what was previously sensor.boiler_actual_boiler_temperature will now become sensor.ems_esp_boiler_boiltemp. If you still want to use the old format and retain the history and script compatibility in Home Assistant then set this back to the old format.

Added

  • Translations in Web UI and all device entity names (DE, NL, SV, PL, NO, FR) #22
  • Add support for Lolin C3 mini #620
  • Add support for ESP32-S2 #667
  • Add devices: Greenstar 30Ri boiler, Junkers FW500 thermostat, Buderus BC30 controller
  • Add program memory info
  • Add mqtt queue and connection infos
  • Adapt min/max if ems-value is not in this range
  • Add heat pump settings for inputs and limits #600
  • Add hybrid heatpump #500
  • Add translated tags
  • Add min/max to customization table #686
  • Add MD5 check #637
  • Add more bus-ids #673
  • Use HA connectivity device class for Status, added boot time #751
  • Add commands for analog sensors outputs
  • Support for multiple EMS-ESPs with MQTT and HA [#759]
  • Settings for heatpump silent mode and additional heater [#802] [#803]
  • Zone module MZ100 #826
  • Default MQTT hostname is blank #829
  • wwCurFlow for ems+ devices #829
  • Add Rego 3000, TR120RF thermostats #917
  • Add config for ESP32-S3
  • Add heatpump silent mode and other entities #896
  • Allow reboot to other partition (factory or asymetric OTA)
  • Blacklist entities to remove from memory #891
  • Add boiler pump operating mode #944

Fixed

  • Factory Reset not working #628
  • Valid 4 byte values #820
  • Commands for multiple thermostats #826
  • API queries for multiple devices #865
  • Console crash when using call with command hcx only. #841
  • heatingPump2Mod was wrong, changed to absBurnPow [#908
  • Rounding of web input values
  • Analog sensor with single gpio number #915
  • HA dallas and analog configs: remove/rebuild on change #888
  • Modes and set seltemp for RC30 and RC20 #932

Changed

  • Discovery in HomeAssistant don't work with custom base topic. #596 Base topic containing / are changed to _
  • RF room temperature sensor are shown as thermostat
  • Render mqtt float json values with trailing zero
  • Removed flash strings, to increase available heap memory
  • Reload page after restart button is pressed
  • Analog/dallas values command as list like ems-devices
  • Analog/dallas HA-entities based on id
  • MQTT Base is a mandatory field. Removed MQTT topic length from settings
  • HA duration class for time entities [#822
  • AM200 alternative heatsource as class heatsource [#857

3.4.4 - Oct 29 2022~

Added

  • RC310 additions #520
  • damping
  • wwprio for RC310 heating circuits
  • switchonoptimization for RC310 heating circuits
  • enum_controlmode for RC310 (new enum list)
  • nofrostmode, reducemode, reducetemp & noreducetemp for RC310
  • emergencyops and emergencytemp, wwmaxtemp, wwflowtempoffset and wwcomfort1 for RC310
  • HM200 hybrid module #500
  • AM200 alternative heatsource module #573
  • EM10 error module as gateway #575

Fixed

  • Fix for new installations with filesystem not initializing
  • fix Table resizing in WebUI #519
  • allow larger customization files #570
  • losing entitiy wwcomfort #581

Changed

  • Shorten "friendly names" in Home Assistant #555
  • platformio 2.3.0 (IDF 4, Arduino 2)
  • remove master-thermostat, support multiple thermostats
  • merge up- and download in webui #577

3.4.0 - May 23 2022~

🚨 BREAKING CHANGE 🚨

  • In Settings, the 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
  • Boiler wwheat renamed to ww3wayon #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".

Added

  • 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)
  • num 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

Fixed

  • 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

Changed

  • 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 of off/on

3.3.1 - Jan 20 2022~

🚨 BREAKING CHANGE 🚨

  • API: "unit" renamed to "uom" in API call to recall a Device Value
  • HA: sensor.boiler_boiler_temperature renamed to sensor.actual_boiler_temperature
  • HA: binary_sensor.boiler_ww_disinfecting renamed to binary_sensor.boiler_ww_disinfection
  • HA: # removed from counts in MQTT Fails, Rx fails, Rx received, Tx fails, Tx reads & Tx writes
  • txread renamed to txreads and txwrite renamed to txwrites 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 to bus_status

Added

  • 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

Fixed

  • 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]
  • 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

Changed

  • Syslog BOM only for utf-8 messages #91
  • Check for KM200 by device-id 0x48, remove tx-delay #90
  • rename fastheatupfactor to fastheatup 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 to bus_status
  • Layout changes in the WebUI, showing stripped table rows in Dashboard
  • Alternative font for log window #219

3.2.1 - Aug 8 2021~

Added

  • 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)
  • 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

Fixed

  • 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
  • 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

Changed

  • 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"
  • 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, add enum 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

3.1.1 - Jun 26 2021~

Added

  • 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
  • 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

Fixed

  • 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
  • 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

Changed

  • 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
  • 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

3.0.1 - Mar 30 2021~

Added

  • 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)
  • individual mqtt commands (#31)
  • board Profiles (#11)

Fixed

  • 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

  • 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

Last update: May 28, 2023