🚿 Bathroom Humidity Exhaust Fan


No problem, glad it has helped you.

Blacky :smiley:

Somehow it does not work for me. I checked this morning for the room (which is no bathroom but the laundry room) and while I did set this to 60 in the blueprint the humidity in HA did show 76 and no fan was running. Or am I missing something else here? I thought when defining the maximum humidity anything else is irrelevant unless the level is below the defined max? :thinking:


Yes, in order for it to work you must have a " Humidity Derivative Sensor". If you are just looking to turn a fan ON and OFF to humidity in your laundry then have a look at my :thermometer: Temperature Control Exhaust Fan blueprint. It says temp but it will work with humidity, just replace the temp with your humidity values.

Blacky :smiley:

I did create the helper but I am currently not sure if I understand it what it is supposed to do. Just wanted to use this to keep the laundry room dry and figured it can act with the sensor but once the humidity is above 65% (better 60%) I should always run. Below anything will do the trick to keep it as low as possible. So I created the helper and it works once humidity rises quick but once it does slowly rise it goes above the max and nothing happens…


It is realy designed to work for a shower. If you are just wanting to turn the fan ON above X% and then OFF below X% you are better to use my :thermometer: Temperature Control Exhaust Fan blueprint. You just put your humidity sensor in as the trigger, enter in your fan and then set your rising and falling humidity % you would like.

For this blueprint it has a lot of logic under the hood that not what you are after. The max humidity in this blueprint will only turn it ON not OFF. If you would like to know more about this blueprint have a look at the FAQ. The first 2 FAQ’s guides you through all the settings.

If you are still unsure and you need more help on this blueprint or the other blueprint (other blueprint post questions under its post) then could you please provide us your YAML of the automation? This YAML code are the settings you have selected in the automation so I can help. To do this go into your automation, top right 3 dots, Edit in YAML, copy all the code, come back to the forum and in your reply at the top tool bar click on “</>” and paste code in there.

Blacky :smiley:

Maybe I’m just stuck in my head. For me the blueprint although used in the bathroom, should do the trick for the laundry room as well, since when running the washing machine or especially the dryer usually let humidity rise quite quick. After that the laundry will be put to air dry in the room where humidity will rise but just not as fast as with the dryer. So after all the dryer to me would be equally to the shower and air drying should trigger because of the low (60%) max humidity. So this is kinda stuck in my head.

Anyways here is the yaml definition I have:

alias: Hauswirtschaftsraum
description: ""
  path: Blackshome/bathroom-humidity-exhaust-fan.yaml
    trigger: sensor.hwr_humidity
      device_id: d33a119fe34ae4712a4519f88af04b94
    bathroom_humidity_sensor: sensor.luftung_hwr_humidity
    rising_humidity: 2
    falling_humidity: -2.5
    time_out: 45
    include_max_humidity: maximum_humidity_enabled
    max_humidity: 60
    time_delay: 15
    winter_rising_humidity: 1.5
    winter_max_humidity: 80

Thanks a lot for your kind support I really appreciate it a lot!


That is all good if you would like to use this blueprint. Just remember that when the automation is triggered by the “Maximum Humidity” it will only turn the fan ON so it will wait for the “Falling Humidity Derivative” or the “Safeguard - Maximum Run Time” to start the time delay thus turning the fan OFF. There are some things you can do but first lets check and confirm the following.

  1. Your ‘sensor.hwr_humidity’ is your Derivative sensor.
  2. Your ‘sensor.luftung_hwr_humidity’ is your humidity sensor.
  3. With your fan switch can you expand it down to an entity for your fan not a device.

Test it again… it may be using a device and not an entity in the “Fan Switch”. I always prefer to use the exact entity.

Let us know if this works?

Here is a bit of a trick

If you prefer to use only the humidity values from your sensor and not a derivative sensor, follow these steps:

  1. Place your humidity sensor in the “Trigger - Humidity Derivative Sensor” input instead of the “Bathroom Humidity Sensor” input.
  2. Do not use the “Maximum Humidity Option.”

The automation will then work directly with your humidity sensor values, using your specified humidity rise and fall percentages. For example:

  • Set the “Rising Humidity Derivative” to 60.
  • Set the “Falling Humidity Derivative” to a value below 60, such as 50.

The automation will activate when the humidity rises above 60 and will start the time delay when it falls below 50 :wink:

Hope this helps you.

Blacky :smiley:

I can confirm that the devices are as you described. The fan is just a cheep on off wall fan which I connected to a shelly device with an addon to measure humidity. And a manual switch is attached to the shelly 1 as well so I can manually turn on and off. The idea was to have the max humidity level as my safeguard to not have the levels rise to slow when I air dry laundry. Perhaps it triggers it correctly but needs to run longer than the max runtime. What happens if the runtime is hit, the fan turns off and the humidity level is still above the max defined? Will it trigger again at the slightest change of the level or will it now wait for a higher rise like defined and ignored the max humidity level?
I wanted to prevent getting to the max level if it rises to fast and the 60% was the intention to always stay below no matter what. Ideally when rising fast at a lower level it stays below the 60 and all is good. I will look at the proposal and also at the other blueprint. Just checking which one does work better to achieve what I wanted to do. Thanks a bunch for you support and your time to help.

Thank you, I now have this setup and working, using my Aqara click button ‘single’ click action as the manual trigger, and using the auto-off time delay :slight_smile:

Do you think there is any possibility of including an ‘other devices’ section in a similar way to the existing ‘Lights’ section of the Blueprint? Just to explain, I currently have a separate automation which turns on and off my bathroom mirror demister, based on whether the extractor fan is running or not. This has been working great. Now that I am using the click button as my manual trigger for the humidity automation, the demister is turning on when the fan turns on, but I would like to break the link between the extractor fan and demister, so that the demister ONLY comes on if the humidity automation is triggered by the derivative sensor, and not when manually triggered by my button (for fumes/deodorant etc so no need for demist function).

