Help! My thread has been hijacked! Just kidding of course. I completely understand where kingwr is coming from but now that I understand how it works... I just work around it (ie. 3 programs)
It is nice that my motion detector status changing to ON will immediately halt an "OFF" program I've created. This is not the case with traditional programming unless you are actively looping to look for a variable/status change. It keeps me from having to write loop code to check for status while the 4min wait is happening.
Back to my original topic....
Everything appears to be working and I must admit... I didn't understand how the 3rd program would be effective until you wrote it out. Makes sense that if I want to start turning a light off, I should exit the time restricted folder to wait... so if the time restriction passes, the wait program will continue on.
But here is an internal programming question about the ISY...
In its current form, the WAIT is occurring in the parent program. If the motion sensor changes to ON, it exits the program, and as such, terminates the WAIT and the subsequent "Lights OFF" that would have followed.
If I move the WAIT program outside the parent program as you suggest, I'm guessing the parent program will become FALSE and exit. Does it tell the child program to stop as well? Because in your scenario the child program doesn't have an IF condition and as such, will never become false. IT appears the child program would finish its 4:30 wait and turn the lights OFF.
Obviously this isn't the case if the parent/child program are somehow connected in the ISY. (a relationship) Is this the case? Thoughts?
Brian