🚿 Bathroom Humidity Exhaust Fan

@SamJongenelen Give it a go witha single humidity sensor, if you find you need to add additional “stuff” look at that if you need to. Like I said in my use I find the on trigger works a treat, no so much for the off, perhaps I need a stronger fan, but the timeout works well enough for me.



Have a look at you “Falling Humidity”… that is your OFF setting. Maybe you need to lower this. But again you will be the only one that knows as each site is different, room, surfaces, sensor, etc. Could be just a fine tune :thinking:

Falling derivative really is the wrong trigger for off. I have switched from this to a custom automation which uses a baseline humidity number for the “off” value.

I’m reading that from a helper as well, so I’m planning on adding an automation to keep the level seasonally appropriate.

With the blueprint’s current approach, there was no value that didn’t either trigger too soon or not at all (relying on the fallback).

(Unrelated to my previous post, just a general tip.)

Note that you can make your derivative sensor be based on another helper, like a group sensor.

This allows you to do powerful things with multiple sensors. You could take the maximum, for example (perhaps a sensor right in the shower for fast reaction but another in the room you want to make sure stays dry). Or the average.

I don’t think group sensors allow subtraction, which is a shame — that could provide a baseline sensor option. (A template sensor could do the trick, though.)

Hi Matthew

I personal wouldn’t say that as it has been working for me. But it may not work for you as there are a lot of variables. Just saying it is wrong is not realy true :pensive:

Looks like your using a custom automation now or are you using this custom automation for the OFF trigger?

I am planing to do a bit of work on this blueprint soon as I would like a few more features.

Maybe you can PM me if you have the time so I can get a better understanding on what is going wrong for you.

Blacky :smiley:

I’m not trying to argue — I don’t mean wrong as in bad, but I really don’t think it’s conceptually the logical signal.

The derivative indicates the rate of change in humidity. A high value is a good proxy for “shower is on, adding a lot of humidity quickly”.

But a negative derivative doesn’t mean the shower is off, or even that the humidity level no longer needs to be dealt with. It just means humidity is dropping. But that’s what the exhaust fan is supposed to do.

I agree that there are a lot of factors, and it seems that your own is a case where this happens to work — perhaps your fan removes humidity slowly but surely, so a higher drop means the humdity source has stopped.

But if the fan removes significant humidity, that change when the shower stops will be negligible compared to the change just from the fan doing its job.

That’s why a return to baseline — or to a good indoor level — is a better stopping point.

I hope this is more clear.

I have been pondering, for my circumstances, what the best off trigger would be. As I’ve said before the humidity derivitive DOES work for me but is not consistent. However, if I used the humidity level as the shower started as my off trigger my fan would run for hours. In fact the humidity level in our bathroom still hasn’t dropped to the start level of a shower that happened over 24 hours ago.

Having said that, taking the start humidity level and then triggering fan off when reaching a level of, say, 50% of the difference between “peak” humidity and “start” humidity might be worth investigating. Taking 50% of that difference for the last shower means my fan would run for 1 hour!

Using this Blueprint, I think my fan has run for 30 minutes (when I check) max.

1 Like


Hi Chris

I agree and this happens to me especially in the winter. Cold temp is a major factor. I have 11 temp and humidity sensors throughout my house and the range is so different as well. Put them all together next to each other they all read about the same so they are accurate.

:thinking: thank you for your input :+1:

I am going upgrade and add some features. Constructive feedback will help me do this with some effort and testing to back up results (like you have provided, thank you). Maybe when this is done I might show my entire set up. One thing I will say is my humidity sensor is directly on the inlet of ductwork to the fan and directly above the shower head. I think this helps as when showering the fan draws the humidity directly over the sensor, then when the shower finishes it drops and provides the OFF.

@Blacky My comments and observations, I hope you’ve taken positively, that’s how they are meant! I use this Blueprint, I like this Blueprint.

To cope with so many variations of bathroom layouts, fan/shower/sensor relative postions, fan power, house temperature, season, background humidity changes, etc, etc I feel that you will have a nightmare trying to cover all eventualities! What you need is some machine learning features to be added to HA…


Yes, I agree too. In fact, in the winter, it may actually be good to leave some of that humidity indoors — and to not blow as much warm air outside.

