Manage humidity in bathroom based on calculated average humidity

How to manage your humidity in the bathroom.

This flow is created to measure the changes of humidity and manage the speed of the balance ventilation in the bathroom to achieve a normal humidity after using the bathroom.

In my case i added a device (power plug) on the balance ventilation to switch to high speed (so i overruled the remote, when needed).

First step is to create two number variables.

Note! - Make sure you add a value to the variable. It needs to multiply in the formula and and when you don’t add a value it stays 0 (e.g. 10 x 0 = 0) and the flow won’t work.

1. Average RV
2. Limit RV

Average RV is calculating after every change the RV and deviates it by a formula to realise the average RV

Limit RF is the Average RV with a self set percentage when RV is in acceptable value

First flow - HUM001 this is the flow which calculates the Average RV

The IF card contains the change at the sensor in your bathroom (in my case i used the Aqara Temp sensor)

The THEN card executes the formula to set the Average RV percentage
Note! in the formula i use round to get a number without decimals, be aware that round is spelled correctly and typed in lowercase like the example!

Second flow - HUM002 this flow sets your desired max when ventilation can stop

The IF card is trigged when te variable Average RV changes

The THEN card calculates the Limit RV

Third flow - Starting ventilation on high speed. (In my case, i used the Aqara Human Body sensor in the shower part of the bathroom)

The IF card is triggered when motion is detected

The THEN card starts several things

  1. Starts the fourth flow to turn that on
  2. Starts the ventilation on high speed
  3. Starting the mirror heating
    4 and 5 Heater (in my case i have air heating and when showering i set the blower to max to get extra air in the bathroom)
  4. Starting a timer ( i like to ventilate at least 500 seconds)
  5. Make a notification

Fourth flow - Stopping the ventilation

The IF card triggers a timer to check every two minutes (whatever you prefer)

The AND card checks if the timer is zero and if the Limit RV is less then the real RV

The THEN card stops ventilation and this (the fourth) flow


Am i missing something? When i make both numeric (better logic) variables, they do not change , when humidity goes up… (they stay 0 )

Considered this option:

The virtual thermostat works perfectly, I don’t have experience with the virtual hygrostat.

Another possibility is to compare the humidity in the bathroom to other temperature/humidity sensors indoors. With the group app it’s easy to calculate an average of them all, and than make a (better) logic when the value is greater than the average/or use the vthermo/humidity app as a thermostat with the average humidity tag as “fixed” value.

After reading reading the comments I decided to calculate the “delta” between the average humidity in three bedrooms and the humidity in the bathroom. If that delta exceeds 10% the ventilation (standard on “1”) is set to 2, if it exceeds 20% the ventilation is set to 3 (max).

I used a Fibaro FGS-222 and two 230v two-way relais to set the ventilation (WTW-unit)

I am intrigued by your solution, would that also work for a (dutch) mechanische ventilatie / mechanical ventilation?, and if so, would you care to share your schematics?

Our mechanical ventilation is an Itho unit, previously managed by a three-way switch, connected by a Perilex, currently handled by radio remotes, which is nice, but still requires human on/off. I am looking for a way to make this also smart.

Hi @RTimmer,

I have the ITHO as well and successfully made it smart :-), with an PWM module and the Fibaro RGBW module.

I assume that you’re dutch. You can have a look at this website, you can buy the PWM module here. Make sure your ITHO will work with the PWM, you can ask the website, they can tell you if t would work.

1 Like

When i entered the bathroom i store the value of the humidity sensor and make the velue +4. I also start a timer thet alow te vent to turn on during 15 minutes. That prevent that te vent is going on when te humidity raises over a long time even if i not standing under the shower.

After that i made a flow that triggers when te humidity changes when the humidity comming above te value stored in the logic the vent is ging on and the volume of the google home raises

Then i made a flow that triggers when de temperature changes en i stored the value in a logic en look if the temp. is higher or lower then the value before (temp react better then humidity in my experience) This happen only when the vent is on.

Everytime the temp is higher then the temp before a counter whill be reset to 0, if the temp is lower then the temp before a counter increase by 1.

