Humidity-sensitive ventilation and Home Assistant

Humidity-sensitive ventilation and Home Assistant

When insulating a house as part of an energy-efficiency renovation, it's essential to provide ventilation to evacuate any moisture that might accumulate inside. Since it's generally not possible to install a double-flow ventilation system after the fact, the recommended method is to use humidity-sensitive ventilation, which selectively ventilates the rooms that need it most. But does it really work? Let's find out with Yoctopuce modules and the Home Assistant home automation platform.

How humidity-sensitive ventilation works

Humidity-controlled ventilation (sometimes called Humidity control B) comprises the following components:

  • a central fan regulated at constant pressure
  • a humid air extraction network, linking the fan to extract units in humid rooms, whose airflow cross-sections automatically vary according to ambient humidity, using a mechanical process
  • external air inlets in living areas, also equipped with a mechanical device for modulating the airflow cross-section according to room humidity

When humidity is low, the opening of extract units and air inlets is minimal, and the central fan maintains a target (de-)pressure in the air extraction network through minimal suction. But when humidity rises in a living area or a damp room, the room airflow increases spontaneously with the mechanical adaptation of the air opening cross-section, and the ventilation automatically increases its speed to maintain the target pressure in the extraction network. The resulting airflow effectively removes humidity until the situation returns to normal.

Checking for optimal system operation

To ensure that the system is working as intended, you could install humidity sensors in the rooms and check that excess humidity is being corrected as expected. But this would only prove the efficiency of the ventilation system, not its optimal behavior: if the ventilation system is constantly running at maximum speed, consuming maximum energy and heating, we won't know.

For true validation, we need to question the ventilation unit itself. Since it is regulated at constant pressure, it has sensors and digital logic accessible to the installer. In our case, we use the CAB 160 ECOWATT PLUS manufactured by S&P.

CAB ECOWATT PLUS constant-pressure fan. The air outlet is at the rear.
CAB ECOWATT PLUS constant-pressure fan. The air outlet is at the rear.


Although this fan has no visible controls, it can be set and monitored by the installer using a small remote control, which is connected to the inside of the machine, by unscrewing the front panel where the electrical input leads. As the specification sheet suggests, this is actually a MODBUS-RTU link, which is good news: at least there's no need to reverse-engineer the communication protocol. The wiring of the RJ45 connector is not documented, but a look at the electrical control board reveals a series of plug-in screw terminals, with clear indications for RS-485 connection:

The RS-485 terminal block is on the far left, in front of the RJ45 connector for the remote control
The RS-485 terminal block is on the far left, in front of the RJ45 connector for the remote control



The MODBUS registers are listed on the last page of the manual, in a rather rough but useful translation. There are five input registers:

List of input registers (extract from CAB ECOWATT PLUS manual)
List of input registers (extract from CAB ECOWATT PLUS manual)


The input registers we're interested in are 3 and 4, corresponding to the internal pressure sensor and motor speed respectively. By monitoring them, we can check the humidity-sensitive behavior of the ventilation.

Setting up monitoring

To interrogate the ventilation, we use a Yocto-RS485-V2, connecting the wires as follows:

wireCAB ECOWATT terminal blockYocto-RS485-V2 terminal block
ground0VGND
Data+ terminalAD+
Data-BD-


Connecting the Yocto-RS485-V2
Connecting the Yocto-RS485-V2


By default, the fan works at 9600bps, 8 data bits, parity even. Using VirtualHub, we configure the Yoctopuce module as follows:

Configuration of the Yocto-RS485-V2
Configuration of the Yocto-RS485-V2


In addition, we create a job on the module that periodically polls the fan to read the values of the two input registers we're interested in, and assign them to two genericSensors:


Pressure sensor reading Motor speed reading
The two reading tasks of our job


Once the job has been activated, pressing the show device functions button under the list of modules allows you to display the instantaneous values read from the sensors directly in VirtualHub 's Web interface:

The values of the ventilation sensors, read by the Yocto-RS485
The values of the ventilation sensors, read by the Yocto-RS485


Finally, we configure genericSensor to publish a periodic notification every ten seconds with the average value measured over the interval. This is important, as it is this value that is transmitted to Home Assistant for display:

Setting the frequency of measure publication
Setting the frequency of measure publication


We also assign a distinctive name to the genericSensor functions so that they can be easily found later in Home Assistant, and we configure the measuring unit:

