How do I turn off a bathroom exhaust fan when humidity is below a threshold

I would like to control my Bathroom exhaust fan to do this:

  1. Turn on when motion is detected - done
  2. Turn off after motion stops but only if humidity is below a certain threshold
  3. Stop after 30 minutes, after the last motion detect.

Appreciate if some could point me to a solution.

There are a few options. There are probably a few standard rules you could use in conjunction to do this, but not 100% sure on that. Webcore is another option, and probably your quickest solution to get up and running. I personally like to mess round with code so I write my own smartapps. Just take one of the apps available and modify it to meet your needs. For that, of coarse, you need some programming abilities, it’s not too heavy and there are lot’s of examples out there to pull from.;

3 Likes

I would suggest WebCoRE. I’m not a programmer, and I use it for all of my automations. The Wiki does an excellent job of explaining how to get it working. Once you’ve got that done, creating pistons with custom rules is generally a point-and-click solution. There is a very active and helpful community dedicated just to WebCoRE.

2 Likes

Webcore is an option. If you don’t want to dive into custom code quite yet, you can also use “Humidity Alert!” in the app marketplace under Climate Control.

2 Likes

I use an app on here I found called “Smart Humidity Fan” from @johnathan398 that works really well.

Here is the SmartApp:

1 Like

Thank you, looks like exactly what I need - Will give it a try

1 Like

This may be a bit of an overkill for what you’re looking for, it’s designed for whole home management for temperature and humidify and supports a variety of different devices you can use to control both.

2 Likes

I tried doing the same thing you are trying. The thing that made me give up and just use a timer was the fact that most battery sensors do not transmit the humidity reading as often as you would like for it to really be effective. I had an Aeotec Multisensor and you could fiddle with the poll intervals. But it would kill battery life. I tried using the hard wired option also, but at least with that sensor the response time for motion was terrible as compared to the very inexpensive Iris sensors I picked up at Lowe’s a while back and the batteries last nearly a year even in high traffic areas and even longer in rooms with not as much motion. I’d say 90% of the time it’s within a second response time with sometimes it take a second or two to trigger the lights now.

1 Like

I wrote something a while back that does the same thing. Admittedly, however, I moved the functionality to WebCore.

https://raw.githubusercontent.com/MichaelStruck/SmartThingsPublic/master/smartapps/michaelstruck/smart-bathroom-ventilation.src/smart-bathroom-ventilation.groovy

1 Like

Tried using the “Smart Humidity Fan” solution - but looks like I will need to replace my DHT22 its stuck at 97.1% humidity - goes from -1% to 97.1% and stays there until the bathroom is dry.

I rolled my own using ESP-8266 and ST_Anything, its pretty snappy turning on, then I have min delay on turning off. I have been using the X-10 sensors they are not bad batteries last a couple of months, longer on less used ones, but their timing can be unpredictible, 4 of them are quite acceptable, however 2 are about 2.5 slower than they should be

I used webcore to make a piston: If the fan is on, and the light is changed to off, wait 45 minutes then turn the fan off. This allows the fan to run for a limited time after someone leaves the bathroom after a shower, or for some “other” reason that does not involve humidity.

2 Likes

I pretty much did something similar to this. My bathroom lights turn on with motion and turn off after 5 minutes of no motion. My fans are on a timer to turn off I think 20 minutes after the light goes off whether its turned of manually (which we usually do) or if its left to time out from motion (which my 8 year old mostly does). Has worked like a charm for 2 years now.

3 Likes

That app I posted above actually uses humidity levels from the Aeon Multisensor 6 I have installed in there. If it rises too fast, indicating a hot shower, then the fan turns on. It turns off when the humidity goes back down. It is pretty hands off as far as I am concerned. It has been working great since January when I installed the sensor.

1 Like

This sounds really cool but only solves part of the problem… I have not been able to find a Z-Wave or Zigbee bad smell sensor…:nauseated_face:

3 Likes

Maybe a sensor for methane gas? Haha.:grinning:

2 Likes

Thanks - that app worked really well as a starting point for me. It didn’t have motion sensor trigger so I added it. I have also developed a fault in my DHT22 sensor it goes from -1 to 97.1 and back - at around 60% humidity level with no stops in between. Which actually works out well for me because it acts like an automatic hot bath detector. :slight_smile: That app and ST_Anything are a great combo

1 Like

Does anyone use this automation? It looks like it’s supposed to monitor the switch state and if turned on manually, it is supposed to turn off the fan after X minutes. Mine doesn’t seem to be doing that correctly. Is there something I’m missing? The switch is a GE Zwave+ switch.

The manual on/off was something that was someone picky (flaky) on what device it would work on. There was a parameter for programmatically or manually but I believe ST has removed this from their code. It still works on limited devices such as the GE Switches but not reliable on Dimmers (12xxx series). Not sure about the ZWave+ 14xxx series.

If you haven’t installed webCoRE yet, I strongly suggest that you do. It is a very powerful rule engine that you can create your own Piston (rules, works like custom apps).

That’s odd. It doesn’t seem to be working with my GE switch. I’m using the 12722 switch. If I understand your post correctly, ST removed the ability for the device to monitor manual state changes for devices and then take action based on that change?

I installed webCoRe this morning, but I feel like a caveman confronted by an iPhone when just trying to control a few lights. I’m not sure where I would start to mimic the functionality of the program above. I posted on the webCoRe forum this morning for some help and am awaiting a response.

I’m not sure my humidity sensor is working out too well, since it only updates every 8 minutes. I have the Aeotec Smart Sensor.

I have found that the Zooz Multi 4-in-1 works GREAT for humidity sensing. My fan usually turns on within 3 minutes of the humidity rising over the set threshold. Tagging @TheSmartestHouse

WebCoRE is best configured in a desktop browser or larger screen. The phone works but its just easier, for me at least, to do it on a desktop. Easier to copy and paste, move sections, select devices, etc.

The logic of webCoRE follows the “If-This-Than-That” concept. Well, at least at its bare minimum. It can do alot more! Just think your automation out and use the “If” blocks for conditions and/or triggers. Use the “Action” block for what you want to happen. One HUGE rule of thumb is to only have 1 “Trigger” per block. If you add a trigger to any blocks, then you will need at least 1 trigger in all blocks. If you don’t use any triggers at all then the conditions will act as triggers once all conditions are met.

Think with Triggers, something has to happen. Think with conditions, the Piston is monitoring each condition so when they all become true then it executes the Action…

Light “Changes” to on is a Trigger. Light “Is” on is a condition. Remember, only 1 trigger per block unless separated by “Or”.

The below Piston can be imported using the import code. I built the Piston in less than 2 minutes. It will turn on the fan if humidity rises above a set value. It will turn off the fan after 10 minutes if it was turned on manually but only if the humidity is below a set value. Finally, it will turn off the fan no matter what after 20 minutes. Each section runs on its on because I chose “asynchonous” by clicking the “With” and then the gear to configure how the Action sections executes. Once you get a handle on it, you will see how simple webCoRE is.

1 Like