tome Posted January 9, 2010 Posted January 9, 2010 Often when I am looking at program status I see that the QueryAll program is True. If I Run (If) on it it will go back to false, but I wonder why it is usually sitting there True, when it isn't 3am? Does "If Time 3:00:00AM" get put into a cron job or something, that is, is it evaluated differently than other scheduling directives? Tome Quote
intellihome Posted January 10, 2010 Posted January 10, 2010 Often when I am looking at program status I see that the QueryAll program is True. If I Run (If) on it it will go back to false, but I wonder why it is usually sitting there True, when it isn't 3am? Does "If Time 3:00:00AM" get put into a cron job or something, that is, is it evaluated differently than other scheduling directives? Tome Tome, As I understand it, being the programs are Event based, the "If" is evaluated when the "Event" (3am) occurs. So when 3am occurs the status becomes "True". Being there is no other event in the "If" statement that effects this program it will not be re-evaluated. When 3am rolls around, the program is evaluated again and the status again is "true". If there were another part of the If condition such as... If Time is 3:00:00AM And Status 'lamplinc' is On Then Set Scene 'My Lighting' Query Else - No Actions - (To add one, press 'Action') Then the program would be re-evaluated when the lamplinc is turned on and then the program would become "false" because it's not 3am. I guess it would make sense for the status of the program to go false at one second past 3am, but it doesn't work that way. It takes an event to occur to make the If statement False. This program would turn the program status False when the time was 3:21AM. Of course if the query was still running at 3:21AM the program would Stop because the If became False. If From 3:00:00AM To 3:20:00AM (same day) Then Set Scene 'My Lighting' Query Else - No Actions - (To add one, press 'Action') Quote
markens Posted January 10, 2010 Posted January 10, 2010 Often when I am looking at program status I see that the QueryAll program is True. If I Run (If) on it it will go back to false, but I wonder why it is usually sitting there True, when it isn't 3am? No mystery here: The program status simply indicates whether the THEN (True) or ELSE (False) section was used last time it ran. So, status of the Queryall program will normally always be True (assuming at least one 3am run has happened). When you run it manually, the time is not "right" and the ELSE runs, yielding FALSE status until the next 3am run. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.