hagak Posted August 5, 2012 Posted August 5, 2012 If Elk Zone 'Kitchen Motion' is Violated And From Sunset - 30 minutes To Sunrise + 1 hour (next day) Then Set Scene 'FrontDoor / Foyer' On Wait 2 minutes Set Scene 'FrontDoor / Foyer' Off Else - No Actions - (To add one, press 'Action') So the above rule turns the light on just fine as expected, however it never turns the light off even after more than 2 minutes of no motion.
oberkc Posted August 5, 2012 Posted August 5, 2012 Typically, this is caused by a a program action that would force a re-evaluation prior to the end of the wait. Does changing the scene "front door / foyer" cause some change or violation in the elk zone "kitchen motion"?
oberkc Posted August 5, 2012 Posted August 5, 2012 Well, I can only speculate, given that I know nothing of what is in the scene or the elk condition. How long does the kitchen motion violation stay on? Is this a momentary condition? Can you observe the status of the zone from the ISY-99 admin panel? Is it possible that the violation comes on for a short (less than two minutes) period, turns off (unviolated?) by itelf (or based upon motion sensor input), forcing a re-evaluation of the condition before the end or the two-minute wait period?
hagak Posted August 5, 2012 Author Posted August 5, 2012 Ah so that is it probably. Yes the motion goes out of being violated before the 2 min. So I guess I need to trigger the off event in a different manner.
LeeG Posted August 5, 2012 Posted August 5, 2012 One solution is to split the Program into two Programs. The first Program has the current If statements with the Then clause invoking the second Program. The second Program has nothing in the If section and the Then clause contains the logic from the existing Program. That way when the If conditions change before the 2 minute mark, the second Program is not affected. That also solves the problem of a motion violation within 2 minutes of the To time. When the To time occurs the If is reevaluated to False which can also prevent the statement after the Wait from executing. Splitting into two Programs prevents this from happening.
Recommended Posts