Skip to content
Tom Bombadil edited this page Feb 7, 2025 · 28 revisions

Introduction

This is a Home Assistant integration that enables communication with specific Helios / Vallox ventilation systems via the built-in RS485 interface. It is based on my old SmartHomeNG Helios plugin, which has been in 24/7 use since 2014 in my previous home automation system with a Helios EC 300 Pro.

image

Over the years, users have installed the plugin on various models from both manufacturers. Additionally, documentation indicates that more models use the same proprietary protocol:

Active installations Should work
Helios EC 200 Pro R/L Vallox 096 SE
Helios EC 300 Pro R/L Vallox 110 SE
Helios EC 500 Pro R/L Vallox 121 SE *
Vallox 090 SE Vallox 150 SE
Vallox 910 SE Vallox 270 SE
Vallox Digit SE Vallox Digit SE 2
Vallo Plus 350 SE Vallo Plus 500 SE
Vallo Plus 510 SE
Vallox 130D **

* both both versions with and without front heating module
** 130D with adjustments in const.py, as some of the registers have different addresses

The integration implements bi-directional communication for reading and writing registers and coils. Additional registers can be added without programming - simply include them in the configuration files (e.g., for individual CO2 and humidity sensor setups).

A writing service with register and data validation ensures safe control of your ventilation using standard HA automations. Want to have fresh air in your house every night at 3 a.m. for 30 minutes? Just click a boost ventilation together in the HA automations screen (see examples on the Wiki).

A list of tested RS485-LAN/WiFi adapters allows you to plug everything together without soldering tiny add-on boards or step-down converters - no need for own experiments.

What data can I get?

By default, the integration polls the device approximately every minute and reads around 30 registers and coils (r/w indicates writable items, r/o read-only items):

Status Settings
(r/o) remote control LEDs 1..4
Power, CO2 warning, humidity warning, winter mode
(r/w) On/off switch
Power off or on
(r/o) remote control indicators
Clean filter, heating active, system fault, service required
(r/w) Boost mode
Fireplace or normal boost
(r/o) boost status
Boost on/off, and remaining minutes if on
(r/w) Defrost start / hysteresis
Automatic (de-)activation at x °C
(r/o) system faults
Any errors or faults detected
(r/w) Pre-/post heating
Automatic activation at x °C
(r/o) heating status
Pre/post heating active or not
(r/w) Service interval
Reminder after x months
(r/w) service time remaining
Service due in x months
(r/w) Summer / winter mode
Controls use of bypass

Fans Temperatures
(r/w) fanspeed
The currently set fan speed (1..8).
(r/o) outside_temp, inlet_temp, outlet_temp, exhaust_temp
The NTC5K temperature sensor measurements in °C.
(r/w) initial_fanspeed
Fan speed after powering on (1..8).
(r/w) max_fanspeed
Maximum settable fan speed (1..8).
(r/w) output-/input_fan_percent
Reduction of each fan (if any).
(r/w) output-/input_fan_off
Off-switch for both fans (e.g. for defrost or fireplace boost).

Additional variables can be added by amending both const.py and vent_conf.yaml.

What is needed?

You will need:

  • An RS485-to-LAN/WiFi adapter of your choice (a list of tested adapters and their setup can be found here),
  • A short cable (20–30 cm) with at least two wires (four wires if the converter is to be powered by the bus).

There’s no need to be overly selective about the cable. In the predecessor of this integration, I successfully ran my adapter 24/7 for 10 years using two single NYM 1.5 mm² wires; no errors, always stable.