I replaced my broken €400+ Helios ventilation wall controller with a €60 ESP32 touch panel

The wall controller of my Helios KWL EC 300 Pro (MVHR unit), which is coupled with an earth heat exchanger (puits canadien), recently started failing. The LCD screen began displaying random garbage characters due to failing liquid crystals, making it essentially unusable. Since the manufacturer has discontinued this specific part, the few remaining stock units available from resellers are priced at around €420.

So instead, I spent about €60 on a LilyGO T-Panel S3 and decided to build my own controller.

The LilyGO board is a great fit for this: it features an ESP32-S3, a 480×480 touch screen, a built-in RS485 transceiver, and it accepts a 7-24V DC input directly, which made the integration with the existing wall wiring very straightforward.

The result is a custom external component for ESPHome. You can find the full code, ESPHome YAML configuration, and documentation here :backhand_index_pointing_down:

How it works

  • :mobile_phone: Touch UI: Controls the fan speed (1-8), seasonal mode (heat recovery / summer bypass), and handles humidity & CO₂ auto-regulation.
  • :gear: 46 auto-discovered HA entities: Exposes all 4 temperatures, humidity, fan speed, all setpoints/thresholds (as number entities), diagnostics, and cycles (as buttons).
  • :globe_showing_europe_africa: Easy Localization: Everything is customizable through the substitutions at the top of vmc.yaml if you want to switch from French to English or any other language.
  • :electric_plug: RS485 Custom Component: Uses a custom helios_kwl component that speaks the DIGIT protocol. It listens to the bus passively, polls safely without crashing, and reads back every write to confirm it worked.
  • :fire: Cycles: Boost & fireplace modes with visual countdowns directly on the screen.
  • :broom: Maintenance: Filter replacement reset with double-confirmation to prevent accidental clicks.
  • :thermometer: Screen features: Color-coded temperature/humidity measurements based on comfort zones, and an LCD sleep mode to prevent screen burn-in.

Compatibility

This is working well with my Helios KWL EC (the pre-Ethernet version). Since they share the exact same protocol, it should theoretically also work with the Vallox Digit SE.

(Credit where it’s due: This project is heavily based on an older component by lostcontrol for the KWL EC 500 R, which I extended to add 40+ registers, cycles, verified writes, and the touch display).

I just really hope this project can save some money and help anyone who runs into the same dead controller issue as I did. Let me know if you run into any issues setting it up!