The approach I’m working on for the off-level for my system is going to be a combination of hard-coded values (over 80% is never good, nor is lower than 30%) and a percentage over the baseline.

Might also take outdoor levels and temperature into account, but not sure yet.

For my system, I’m feeding this with a separate automation, which allows a lot of flexibility — but I’m not sure how to easily package that up in a way which contributes to this blueprint.


Hi Chris :smiley: :wave:

100% :+1:

Yea it is, you nailed it. Hopefully sharing the blueprints I use and have develop helps someone. There are so many variations even for me and was the reason why I thought I may share my install. My wife and I also don’t what to see any sensors, etc (nothing) that also adds to the whole complex installation.

Blacky :smiley:

Yea agree.

Maybe just PM me as I am going to start working on the blueprint soon. A lot is in my head and a few new features are going to be added.

1 Like

Another idea for improvement (maybe out of scope)…
I currently have a window sensor in the bathroom, and when the humidity drops and the outdoor temp is higher then indoor i get a notification on my phone(s) telling me to close the window.

Is this something that could be added? :slight_smile:


Hi Sam,

love hearing your ideas. Personally I wanted the window to open when the fan was on and then close when it was off but I couldn’t find a window opener that was elegant, could be used manually if required and would have a clutch if it was locked. If you know of one let us know.

Another thing to think off is if you get notified to close the window, would you like the window to just close for you and forget about the notification?

What do the say…Never say never, I will put it on the list :+1:

1 Like

Actually, ive been wanting to play with liniar and/or chain driven actuators. But not in the bathroom, that wont be pretty. Also they are not cheap and imi not sure what i need…

Ive made the notification repeat for every person who is home, so it is designed to be annoying. My bathroom window has great draft, but in winter it needs to be closed asap after humidity is ok :slight_smile:
It has saved me a lot of heating for sure

@Blacky this is great. Thanks so much for your work and being willing to share.

Will this work if I manually turn the fan on at the start of the shower? I don’t know if it will run the full program if the fan is already on when the threshold gets crossed.

I got a Tuya temp/humidity sensor and it only updates every 5 minutes so I’d prefer to start the fan manually.

Also, what does the derivative bypass actually do? That’s not clear to me. Does it just run a timer on the fan when it’s turned on?


Thanks for your kind words.

Maybe. If you turn the fan ON and it goes above you “Rising Humidity” then yes, but if it doesn’t then it will just continue to run.

I can see that this would be a nice feature to have. Will need to see and test if this will work. Currently I am adding new features to this blueprint so I will have a look at it tonight when I have a shower. Not promising anything but stay tuned and thanks for your suggestion. Testing of the new features takes some time as I like to make sure it is working how I would like it before I release it.

The by-pass allows you to pause the automation so you can have full manual control and the automation will do nothing… allows you to take back manual control of your fan when it is ON.

Thanks for the reply. If I can do anything to help I’m happy to do it. Testing or otherwise.

I was a bit surprised when my sensor only reported every 5 minutes. I just didn’t think about it ahead of time. But I think mine will still cross the threshold with it on. I’ll do some testing of that.


I have tested running the fan before the shower and because my sensor is inline with the exhaust outlet it preformed as normal. Would you be able to test your setup and turn the fan on before the shower and let us know what happened. Below is our test. This test also had a short time delay of 3 min and was the reason the humidity stayed hirer than it normally would do and then slowly drop over time. This was also testing a new feature that may be released.

I think the 5 min delay in your Tuya temp/humidity sensor may be an issue. It realy depends on when you turn on the shower as to were the sensor reporting time frame is. I have my update interval set to 60s and I can change it to anything.

I’ll get a better test but I had two back to back showers tonight starting around 9:30 and the second one had the fan on manually to start and the door open so humidity didn’t rise and much as normal.

I wonder if an OR looking at the derivative or humidity being above 80% or so would work. I can’t imagine it’s ever that high normally. But I’ll have to keep an eye on it. Another option would be setting a helper when the humidity rises more than 5% and run the fan until it’s within 5% of the baseline.

I do see how your approach of running until it’s coming down at a good rate then add on a set period of time would be less prone to error.

Is your sensor powered? Connected to an ESP32 or something? I assume it’s not just a battery powered zigbee sensor.