Multi-zone hydronic in-floor heating system retrofitted with EQSP32 micro-PLC

The Control Problem

Upgrading aging building automation rarely means replacing everything. In this project, a 450 m² residential building had a fully functional hydronic heating system: five underfloor zones, three circulation pumps, a heat pump, and a buffer tank, all wired to a relay box with mechanical timers and wall thermostats.

The hardware was sound. The control logic was not: no fault detection, no temperature logging, no remote access, and no way to know whether a zone valve had actually opened.

The brief was to replace the control logic without touching the field wiring. The chosen controller: the EQSP32 micro-PLC, DIN-rail mounted in the existing panel.

Heating control panel before and after EQSP32 retrofit
The original relay box (left) and the retrofitted panel with the EQSP32 on DIN rail (right). Field wiring was unchanged.

I/O Inventory

Before writing a line of logic, the I/O requirements were mapped the same way you would for any PLC project:

Hydronic in-floor heating water circuit with five zones, three pumps, and heat pump buffer tank
The hydronic circuit: five underfloor zones, three circulation pumps, a 10 kW heat pump, and a buffer tank. Each zone is isolated by a motorized valve.
Field device Signal type EQSP32 port mode
Zone valve motors (×5) Discrete output, 230 V via relay Relay output
Valve open switches (×5) Discrete input (230 V isolated) Relay coil as sensor*
Circulation pumps (×3) Discrete output, 230 V via relay Relay output
Zone temperature sensors Wireless (Wi-Fi / MQTT) Virtual input
Heat pump enable Discrete output Relay output

* Relay coil sensing: Rather than adding opto-isolators for the 230 V open switch signals, the EQSP32 uses a relay coil as the sensing element. When the valve's internal end-of-travel switch closes, it energises a relay coil, and the EQSP32 reads the contact state. Clean electrical isolation, no extra components.

Total hard I/O: 11 discrete outputs (relay), 5 discrete inputs. Well within the EQSP32's 16-port capacity.

Motorized zone valve with end-of-travel open switch
A motorized zone valve of the type used in this installation. The built-in end-of-travel switch (open switch) provides the feedback signal that confirms the valve has fully opened.

Control Architecture: Local Logic First

The fundamental design principle for any safety-relevant installation applies here: the controller must operate correctly regardless of what the network does.

All safety-critical logic runs locally on the EQSP32:

The HMI heartbeat interlock inverts the usual assumption. In many installations the controller keeps running if the HMI drops out. Here, the HMI is considered part of the supervision chain: if the operator layer is no longer responding, the controlled system shuts down rather than running unsupervised.

EQSP32 wiring diagram for multi-zone hydronic heating control
Panel wiring diagram. Zone valve motors and open switches, circulation pumps, and the heat pump enable are all wired to EQSP32 relay I/O ports. No field wiring beyond the original relay box was modified.

The HMI Layer: Home Assistant as Open-Source SCADA

With safety logic running on the controller, a separate layer handles operator visibility, scheduling, and remote access. In this project that layer is Home Assistant, an open-source automation platform running on a low-power Linux mini PC backed by a UPS for ride-through during brief power events.

Think of it as a lightweight SCADA: it provides per-zone thermostat setpoints, trend logging, alarm history, and a web dashboard accessible from any browser or mobile device. It does not run any safety logic. The connection between the two layers is monitored in both directions: the HMI publishes a periodic heartbeat that the EQSP32 expects to receive. If the heartbeat stops, the EQSP32 initiates a controlled shutdown of all outputs rather than continuing to operate without supervision.

This separation of controller logic and HMI is standard practice in industrial automation. The difference here is cost: the entire HMI layer runs on open-source software with no per-seat licensing.

MQTT: The Field Bus Between Controller and HMI

Communication between the EQSP32 and Home Assistant uses MQTT, a lightweight publish/subscribe protocol widely used in industrial IoT alongside Modbus TCP and OPC-UA. The EQSP32 handles MQTT natively: broker connection, topic management, and Home Assistant device discovery are all handled automatically once credentials are configured via the EQConnect app.

From the application code perspective, exposing a relay output to the HMI is a two-step declaration:

application.cpp
// In setup() -- declare the output to Home Assistant
createControl_Switch("Zone A Pump", "mdi:pump");

// In the control loop -- update state after each logic evaluation
updateControl_Switch("Zone A Pump", pumpA_state);

The relay then appears in Home Assistant as a controllable switch with real-time state feedback, historical logging, and automation support, with no broker configuration, no topic mapping, and no retain flag management required.

Home Assistant dashboard showing multi-zone heating control with thermostat cards
The Home Assistant dashboard. Each zone has a thermostat card showing current temperature, setpoint, and heating state. All data is published in real time by the EQSP32 over MQTT.

Power Efficiency: Relay Derating Built In

Running 11 relay outputs simultaneously in a compact panel generates heat and draws continuous coil current. The EQSP32 addresses this with an automatic derating feature on relay outputs:

The result is roughly one-tenth the steady-state coil power compared to holding at full current. Built-in flyback diodes suppress inductive kick at the terminals, with no external suppression components needed. For a panel with 11 relay outputs running near-continuously during heating season, this is a meaningful efficiency gain and keeps enclosure temperatures down.

Automatic relay derating is uncommon in DIN-mount micro-PLCs at this price point. On a panel running 11 relays continuously through a heating season, the cumulative power and thermal benefit is significant.

Trend Logging and Fault Diagnosis

One of the advantages of pairing a micro-PLC with an MQTT-connected HMI is automatic trend storage. Every sensor value and output state change is time-stamped and stored by Home Assistant's recorder.

In this installation, the trend data surfaced a real fault within the first heating season: one zone was consistently underheating despite the valve showing open. The temperature vs. setpoint graph revealed the zone was heating too slowly, pointing to a sticky valve actuator that was only partially opening. Without trend data, this would have been attributed to a poorly insulated room.

The same trend graphs also provide heartbeat monitoring for each wireless sensor: a missing heartbeat is immediately visible as a gap in the timeline, and the watchdog logic on the EQSP32 responds to it automatically.

Home Assistant temperature history graph showing setpoint, actual temperature, and heating state over time
Temperature history for a single zone: setpoint (dashed), actual temperature, and on/off state. The graph is generated automatically by Home Assistant's built-in recorder. Gaps in sensor data trigger the EQSP32 watchdog.

Results

Deterministic local control

All interlocks and safety logic run on the EQSP32, independent of the network or HMI server state.

Remote access

Setpoints, zone status, and fault history accessible from any browser or mobile device, anywhere.

Trend logging

Continuous temperature and output state recording, used for commissioning, fault-finding, and energy analysis.

Panel efficiency

Relay derating reduces steady-state coil power to roughly one-tenth across all 11 relay outputs.

The EQSP32 replaced a relay box. What came with it (structured I/O, local safety logic, built-in MQTT, and relay derating) is what makes a micro-PLC the right tool for this job rather than a relay timer panel or a consumer smart home hub.

Ready to spec the EQSP32 for your next panel?

Datasheet, I/O reference, and interfacing guide available for download.

View the EQSP32