There may be an easy way to solve this that I just haven’t thought of, but I thought I would ask if there was a possibility of including the option to turn on a separate switch entity when the automation runs, and then turn it off again when the automation turns off the fan entity?

Okay no problem, did you get it working? I may be getting lost in what is happening.

Blacky :smiley:

I just re-configured following your proposal. Gotta wait for the next load of laundry though :sweat_smile:


Yes I have thought about this but I didn’t consider what you have explained as I too thought it would be better to have a separate automation to handle it. I can see the manual trigger with how you set it up being a problem :thinking: thanks for sharing.

I will add this to the list, but I have many thoughts on how it should be handled, so it may take some time. I might even consider an alternative approach. The ‘Automation Link’ won’t turn on with the manual switch but will activate with the trigger.

If you enter a toggle helper into the ‘Automation Link’ and use that as the trigger in your other automation to turn on your mirror demister, that might just work for you. :thinking:

Let us know how you go.

Blacky :smiley:

Thanks Blacky, I’ll take a look at that and give it a try.

After looking at my current setup, before attempting that, I have noticed an issue with trying to use the manual trigger. The auto-off time doesn’t seem to work in my case, as I set it to 5 minutes just for testing, and the fan is still running 20 minutes later. I think I can see why though. My Aqara button is just a momentary button, rather than a switch that has an ON/OFF state. I created an input boolean for it, which has a state of on or off - toggled by a single click of the button.

So when clicking the button, and turning the input boolean to ON, the extractor fan starts, as the automation has been manually triggered. However, after 5 minutes, all that happens is my input boolean is triggered from the current ON state to OFF - I assume by the Blueprint? The fan continues to run though and is unaffected. Is that the correct behaviour for the manual trigger - the Blueprint toggles the input boolean state back to OFF? If so, I assume it should also turn the fan off at that point as well? Here is my config:

alias: Bathroom Humidity Exhaust Fan
description: ''
  path: Blackshome/bathroom-humidity-exhaust-fan.yaml
    trigger: sensor.bathroom_humidity
      entity_id: switch.extractor_fan_switch
    bathroom_humidity_sensor: sensor.ble_bath_d8df_humidity
    time_out: 60
    include_max_humidity: maximum_humidity_enabled
    max_humidity: 85
    include_lights: lights_disabled
    rising_humidity: 2
    time_delay: 12
    include_manual_trigger: enable_manual_trigger_time_delay
      - switch.zigbee_button_switch
    manual_trigger_default_time_delay: 5
    manual_trigger_winter_time_delay: 5

The automation was triggered at 15:24:22 when I clicked the Aqara button:


but it is still running 10 minutes later. All that happened was after 5 minutes, my input boolean controlled by the click button was turned off - I assume by the automation, as I didn’t click it

Or perhaps I should be using the ‘Manual Fan Switch’ option, rather than the Manual Trigger option?


I Scott, thanks for info, easy to understand and for me to help you.

You are using the “Manual Trigger” not the “Manual Fan Switch” they work differently.

  1. Manual Trigger = Will run the automation. So you have it set to go auto OFF in 5 min (you will see it turn off) but then the time delay starts of 12 min so the fan should then run for another 12 min that gives you a total of 17min. This option will also run the lights and automation link.

    The automation Humidity Derivative Sensor or Maximum Humidity can take control.

    How I use it? I turn it ON the fan is running before I even start to have a shower so I can extract all the steam instantly and not waiting for the Humidity Derivative Sensor to trigger the fan ON. When I start showering the Humidity Derivative Sensor get triggered and takes control. Then I just finish up and walk out and the automation finish everything up for me.

  2. Manual Fan Switch = Will turn the fan on and off only with the manual fan switch.

Try and move switch.zigbee_button_switch to the “Manual Fan Switch”

Hope this helps you

Blacky :smiley:

1 Like

Thanks Blacky, for some reason using the manual trigger function wasn’t working with my input boolean switch, as after waiting for the 5 minutes, plug the 12 minute delay, the fan continued to run and the automation never finished. The only thing that happened was that my input boolean was turned off by the automation.

I’ve since moved to using the Manual Fan Switch option, and this appears to be working correctly. I can turn the fan/automation on with a click of the button, and turn it off again with another click. Or, I can leave it running, and after 5 minutes, the fan turns off automatically :slight_smile:


Thanks again for your help sorting that out!


No problem, your welcome. What can happen is in that total of 17 min the automation can be triggered and then the fan runs longer. This can also happen with the manual fan switch so just be aware of that if you are wondering why it is still ON.

If you don’t want that then use the bypass.

Blacky :smiley:

1 Like

Thank you once again for all your hard work keeping up with this amazing blueprint @Blacky

I’m having trouble keeping the fan on long enough for the humidity to drop to an acceptable level.

The humidity while taking a shower goes up to 90% (yes I like steamy showers lol)
The fan turns on perfectly as soon as I start the shower.
But the problem is that it’s limited by the “Maximum Run Time” which I cannot set above 60mins as it would have to run longer than that in order to bring down the humidity.
So the automation is stopping due to Maximum Run Time instead of the derivative drop.
I’ve tried manually specifying Maximum Run Time but it’s showing it’s 60mins max

I’d like to make it 2hrs max, so even if I set the “Time Delay” which has a max of 20mins. It still won’t keep the fan on long enough

Any suggestions?


Your welcome and thanks for your kind words :+1:

If you just type in the minutes (120) you would like and click save. You will see a red line but that is okay… when you go out and back into the automation the red line will be gone. That applies to any input in all my blueprints.

Blacky :smiley:

1 Like