Configuring genericSensor function names and units
Configuring genericSensor function names and units


The Yocto-RS485-V2 is now ready to publish ventilation sensor values via USB.

Ethernet connection to Home Assistant

Logically enough, the ventilation unit is located in the attic - because of the damp air outlet on the roof. Since the Home Assistant system, which collects all the house's measures, is installed in the cellar, the most logical way to connect them is via the house's Ethernet network. So we're going to use a YoctoHub-Ethernet to add Ethernet connectivity to our Yocto-RS485-V2, screwing them together and connecting them using a pair of Board2Board-127 connectors. And while we're at it, we're going to add a Yocto-Watt to allow us to measure the fan's actual power consumption in real time.

The Yoctopuce module-based monitoring system
The Yoctopuce module-based monitoring system



The YoctoHub-Ethernet can autonomously publishing to an MQTT broker the measures of the sensors connected to it, when these transmit periodic measures. This is the easiest way to add our sensors to Home Assistant. Thanks to the MQTT discovery mechanism, our sensors spontaneously appear in Home Assistant once the MQTT configuration has been carried out on the YoctoHub-Ethernet:

Callback configuration to MQTT broker
Callback configuration to MQTT broker


As soon as the callback is launched, our Yoctopuce modules appear in the list of MQTT devices discovered by Home Assistant:

MQTT devices discovered by Home Assistant
MQTT devices discovered by Home Assistant


All that's left to do is click on the Add to dashboard button on the MQTT details page to add the displays to the desired control panel, then customize the icons. If, like us, you have added a Yocto-Watt to the system, you can also add an integrator-type helper on the power measure, which enables you to register the fan as an individual consumer in the Energy tab to track the impact of its consumption on the total energy balance.

Here's the status of our control panel:

The VMC monitoring panel in Home Assistant
The VMC monitoring panel in Home Assistant


The actual power consumption of 29W under normal conditions is a little higher than advertised by the manufacturer, but let's dig a little deeper to check whether the system's behavior is in line with expectations.

The moment of truth

After a certain amount of running time, you can consult the measure history by clicking on each measure. If someone has taken a shower during the interval, we should observe a temporary increase in motor speed while the residual moisture is evacuated. Here's the resulting graph:

Motor speed history
Motor speed history


The motor does indeed accelerate at around 10pm, when someone has taken a shower, and a second acceleration the following morning, when someone else has taken another shower. The system therefore reacts to the increase in humidity as expected. However, the variation in speed, of the order of only 5%, is less than we would have expected. Why is this?

As is often the case, some measures provide the explanation. By placing an anemometer in front of the extract units, we can verify that the extract unit flow rate in a humidity-saturated bathroom is indeed around 45 m3/h, as expected. However, it is 25 m3/h in unused bathrooms, instead of the 10 m3/h expected. Would the humidity there be higher than expected? A Yocto-Meteo-V2 reveals that the ambient humidity in the house is over 40%, as it has been raining for three days. At this humidity, the extract units are already wide open, even without taking a shower. This reveals an intrinsic problem with this type of humidity-controlled mechanical ventilation, which is based on relative humidity measure: a high level of outside humidity causes a higher level of air renewal in the house, for no good reason. Our homemade ventilation system presented a few years ago copes better with this situation, as it compares the absolute humidity of the outside and inside air to choose when to ventilate. It will therefore be interesting to reflect on the problem to see if it is possible to combine the best of both worlds to improve the efficiency of humidity sensitive CMV...

Conclusion

Thanks to standardized MODBUS and MQTT protocols, all it took was a few Yoctopuce modules to integrate the monitoring of humidity-sensitive ventilation into Home Assistant, thus ensuring its proper operation over the long term. In a future post, we'll look at how this system can be further enhanced to dynamically modify ventilation configuration and improve handling of special situations.

Warning: before experimenting with ventilation, make sure you know the ventilation setpoint value configured by the installer, so that you can reset it if necessary. This value should appear on the air balancing protocol drawn up by the fan manufacturer. Indeed, during our tests on this fan using the MODBUS Tool, we were unpleasantly surprised to find that simply reading the (undocumented) holding register 70 reset the fan to factory settings! So, if this happens to you, reset the desired setpoint value in holding register 24 and everything will be back to normal.

Add a comment No comment yet Back to blog












Yoctopuce, get your stuff connected.