A flow that trigger on a cheange of this value check’s in te and function if the value is exact 2, so the temp must be lower 2 times after ethother, then de vent is tunred off

I know, my english is verry bad but i hope u understand what i mean :see_no_evil:


Thanks for the info Jeroen, going to check it out!

Can you provide screenshots?

When i have time i try to make some screenshots

Some photo’s of the screen of my laptop

Just checked this out, the hygrometer that is and it works flawless.

Just add it to a zone where your fan and hygrometer is and set the desired humidity (unfortunate this, is with a slider without numbers so its a guess on what number youve set it)

I have similar calculation but done differently. There is the Group app in the store, you can choose Sensor to group, afterwards choose Humidity and the devices you are interested in, attach icon (choice of 2). The new virtual device created shall bear the name given by yourself and average humidity in the rooms (zones) where your real humidity sensors are located. And you can check the figure of average humidity on your Homey’ device screen. Very neat application really!


Hi, first time I reply on the Forum, I’m a Homey-pro user for about 1year now. Read a lot on the forum and used info & ideas like the average outdoor humidity calculation in this topic. I combined it with the CO2 and Humidity flows from Homey Cornelisse on Youtube, values come from a Netatmo wheather station with outdoor module in the garden and additional indoor module for the bathroom. I’ve added extra automation flows with ‘bathroom lights on’ => ‘fans out’ to avoid the fan-noise & cold air when you’re in the bathroom. I also added a lot of push messages to my phone to follow-up the values and variables used/calculated. My flows are doing a perfect job.

I had more a hardware related issue :
I control 2 basic 230Vac/15Watt fans for the bathroom ventilation that I sourced at and used Fibaro Z-Wave Plus wall plugs to switch them on/off. As those plugs lost their RF-connection with Homey and I had to re-pair them every time with Homey and rework the flows where they were used, I changed them to Klik-aan-Klik-uit APA3-1500R wall plugs, flows and app-button have not to be changed when pairing them again.
Unfortunately also these KaKu modules lost their RF-connection with Homey. Only the two wall plugs controlling the fans had problems. As all other Z-wave and KaKu modules were not affected, it was not a Homey or App related issue. Maybe there is noise on the 230V powernet and some influence from the fans could cause the RF-connection to fail.
As I was looking for a solution, I first had the idea to use a netfilter in the power lines to the fans . But overthinking it more in detail I came across the idea to use Z-wave modules with an open voltageless relais contact, without energy meter function, and put the filter in the power lines to the module L-N contacts. Doing so, the RF side of the module is separated from the contact side. advised me to use the Aeotec ZW140 relais module, which I did.
The filter I used is a Schurter C13 model , p/n 5110-0333-1, other filter models may be used as well.

Circuit diagram :

Pictures of the finished selfmade wall plug :

Hope this idea helps if you have RF connection problems.
Installation date of this new hardware: 24-feb-2020.
It’s working for nearly two weeks now, will inform you if it fails again. (hope not :wink:)
Update 29/3/2020 : still working fine, I think this is a good solution.
Update 26/5/2020 : still working perfectly fine.
Update 01/07/2020 : still working perfectly.
update 01/10/2020 : not one transmission issue since installation. Happy Me :slight_smile:
update 29/04/2021 : still working !

Be creatif ! kind regards !


This post was helpfull for me, thank you.

I was only wondering why in the last screenshot you disable the flow ‘Temp. tijdens douchen’? If it’s disabled it doesn’t seem to work.

Thank you for your replay, i have looked at my flows and on the printscreens it is not visible but in the flow “Vent. aanzetten luchtv” i enable the flow “Temp. tijdens douchen”


The shared flows, the printscreens are not very sharp

Nice! That was exactly what i was looking for haha. I just set up homey for a client with netatmo weather station so there is 2 bathrooms that need to be monitored and one ventilation device controlled by fibaro dimmer and i was wondering how to make it work so that i dont need to make 6 flows and wonder how to make the room with the highest humidity make the fan run at the highest level. This works really well!

Did you use logical fan to choose which room starts the process?