tome Posted January 9, 2010 Share 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 Link to comment
intellihome Posted January 10, 2010 Share 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') Link to comment
markens Posted January 10, 2010 Share 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. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.