[RELEASE] Smarter Humidity Fan

Good point -- I will be making that change.

Thank you for the detailed response to my questions and the great app -- very much appreciated!

Marc

1 Like

This works great. Is it possible to make an on or off option for the "Disable smart mode with switch"? If not I can continue to use a virtual switch that turns off when my shower light comes on.

Joe, sorry, I’m confused. What’s the request, exactly? If you just don’t want to have a switch disable smart mode, don’t set a switch for that option.

Sorry to confuse. These pictures may explain a little better. Example of an on/off option from a different app. Right now the only option for disabling smart mode is to turn the selected switch on, I was wanting to disable by turning the selected switch off. Thanks.


Hi.
Please add button activation option. Button, not switch.

I have a dumb question, but I cannot figure it out. How do I add a second instance? I have 3 bathrooms that I want to control the fans in. Thanks!

You should just be able to add another app, same way you did the first one. I never set it up to do the parent/child thing.

Feature request -
Hi @erniemiller - Been enjoying the fruit of your work for months now - I've let a few others know about how well it solves the need. Thank you!

Recently I ran into a problem that I think is worthy of your attention. The Device Name is hard coded (AFAICT) as 'Virtual Switch'. This causes an external report to be too vague. Can you mod the application to allow user ability to change name like other devices? I'd like have the flexibility to use the Label but at this moment, I can't so need the Device Name identifiable.

Maybe it's on line 270 - and it could be changed to:
Smarter Humidity Fan Virtual Switch - or some such?

1 Like

Heya -- appreciate the feature request, but the reason it has that name on that line is that I use the built-in Hubitat "Virtual Switch" vs a custom-built one, just for simplicity's sake. I don't get to name it, but just call it by the name Hubitat gave it.

if it's an addChildDevice command maybe try something like:

addChildDevice("hubitat","Virtual Switch","vSwitchDNI001",[name:"Smarter Humidity Fan vSwitch"])
1 Like

Thanks for considering. In my version of your cool tool I changed on line 268 of the App code:
from:
[label: "${app.label} Smart Mode", isComponent: true]
to:
[label: "${app.label} Mode vSwitch", name: "${app.label} Mode vSwitch", isComponent: false]

Really that was like 2 methods to solve my problem. By changing the isComponent to false - that allows the user to override the device values... and embedding a name was what I was after anyway, so this really was 2 options in one. The change I made also seemed to handle multiple installs of the Parent better - IF I changed the parent name. I took a peek at how @bptworld handles children, and considered doing it even more robustly, but for my own needs it was more than what was necessary for me. Originally, prior to making any changes, I left the parent name the same on both iterations and only got 1 device added. After making my adjustment, I added 2 iterations with unique Parent names and got 2 distinct devices, but my tests were far from complete!
Anyways. again, thanks for considering.

1 Like

Hi @erniemiller,

I can't remember if this has been asked, but would it be possible to include an option that when the switch to disable smart mode is turned on, this will turn off the "fan" immediately? I would be happy to have this as an option that a user can toggle, displayed alongside the selection for the switch, with the current behaviour remaining as is when the new setting is left turned off.

My use case for this is that I use this app to control a dehumidifier in my garage, plugged into a Kasa smart plug. The garage has 4 different contact sensors that relate to doors and windows. Whenever any of them are open for more than 10 minutes, I turn on the switch I use to disable smart mode in your app, i.e. it's not economical to be running the dehumidifier with the doors or window open, but I want to account for arriving or departing. When I turn on this virtual switch after 10 minutes, I also want the dehumidifier to stop at that point.

I can add to my rule that controls this virtual switch to also turn off the dehumidifier, but I thought it would be a nice feature to have this option in your app.

Thanks,
Simon

Similar to the others who've mentioned really high humidity in some seasons, I just found the fan still going in the morning from last night's shower. I can, of course, increase my top-end humidity level. I was wondering about a cut-off time at which the app would simply give up. If it's been running for multiple hours, it's unlikely to reduce the humidity further.

1 Like

It does shut off after a configurable time. If the humidity continues to rise at a sufficient rate to turn it back on, though, I’m not sure what the better behavior should be.

I know it has been requested before to have comparison device to generate the minimum threshold and you said you were not interested in adding it. BUT I love the simplicity of your app over others I found, only thing missing was the comparison option, so I decided to add it in myself. I also made the child virtual switch optional because I do not use it. I would like to share it, is it something you would want to merge in? Or should I just start a new thread with my fork of your app?

If you’d like to submit a PR I’d be happy to give a look, but also feel free to release your own version with my blessing :slight_smile:

1 Like

Great thanks. I definitely don't want to blow up your work with any bad code and this is tricky to test without some long term wait and see stuff. I had one hiccup last night, found out the excessive change setting ignores the minimum, fan turned on at 5AM when the sensor suddenly decided to send in a report after taking a 4 hour nap. So I added a toggle to allow me to chose to ignore the minimum or not with the excessive change. Trying to keep all your original ideas in tact and available still, but adding a few extra things layered on top of it.

So long story short, I posted my fork separate for now, see if anyone wants to jump in and test it out. Once any issues are worked out I can put together and submit a PR and if you want to merge it in you can, or otherwise I can keep running with my version. For the record, the code is beautiful and very easy to follow, great style.

Anyone asking for the option for a comparison sensor, here is a forked version to test.
Fork Post:

1 Like

Scenario: trying to have the fan not turn on at all if there is motion in the bathroom, or vice versa - I only want the bath fan to run if humidity is too high AND nobody is in the bathroom.

Why? You might ask… well, my wife doesn’t like the sound of the fan when she’s getting ready in the morning, and just turns the fan switch off.

It’s difficult to test the behavior of the app in these settings since I’m usually long gone to work by the time all of this happens.

  1. does smart mode stay “on” even if the bath fan isn’t running? Assuming the conditions for smart mode “on” are satisfied. I’m guessing yes, but I’m not 100% certain.

  2. what is the expected behavior and use case of the disable with switch option? I tried using this with a virtual switch tied to my Zooz 4-in-1 sensor that turns on when motion is active, but I think once it’s disabled, then smart mode never re-enables when the reverse is true (no motion).

Is there a way this app can help me accomplish this seemingly strange, desired behavior?

This is great software. I've implemented it in two bathrooms and out of the box, fans trigger and knock the moisture down. Great! I did notice one thing that may be expected, but wanted to mention it. No hysteresis logic.
How hard would it be to implement?
What happens is the fan triggers and knocks the humidity to 55%. Fan turns off. Moisture is still hovering at the threshold and so the switch oscillates on and off frequently, each time running for a bit - maybe 30 seconds, then off. If a hysteresis could be implemented to drop the humidity to 55% minus another x%, then when that x% is reached, the idea is it won't creep back up to the threshold and trigger again. This is how a thermostat works, so thought it was worth asking.
Excellent app, but hoping to make it even better.
Maybe this helps describe the events

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.