A simple example of using OpenTherm gateway to monitor central heating parameters. Serves a webpage showing all OpenTherm messages between the thermostat and the boiler, and publishes the central heating parameters to a MQTT broker on your local network.
Forked from https://github.com/diyless/opentherm-gateway-simple and modified as follows:
- Project file structure changed from
Arduino IDE
toPlatformIO / VSCode IDE
Support
Removed support for ESP8266. Supports only ESP32.Functionality
Publishes central heating parameters to a MQTT broker on your local network. For use in, e.g., Home Assistant.Functionality
Enabled over-the-air (OTA) firmware updates viahttp://.../update
.Functionality
Added a boiler communication timeout check. It will email an alert and reset the ESP.Webpage
Removed the ThingSpeak and ApexCharts live graphs.Webpage
Neater OpenTherm log using human-readable values.Webpage
Dark theme.Code
Refactored variable names to mimic OpenTherm protocol.Code
Cleaned up redundant code.Code
Using character arrays in favor of Strings.Code
Removed thedisable CH
anddisable DHW
manual overrides.Code
Added explanatory comments.Fix
Report correctFlame
status.
My Wemos D1 Mini32 board (Lolin) with ESP-WROOM-32 chipset is reporting Brownout detector was triggered
. This is very likely the cause for the intermittent hangs I have been experiencing. Users on the
internet (arendst/Tasmota#19886) report on a weak
3.3V LDO regulator on board of the Wemos, triggering the voltage brownout
warning. Either replace it with one sustaining 500 mA, or try adding a 1000 uF
capacitor to the existing LDO.
Existing LDO on my Wemos D1 Mini32 board:
- RT9193-33GB (SOT23-5 package, marking DE=A1D): 3.3 V, 300 mA
Suggested pin-compatible replacement:
- RT9013-33GB (SOT23-5 package): 3.3 V, 500 mA
Brownouts resolved by keeping the original LDO and adding a 1000 uF, 6.3V electrolytic capacitor over the 3.3V and GND pins instead.