got headache reading all the threads on this sort of thing so in the end ill ask the question
Firstly please dont tell me how to do this in detail, if you could give me general pointers in how the concept works, id like to go play and come back with questions in the areas i dont understand.
I have a shower room, because it has no other light source the light is always on when in use. I want to accurately control the fan use under varying circumstances.
if someone uses the room for hand washing or going for a Pee its fine just for the fan to come on and off with the light.
if your making a deposit the the fan needs to over run for a set period.
if your taking a shower then the fan needs to come on and go off according to comparative humidity readings.
obviously getting the fan to come on/off in sync with the lights is not a problem neither is the humidity issue (already have a simple rule for that.
Im not certain how to get a rule that times how long the light is on for to set a conditional over run of the fan (if lights are on for >=3 mins set overrun of 5 mins after lights go off)
Im even less certain how to combine all 3 into a single rule.
Ive set a couple of triggers which i think will start it all off but im not certain how to proceed with developing the rule.
This is what ive got so far, 2 triggers one lights on one humidity, then ive got a rule that will turn off the fan on a humidity event but im not sure how to add in the off for lights off event, or how to add the overrun on a timed event.
If you could just point me in the direction of what order to set the ruel out first ill go away and play with it. Thanks
Nyce ceiling mounted sensor provides motion, temperature, and humidity. In the hall outside the master bedroom I have a temperature and humidity sensor that I use as a comparison source. Switches and dimmers are Lutron on a Caseta bridge that is on the Hub called C41 (a C-4 hub). One kind of unique thing with the lighting - there are three separate lights - the wall mounted lights over the mirror at the vanity and two lights built into the ceiling fan - a general light and a night light (5 watts or so). I use all three lights in a mode scenario with different lights and different time-out values by mode.
My Rule is "sort of" working but not doing what i want it to accurately, one of the main issues is i dont understand how/in what order actions are run or conditions read, basically im confused by the If-Then, Else-if and Else statements and how they work together.
Thanks ill give it a look, didnt know if they behaved differently depending on the language.
In rule machine, is it possible to start a timer when a condition is met, which can then trigger different actions depending on when a new condition is met?
IE:
lights come on.
start fan
start timer
wait for event, Lights off.
If lights off > 120seconds after lights on Then
delay 5 mins
Else If < = 120 seconds after lights on Then
Fan off.
You might be able to store a value in a global variable and check it on a subsequent rule that fires on the other condition if that makes any sense. Also you could create virtual device(s) that hold the "states" of your conditions as needed. The only tricky part is making sure everything is cleared properly.
Thats brilliant thanks, im going to start googling to see what this rule is actually doing so i understand how its working before i do it.
Just one thing to note. a very odd behaviour in my rule and i cant see why its doing it, (i mean my version, not the one you have written) if i put end-if at the end then after a while the fan wont come on with the light, if i delete it, it starts working again.
Just to put another spin on this.
I have separated my Bathroom Lights and Bathroom Fan into 2 rules.
Rule #1 just controls the lights and ignores the fan.
Rule #2 controls the fan.
When the fan comes on, it pauses the light rule.
When the fan turns off it resumes the light rule, waits 5 seconds and then runs the actions in the light rule, which in turn will turn it off IF there is no motion. (Not the sitting down type motion. ).
I have a separate rule which evaluates the humidity level and either turns a global boolean variable true or false.
This stops the light/fan rule from continually triggering when humidity level changes. Only the variable rule will trigger on humidity changes.
Just another option for you to consider.
Lots of ways to skin that cat.
EDIT: My shower motor is plugged into a power monitoring outlet in the attic. This way the fan will turn on as soon as the power of the outlet goes above 50 which means the shower motor is running.
So the rule will trigger on motor running but will only turn false if the motor is not running AND humidity variable is false.
In your ELSE-IF expression, you can remove the first term
“Variable bathsalusbelow50 = true” (and the following AND) because, if the ELSE-IF is executed, that term is necessarily True because it couldn’t be False if the IF was not executed.
I have 2 ruels, one controls lights this one is for the fan only.
If i did that then if the fan was on due to high humidity, the lights wouldnt work!
not sure how this is better than the way that ive done it, in fact it sounds far more complicated.
min only triggers if the humidity rises.
very true.
my shower is mains water pressure fed not electric.
still think my way is simpler sill not sure why it stops running with the end-if statement at the bottom, trying it without for now to see if it sops running without the end-if
My fan rule turns the light on, hence pausing the light rule and the light turning off mid-shower because motion may not be detected and the lights may turn off.
I wasn't trying to imply that my way was better. It just stops the rule being continually evaluated as the humidity goes up and down.
I only posted my rule to give you ideas of alternative ways of doing things. Oh well...........