ESPHome-Radiante-Actuator-Controller
An open-source ESP32-S3/ESPHome 7-zone radiant heating controller with valve-feedback pump interlock, score-based failsafe logic, and real-time TFT monitoring.
Implementing Radiant Floor Heating Control with Open Source: ESPHome 7-Zone Controller and W5500 Expandability
Introduction: Beyond "On/Off" — Safe and Reliable Heating Control
Radiant floor heating control doesn't end with simple relay switching.
For stable real-world operation, the system must verify that valves actually open, protect the pump, detect sensor anomalies, and respond automatically. This open-source project implements an ESP32-S3-based 7-zone heating controller using ESPHome, bringing the following together in a single architecture:
- Per-zone independent temperature control
- Valve feedback-based pump interlock
- Cumulative anomaly diagnostics (failsafe)
- 1-Wire sensor auto-discovery (commissioning support)
- TFT local display + Home Assistant integration
The Role of WIZnet: Wired Expandability via W5500 Support
The hardware used in this project supports the W5500 Ethernet interface. While the current firmware operates primarily over Wi-Fi, the board-level design accommodates W5500, leaving room to transition to a wired network when needed.
Why this matters is straightforward:
- Start wirelessly and quickly, then expand to a stable wired network as needed
- Transition only the network layer while keeping control logic intact
- Easily tailor an operational strategy to the installation environment (residential / commercial / equipment room)
In short, even if you start with Wi-Fi today, the design allows a natural migration to Ethernet operation using the W5500 later.
How It Works: 4 Core Principles
1) Strict Pump Interlock Control
The pump doesn't turn on just because "a heating request exists." Both of the following conditions must be met simultaneously:
- At least one zone is actively heating
- At least one zone confirms an open-valve feedback signal
Start and stop delays are also applied to reduce unnecessary pump cycling.
2) Score-Based Failsafe
Anomalies are not treated as one-off events. Instead, an error score is accumulated per zone:
- Relay is ON but the valve hasn't opened
- Temperature hasn't risen sufficiently after a set heating period
A warning is triggered when the score accumulates, and if conditions worsen over an extended period, the affected zone is automatically disabled. This makes it easy to distinguish transient noise from actual faults, improving overall system stability.
3) 1-Wire Sensor Auto-Discovery
One of the most tedious tasks during installation is mapping DS18B20 addresses. This project supports button-triggered scanning that displays sensor addresses and temperatures at once, significantly reducing commissioning time:
- Automated sensor identification and mapping
- Faster on-site commissioning
- Easier re-inspection during maintenance
4) Information-Dense TFT Local Display

The 2.2-inch TFT doesn't just show values — it consolidates everything needed to make operational decisions at a glance:
- Per-zone current temperature, setpoint, and heating state
- Valve feedback and inactive zone status
- Temperature history graph and pump history
- Network, time, and system status
No tablet or separate app is needed on-site to quickly assess system status.
Expandability: From Heating Controller to Facility Control Platform
While currently a 7-zone floor heating controller, the architecture is well-suited for reuse in other control systems:
- HVAC and heat source distribution systems requiring zone-based control
- Small-scale fluid control systems requiring pump-valve interlocks
- Equipment requiring simultaneous local HMI and remote monitoring
- Sites that start with wireless deployment and later need to migrate to a wired (W5500) backbone
I/O expansion is already accounted for in the design, offering flexibility for adding zones or extending functionality.
Technical Stack Summary
| Category | Details |
|---|---|
| MCU | ESP32-S3 |
| Networking | Wi-Fi (primary), W5500 Ethernet (supported) |
| Firmware Framework | ESPHome |
| Zone Control | 7-zone thermostat + relay control |
| Output | PCA9554 I2C I/O Expander (8-channel) |
| Input | Digital input-based valve feedback |
| Temperature Sensors | DS18B20 + DS2484 (1-Wire over I2C) |
| Safety Logic | Score-based failsafe, automatic zone disable |
| Local Interface | ILI9341 TFT display |
| Upper-Level Integration | Home Assistant (ESPHome API), Web UI |
| Deployment | USB initial upload, OTA updates |
FAQ
Q1. Does this project work with Ethernet (W5500) right out of the box?
The default configuration is Wi-Fi-centered. However, since the hardware and design already include W5500 support as a foundation, you can expand to wired Ethernet operation through configuration changes.
Q2. Why doesn't the pump turn on from a heating request alone?
If the pump runs before the valves have actually opened, it can lead to inefficiency and increased equipment stress. This project prevents that through an interlock that also verifies valve feedback before activating the pump.
Q3. What environments is this suited for?
It's well-suited for multi-zone heating in residential spaces, small commercial settings, testbeds, and facility control proof-of-concept projects. The modular architecture makes customization and expansion relatively straightforward.

