mountainman3520 Posted July 29, 2013 Posted July 29, 2013 Hello, I think I understand the function of the "Status" field and the content makes sense for most of my programs. By sometimes the status shows something that isn't what I expected and I'd like to understand, since it probably means I don't fully understand how/when programs start and stop execution. I believe the status field shows the current boolean (true/false) result of the IF condition in the program. But here is an example of a program that is showing a "true" status even though it seems like this program's IF condition should be false: If Time is 3:00:00AM Then Set 'Therm Up - Main' Synchronize Clock Set 'Therm Down - Main' Synchronize Clock Else - No Actions - (To add one, press 'Action') I would have thought this program's status would flicker briefly to true at 3am, maybe only for 1 second because once it reached 3:00:01AM the condition would become false. The brief time in the true state would trigger execution of the then actions, which might continue after the IF was no longer true if they took longer than 1 second. Am I correctly understanding the operation or am I missing something? If this is right, why does the state continue to show as true all day? Thanks.
LeeG Posted July 29, 2013 Posted July 29, 2013 The If section is evaluated only when the Program has been triggered. The Program will trigger once only at 3 AM (perhaps not a good time since the ISY QueryAll Program also runs at 3 AM). The If will be True as it is 3AM and the Then clause will run. Because the Program is not triggered again until the next 3AM there is no evaluation of the If section to False. Again, the If section is evaluated only when the Program is triggered. A specific time triggers the Program only once at the specified time and the If will be True. A From/To Time in the If section triggers the Program twice. Once at the From time when the If is True (assuming no other conditions in the If) and once at the To time when the If is False as the time is no longer within the From/To time range.
oberkc Posted July 29, 2013 Posted July 29, 2013 To LeeG's response, I wish to specifically state that status field represents results when the program was last triggered. This can also include being triggered by other programs, and can be affected when a program is disabled.
Recommended Posts