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.
system
command to show ESP8266 statscrash
command to see stack of last system crash, with .py files to track stack dump (compile with-DCRASH
)- publish dallas external temp sensors to MQTT (thanks @JewelZB)
- shower timer and shower alert options available via set commands
- added support for warm water modes Hot, Comfort and Intelligent (issue 67)
- added
set publish_time
to set how often to publish MQTT - support for SM10 Solar Module including MQTT (issue 77)
refresh
command to force a fetch of all known data from the connected EMS devices
- incorrect rendering of null temperature values (the -3200 degrees issue)
- OTA is more stable
- Added a hack to overcome WiFi power issues in arduino core 2.5.0 libraries causing constant wifi re-connects
- Performance issues with telnet output
- included various fixes and suggestions from @nomis
- upgraded MyESP library with many optimizations
test_mode
renamed tosilent_mode
set wifi
replaced withset wifi_ssid
andset wifi_password
to allow values with spaces- EMS values are stored in the raw format and only converted to strings when displayed or published, removing the need for parsing floats
- All floating point temperatures are to one decimal place (issue 79)
- test_mode option
- upgraded MyESP library
- minor changes
- Support the latest ArduinoJson v6 and espressif8266 2.0.4 libraries (in PlatformIO do a
pio lib update
andpio update
)
- MQTT keep alive to 2 minutes (60 seconds was just too short for slower networks)
- Improved MQTT startup time
- Setting wifi or mqtt settings are immediate, no need to restart the ESP
- Text changes in the help
- Show if MQTT is connected
- Show version of MyESP (the custom MQTT, Wifi, OTA, MDNS, Telnet library)
- EMS-OT OpenTherm connector
- MQTT keep alive changed from 5 minutes to 1 minute
- Callback for OTA. This is used to disable EMS bus during a firmware OTA update, which caused problems with the latest ESP89266 core libraries
- Added rough estimate of WiFi signal strength to info page
- Added the build time & date to the info page (optional in platformio.ini)
- Support for latest esp8266 arduino core version 2.5.0 and platform espressif8266 version 2.0.0
- Added board type to the info screen
- Improved MQTT LWT (Last Will Testament). Uses payload called 'online' and 'offline'. See emsesp#57
- Added ESP32 support to MyESP library
- Added Bosch Easy thermostat, Buderus Logamax U122
- Support for changing boiler wwtemp via MQTT (merge #58 from egrekov). thanks!
- Custom MDNS support. Now handled much better in the new esp core under OTA
- Change wifi settings using the
set wifi <ssid> <password>
command
- Added incoming MQTT "TOPIC_BOILER_WWACTIVATED" to set the warm water on/off. Payload is 1 or 0. See issue.
- Added the list of all MQTT topics to the README file
- issue with Serial monitoring conflicting with UART when both running
- Fixed typo with -D settings in the example platformio.ini
thermostat temp
now except floats (e.g. 20.5). Some thermostats may round up or down if they use 0.5 intervals.
- Support for RC10 thermostat
- New command
set serial
- Improved Tx logic. Retries are more efficient and startup is faster and less error prone.
- "# Rx telegrams" and "# Tx telegrams" show number of successful Reads and Writes initiated by the user or automatically by the code. This makes it easy to see if the Tx is working.
- Some refactoring in preparation for the EMS+ support coming soon
- Removed the
poll
andtx
commands DEBUG_SUPPORT
. Now controlled with the 'set serial' command- removed MQTT and WIFI settings from my_config.h. These have to be set either within the application (using set) or hardcoded in platformio.ini You can now check in
my_config.h
without everyone seeing your passwords! - TxCapable removed from
info
- The led pin, dallas pin and both thermostat and boiler type IDs can be set with the application, and stored.
- some minor improvements to autodetect
- last will MQTT topic prefixed with a header like the rest of the topics
- All double and float numbers rendered to 2 decimal places (precision = 2)
- Default logging set to None when starting a telnet session
- Added support for external Dallas sensors (DS1822, DS18S20, DS18B20, DS1825). See readme
- Added UBAParametersMessage type to fetch boiler modulation min & max values
- Report shows system load average
- Handle thermostats that don't have builtin temperature sensors when showing current temperature (emsesp#18 (comment))
- Improved way to identify if the EMS bus is connected
- Improved 'types' command to show more details
- Improved auto detect of thermostat types
- Some more devices like the Nefit Topline & RC310 thermostat recognition
- Added a check to see Tx is possible. See 'Tx Capable' under the 'info' screen
- Removed
MY_BOILER_MODELID
frommy_config.h
. It's always hardcoded.
- telnet commands with set are no longer forced to lower case
- Custom settings (e.g set led) moved outside MyESP
- Moved all MQTT to my_config.h making it independent from Home Assistant
- MQTT keep alive, last will testament and other settings all configurable in my_config.h
- RC35: MQTT day/night/auto mode; sets setpoint temperature in type 0x3D depends on current night/day Mode (@SpaceTeddy) #33
- Renamed project from EMS-ESP-Boiler to EMS-ESP since it's kinda EMS generic now
- Support for RC20F and RFM20 (emsesp#18)
- Moved all EMS device information into a separate file
ems_devices.h
so no longer need to touchems.h
- Telnet commands can be strings now and output is suspended when typing
- Removed SHOWER_TEST
- Removed WIFI and MQTT credentials from the platformio.ini file
- Settings are saved and loaded from the ESP8266's file system (SPIFFS). Can be set using the 'set' command
- Improved support when in Access Point mode (192.168.4.1)
- pre-built firmwares are back
- Scanning known EMS Devices now ignores duplicates (emsesp#30)
- ServiceCode stored as a two byte char
- Support for RC20F and RFM20 (emsesp#18)
- Can now hardcode Boiler and Thermostat types in my_config.h to bypass auto-detection
- Fixed MQTT subscribing to Heating and Hot Water active topics
- Fixed for listening to incoming MQTT topics (emsesp#27)
- Fixed handling of current temperature on an RC35-type thermostat that doesn't have a sensor (emsesp#18)
- Issues in 1.2.1 (see emsesp#25)
- Logic for determining if there is activity on the EMS bus and using the onboard LEDs properly
- Only process broadcast messages if the offset (byte 4) is 0. (emsesp#23)
- Improved checking for duplicate sent Tx telegrams by comparing CRCs
- Removed distiquishing between noise on the line and corrupt telegrams (emsesp#24)
- Incorrect indenting in
climate.yaml
(thanks @mrfixit1) - Improved support for slower WiFi connections
- Fixed issue with OTA not always giving back a completion response to platformio
- Fixed issue with repeating reads after a raw mode send
- Fixed handling of long integers (thanks @SpaceTeddy)
- added 'dout' flashmode to platformio.ini so OTA works now when uploading to a Wemos D1 Pro's or any other board with larger flash's
- added un tested supporting RC35 type of thermostats
- Try and discover and set Boiler and Thermostat types automatically
- Fetch UBATotalUptimeMessage from Boiler to get total working minutes
- Added check to see if bus is connected. Shown in stats page
- If no Wifi connection can be made, start up as a WiFi Access Point (AP)
- Report out service codes and water-flow pull-request. Thanks @Bonusbartus
- Build option is called
DEBUG_SUPPORT
(wasUSE_SERIAL
) - Replaced old ESPHelper with my own MyESP library to handle Wifi, MQTT, MDNS and Telnet handlers. Supports asynchronous TCP and has smaller memory footprint. And moved to libs directory.
- Simplified LED error checking. If enabled (by default), solid means connected and flashing means error. Uses either an external pull-up or the onboard ESP8266 LED.
- Improved Telnet debugging which uses TelnetSpy to keep a buffer of previous output
- Optimized memory usage & heap conflicts, removing nasty things like strcpy, sprintf where possible
- Improved checking for tap water on/off (thanks @Bonusbartus)
- Time and TimeLib's. Not used in code.
- Removed build option
MQTT_MAX_PACKAGE_SIZE
as not using the PubSubClient library any more - Removed all of Espurna's pre-built firmwares and instructions to build. Keeping it simple.
- Espurna build notes and ready made firmware
- Fixed handling of negative floating point values (like outdoor temp)
- Fixed handling of auto & manual mode on an RC30
- Fixed condition where all telegram types were processed, instead of only broadcasts or our own reads
- Created this CHANGELOG.md file!
- Added support for the Nefit Easy thermostat, reading of temperature values only - note read only (big thanks @kroon040 for lending me an Easy device)
- Added support for RC35/Moduline 400 - read only
- New raw logging mode for logging
- New 'r'command to send raw data to EMS
- Added MQTT messages for hot water on and heating on
- Implemented FIFO circular buffer queue for up to 20 Tx messages (Q command to show queue)
- Toggle Tx transmission via telnet (use 'X' command)
- Show thermostat type in help stats (use 's' command)
- Show version is help stats (use '?' command)
- Improved overall formatting of logging
- Include app name and version in telnet help
- Improved method to switch off hot tap water in Shower Alert
- Telnet P and M commands have changed
- Enabling Logging in telnet is now the 'l' command
- Logging is set back to None when telnet session closes
- Improved fetching of initial boiler values to post to MQTT at startup
- Improved handling and retrying of write/Tx commands
- Hid access from telnet to the Experimental custom function command 'x'
- Tx and Rx stats have gone from the stats page, as they were pretty meaningless
- Removed NO_TX define in platformio and replaced with system parameter 'command X'
- Removed -DDEBUG option in build
- Removed wwtemp MQTT messages to set the boiler temp. You'll never miss it.
- Removed LEDs for Tx, Rx and Err. Too many flashing lights and it drains the current.
- Removed capturing of last Rx and Tx times
- Support for older RC20 thermostats
- There's a nasty memory leek when in telnet's verbose mode with sending which causes the EMS to reset when running for a while.
- Initial stable version
- Initial development version