Introduction
This article is a follow-up of my previous (old) French post “Domotiser une ancienne chaudière mazout : Gestion du thermostat“. That previous built used a custom firmware to control relays, measure water temps and show status on a OLED screen.
Time has past and Tasmota is a very capable and easy to integrate framework. I don’t use much the OLED screen so I decided it was time to get rid of that old custom software.
Obviously, Tasmota supports OLED displays, I might consider going down the docs at Tasmota > Features > Displays. A custom build using USE_DISPLAY_SSD1306 will be required as well as quite some read.
Hardware
This built is similar to Monitoring a boiler using Tasmota on ESP8266 and DS18B20 sensors but adds relays to control the Power and Circulator.
Another option is to use an OpenTherm interface but that’d require changing my physical thermostat. As far as possible I prefer non invasive hacks that are easy to reverse.
The below overview shows the main components such that:
- WeMos D1 Mini ESP8266 is used as the main controller
- 5V relay module is used to control power and circulator (heating)
- DS18B20 are used to measure outgoing and returning water temperatures
- Optional : I2C OLED 0.96 inch display module from my initial build using Homie. This post does not cover its use with Tasmota.
- Optional : DIN Power Supply (5V, 15W) to power the build
- The Zigbee network controlling the radiators valves, this is out of scope for this post:
- Sonoff ZBDongle-P as Zigbee gateway
- Zigbee radiator valves from MOES at each radiator
Test bed and wall box assembly
Bill Of Materials
The BoM is exactly the same as for the Monitoring a boiler using Tasmota on ESP8266 and DS18B20 sensors except you need one or two relays to control the furnace power / circultor.
Part | Quantity | Approx. Price |
Perfboard : Main PCB to put your assembly | 1 | 15€ for a set of 34 |
PCB 2 pin terminal : Optional direct 5V power input | 1 | 10€ for a set of 50 |
PCB 3 pin terminal : One per temp sensor | 4 | 14€ for a set of 50 |
WeMos D1 Mini ESP8266 : The brain | 1 | 5€ |
DS18B20 : Waterproof temp sensors with 1m wire | 3 | 10€ for a set of 10 |
Flexible silicone wire rolls : To wire the board | 1 | 12€ for a set of 5 spools of 10 meters |
Resistors assortment kit : One 4.7Kohm for data bus of DS18B20 | 1 | 5€ for a set of 500 |
5V relay module : Use a 2 Way to control power and circulator, 1 Way for circulator alone | 1 | 2€ |
Software
Tasmota
Just connect your WeMos D1 Mini ESP8266 to your computer over USB and install the regular Tasmota image using https://tasmota.github.io/install/.
To configure your board, use Module type = Generic(18) with below settings (adjust based on your actual wiring):
- D5 GPIO14 : Relay_i #1 for Power
- D6 GPIO12 : Relay_i #2 for Circulator
- D7 GPIO13 : DS18x20 #1 – As the DS18B20 uses a bus, a single data pin is required for both sensors (or more!)
Finally configure the MQTT to point to you Home Assistant server.
Home Assistant
In HA, make sure to setup the Tasmota integration, this will detect your Tasmota device over MQTT and setup the entities automatically.
Once entities are present in HA, I included them as shown below.
Here is the YAML configuration
type: vertical-stack cards: - cards: - show_name: true show_icon: true entity: switch.tasmota_furnace_relay_power hold_action: action: none tap_action: action: toggle type: button icon: mdi:power - show_name: true show_icon: true entity: switch.tasmota_furnace_relay_circulator hold_action: action: none tap_action: action: toggle type: button icon: mdi:engine type: horizontal-stack - type: history-graph entities: - entity: switch.tasmota_furnace_relay_circulator - entity: sensor.tasmota_furnace_ds18b20_1_temperature - entity: sensor.tasmota_furnace_ds18b20_2_temperature hours_to_show: 8 refresh_interval: 1 title: Chaudière
Conclusion
I enjoyed working on this build and it is probably the hardware I use the most for my home automation. The use of Tasmota dramatically simplifies its deployment and maintenance.
However this is only one of three big parts for my heating automation:
- Furnace control : This post
- Radiators control using Zigbee valves : It’s as simple as adding the Sonoff ZBDongle-P and some Zigbee radiator valves from MOES
- Full radiators automation : Home Assistant to control per room valves on a schedule
I still have some work to put on automating the heating itself. I’m currently relying on the physical thermostat and manual circulator control.