db2ace2 Posted July 31, 2015 Posted July 31, 2015 Hello Team, I am still having trouble determining how to programatically detect a Program who's IF logic is TRUE but is not actively Running when it should be. In the attached file screenshot you will see Program "Hall HAL Monitor 1CON" the program is true as indicated by its Color Status, however its WAIT condition is not active therefore the program will never perform the actions after the WAIT should have expired. In other words it is IDLE but TRUE if you look at it in Summary. I need a way to programmatically detect that condition. When that occurs I want to run IF logic so that it becomes ACTIVE and TRUE. This situation happens when a Folder is set FALSE and then TRUE. It detects that the logic is TRUE but there is nothing to trigger it to run. I do not want all of the programs in the folder to run if they TRUE because if they are really ACTIVE and TRUE and I run IF it will restart their WAIT timers, but if they are in IDLE but TRUE status I do want them to run and honor the (In this example 45 second Wait) before setting the Variables to 0. I can check if the Program is TRUE but that alone does not help me since other programs ,may also be TRUE but ACTIVE and I do not want to run IF again for those since it would restart their WAIT timers. TRUE but IDLE is the condition I really need to check for. Can this be done???? Also as a second question if I upgrade to V5.0 can I still fall back to V4.3.10 by restoring back or is that a go forward only release? Thanks Charles Seiler
larryllix Posted July 31, 2015 Posted July 31, 2015 (edited) This seems rather odd that want to disable a folder containing a program and yet have the program continue to run. You program snapshot is rather small text and low res, to be readable, for me so I don't understand why you are trying to do this. Maybe a clearer explanation of what you are trying to do. We got some sharp ones here. On the surface it would seem if you want the timer to finish you must not disable it's folder, or take the program out of the folder., or create another program, out of the folder, to do the job. When you re-enable the folder the timers inside the programs are not relevant anyway. You probably need to rethink your logic somewhat and find another way to accomplish your mission (should you choose it.) If what I think you want to accomplish is have any timers in the folder complete before disabling further triggers in the programs. This could be done with folder logic looking at all the programs statuses inside. So that my program statuses look nice for Mobilinc and Admin Console I often use an Else call at the end of each Then section. If whatever Then do something Wait 1 second Run 'This program' (else) Else ----- You could also have each program disable itself as a last line in each. You can detect a program is true and also detect how long since the program was last run but IIRC not if it is running currently. Edited July 31, 2015 by larryllix
stusviews Posted July 31, 2015 Posted July 31, 2015 I am still having trouble determining how to programatically detect a Program who's IF logic is TRUE but is not actively Running when it should be. In the attached file screenshot you will see Program "Hall HAL Monitor 1CON" the program is true as indicated by its Color Status, A program is true if any one of its OR conditions are true (or all of its AND conditions are true). A program runs only if its triggered. Your program has several OR conditions. Each Control is a trigger. Are the variables integer or state variables?
db2ace2 Posted August 1, 2015 Author Posted August 1, 2015 A program is true if any one of its OR conditions are true (or all of its AND conditions are true). A program runs only if its triggered. Your program has several OR conditions. Each Control is a trigger. Are the variables integer or state variables? They are all State Variables. I used the example of being able to create this condition by setting a false Folder Condition and then making the folder true again, but in fact this happens at times when I don't do anything at the folder level. I generally do not use folder conditions, so I may have confused you by mentioning folders. I only did so because I know setting a folder false and then making it true can put a program in this state. On all of my devices I set a Wait Timer to only allow the light to be on for a specific wait time before I set it off again. If motion is detected I re trigger the program which restarts the If and thus the wait and so the program continues to leave the light on for as long as the program wait is running. Once the wait expires it sets state variables to make another program turn the light off. Occasionally I find a light that stays on even though it should have gone off, and the program is usually in this status. It is True but Idle. Because this is the only program that turns the light on the program had to have run and I have verified that its last run time did in fact make it run, but somehow it quit running its wait even though it is in a true status. I cannot just check to see if the program is TRUE and then run its IF logic because other programs run and wait (SOLID GREEN) and would also report as TRUE. If I ran the IF on those they would never get to the end of their WAIT. The only programs I need to run IF on are those that are TRUE but IDLE. Yes these are triggered by STATE Variables or by Control from a SWITCH, and YES the program was running its WAIT at one time but just stopped which put it in this state of IDLE and TRUE instead of ACTIVE and TRUE. I need a way to detect the difference between those two states so that I can only restart the ones that go IDLE and TRUE. .
db2ace2 Posted August 1, 2015 Author Posted August 1, 2015 They are all State Variables. I used the example of being able to create this condition by setting a false Folder Condition and then making the folder true again, but in fact this happens at times when I don't do anything at the folder level. I generally do not use folder conditions, so I may have confused you by mentioning folders. I only did so because I know setting a folder false and then making it true can put a program in this state. On all of my devices I set a Wait Timer to only allow the light to be on for a specific wait time before I set it off again. If motion is detected I re trigger the program which restarts the If and thus the wait and so the program continues to leave the light on for as long as the program wait is running. Once the wait expires it sets state variables to make another program turn the light off. Occasionally I find a light that stays on even though it should have gone off, and the program is usually in this status. It is True but Idle. Because this is the only program that turns the light on the program had to have run and I have verified that its last run time did in fact make it run, but somehow it quit running its wait even though it is in a true status. I cannot just check to see if the program is TRUE and then run its IF logic because other programs run and wait (SOLID GREEN) and would also report as TRUE. If I ran the IF on those they would never get to the end of their WAIT. The only programs I need to run IF on are those that are TRUE but IDLE. Yes these are triggered by STATE Variables or by Control from a SWITCH, and YES the program was running its WAIT at one time but just stopped which put it in this state of IDLE and TRUE instead of ACTIVE and TRUE. I need a way to detect the difference between those two states so that I can only restart the ones that go IDLE and TRUE. . Just to clarify, if the Program is TRUE and ACTIVE I do not want to do anything because its Then Logic including the WAIT is still active, but if it is TRUE and INACTIVE I want to be able to restart the program by running its IF or THEN logic.
LeeG Posted August 1, 2015 Posted August 1, 2015 (edited) That can only be done by another Program. If the posted Program is allowed to trigger the Wait (if active) is always terminated. There are no ISY Program functions available. Would need a variable set by the posted Program that indicates the Program is running. Normally a Program is allowed to trigger and issue a fresh Wait with another motion indication. Edited August 1, 2015 by LeeG
oberkc Posted August 1, 2015 Posted August 1, 2015 "I am still having trouble determining how to programatically detect a Program who's IF logic is TRUE but is not actively Running when it should be. In the attached file screenshot you will see Program "Hall HAL Monitor 1CON" the program is true as indicated by its Color Status, however its WAIT condition is not active therefore the program will never perform the actions after the WAIT should have expired. In other words it is IDLE but TRUE if you look at it in Summary." Perhaps others have already explained this (but I missed it). A program will show status of TRUE if it ran THEN path last. That status will remain TRUE indefinitely, or until it runs again and runs the ELSE path, at which point it will show FALSE and will remain FALSE until it runs again...etc.., Unless interrupted, the wait statement likely ran, followed by the subsequent commands. The fact that it is TRUE but IDLE is not an indication that the program will "never perform the actions after the WAIT". In other words, a program does not have to be "active" to be true. The status is simply an indication of which path it last ran.
db2ace2 Posted August 1, 2015 Author Posted August 1, 2015 I guess what I am asking for is really an enhancement. There is a lot of difference between a Program that is TRUE but ACTIVE and one that is TRUE and IDLE. The TRUE and ACTIVE program still has THEN Logic that is still pending execution (Possible after a WAIT timeout) thus even if it is not triggered again things can still change during the completion of its THEN logic that could change things. The TRUE and IDLE program has completed its then logic, so nothing more will happen unless it is triggered again. To me it is extremely important to be able to tell the difference between the two, This has been the cause of a lot of the frustrations with ISY programming that could be eliminated by simply being able to detect that difference in the STATUS of a program. TRUE and FALSE is insufficient and misleading. ACTIVE and IDLE is a much better indication of what is happening with the Program's STATUS. Being able to say "If PROGRAM XYZ IS ACTIVE" or IF PROGRAM XYZ is IDLE is a much more informational, meaningful and logical thing to know than is knowing if it is TRUE or FALSE. They really have two distinct meanings. Also I know you can detect the difference between the two states because the Program is half green when TRUE but IDLE and it is FULL GREEN when TRUE but ACTIVE. All I am asking for as an enhancement to the programming interface to have a programattic method of being able to determine that difference in the programs state.
larryllix Posted August 2, 2015 Posted August 2, 2015 (edited) Just to clarify, if the Program is TRUE and ACTIVE I do not want to do anything because its Then Logic including the WAIT is still active, but if it is TRUE and INACTIVE I want to be able to restart the program by running its IF or THEN logic. The only way I can see this happening is if you stop the program from running. Then you already know it is NOT active. Perhaps you are trying to establish intent of the program before disabling it and halting it. Then you can resume the same process. . Is this correct? As Lee suggested this would require a variable flag... an "I was going to" flag. You had stated you set a variable upon completion of a possibly halted program. Can you not just use that variable to see if the program finished before rendering it inactive? Edited August 2, 2015 by larryllix
db2ace2 Posted August 2, 2015 Author Posted August 2, 2015 Using a Variable will not work. The Program is in the middle if a WAIT, and I want it to finish its WAIT(ACTIVE) and do the things that come after the wait. If it were TRUE and not in a WAIT (IDLE) then I would want to possible retrigger the program. If it is TRUE and in a WAIT I would not want to because I would only retrigger the wait effectively putting things in a loop which obviously happens often with ISY. I could program around it by having two programs, one to do the Wait and subsequent processes and one to be TRUE, but that is just another issue with ISY for people like be that have hundreds of devices. You run out of programs if you create too many. The problem is programs often end up in this status of TRUE but IDLE and for various reasons. Others are TRUE but ACTIVE. If it is TRUE but IDLE it will never do anything more unless it gets triggered again so Logic dictates that I would need to have a program check it for being TRUE and trigger it again. Unfortunately there are also programs that are TRUE and ACTIVE. In this case the program is still running (Active) so I do not want to check it for TRUE and retrigger because it would never end. Its wait would always get retriggered. The problem is there is no way currently to tell the difference. The only way we have now is to check for it being TRUE so both types of situations would get retriggered causing the endless WAIT loop. If we could tell the difference between the two We could Retrigger when it is IDLE and TRUE and not retrigger when it is ACTIVE and TRUE. Basically TRUE and FALSE is totally inadequate and does not represent the accurate status of the program. ACTIVE and IDLE along with TRUE and FALSE does.
oberkc Posted August 2, 2015 Posted August 2, 2015 I must admit that I have not run into any programming limitations because of this, but (yes) it could drive separate programs or variables or some combination of the two. I have never "run out of programs" by creating too many, but have sometimes chosen to put related programs in folders for organizational purposes. I have, personally, found TRUE and FALSE to be sufficient as is and have never wanted for the ability to know when a program is in a wait state, but I may not be trying overly-complicated programs as you may be. There are some pretty creative folks around here. Perhaps you could post an example of what you are trying to accomplish and someone may think of an approach that you like better than the one you currently use. To answer your original question as to how to detect if a program is active, I would probably use something as simple as: if whatever condition you want then set active variable to x do something wait a bit do something else repeat, shake and stir set active variable to y else set active variable to y it seems to me that when active variable is x, the program is active. When it is y, then not.
db2ace2 Posted December 18, 2015 Author Posted December 18, 2015 Yes you would think that if the active variable is x in the above example that the program is active, but that is just not true. As an example place the program in a FOLDER and Run it so that its WAIT is actively waiting and the Active Variable is set to show it is active. Then place a condition on the FOLDER that is not TRUE. Then remove the FOLDER condition. This is just one way to make this happen but what you now have is a program that is TRUE and the active variable says it is ACTIVE but in fact the WAIT condition is no longer active, so the Program is TRUE but is not active. We need to be able to detect this condition so that we can programatically detect it and rerun the program in order to reactivate it's WAIT condition. In other words this program is Active vs IDLE instead of TRUE vs FALSE. Big Difference!
db2ace2 Posted December 18, 2015 Author Posted December 18, 2015 One more thing In the example from my last post once you re allow programs to run in the FOLDER the program variable would show as ACTIVE and the Program would show as TRUE however the program is IDLE not ACTIVE even though it is TRUE. Because I can only detect TRUE or FALSE I now have a dilemma. If I do nothing the WAIT condition for the program will never get reached since the program is IDLE, however if I rerun the program based on only knowing it is TRUE then I would never hit the end of the wait since it would remain TRUE and the WAIT would be restarted each time I rerun it, so knowing it is TRUE or FALSE does not help me at all in this situation. Only knowing if it is ACTIVE or IDLE helps me to react properly to this condition. Also there are other times when a program can be in a TRUE but IDLE condition other than making it happen with FOLDER logic but this is just one example and we do need a way to detect this condition and program around it. Active vs IDLE in addittion to TRUE vs FALSE. Thanks for listening! Charles Seiler
db2ace2 Posted December 18, 2015 Author Posted December 18, 2015 Consider a second program that checks the first program to see if it is TRUE. In the example above the program 1 would report as TRUE but in fact the second program would never know that the first program will never complete its task because it is idle. All it can do is wait on the first program because it thinks it is true. If it knew it were idle even though it was true it could take actions to restart the first program so that it will eventually complete. just knowing it is TRUE would not alloow it to restart the first since that would restart the wait in the first program repeatedly. Only knowing if it is Active or IDLE in addittion to TRUE vs false allows this to be managed and variables will not work since Folders as I showed in my example or a PROGEAM STOP could place the program in a TRUE but IDLE condition. Also NOt running at startup even though it is TRUE. Several ways to make a program be in that state just no way to detect that state. Thanks Charles
jerlands Posted December 18, 2015 Posted December 18, 2015 The status is simply an indication of which path it last ran. Thank you for clarifying that for me Jon...
db2ace2 Posted December 18, 2015 Author Posted December 18, 2015 I know I am beating this horse to death but I want to try and explain my request one more time. The point is not so much in how a program gets to be in an ACTIVE or IDLE state but rather in the inability of an ISY Program to be able to detect that state. A Program can be TRUE and ACTIVE or TRUE and IDLE but all we can currently detect in an ISY program is if it is TRUE. It Could be TRUE and ACTIVE or it could be TRUE and IDLE we cannot tell (Even though you see this in the Summary and in the Coloring of the ADMIN CONSOLE Icons).. If it is TRUE and ACTIVE there is some expectation that the program can change its state after its WAIT or sometime during its execution Can make a change that will make something else happen (i.e. making itself False or turning a Device or Variable on or off, etc). A Program can also be FALSE and ACTIVE and FALSE and IDLE but all we can currently only detect in an ISY program is if it is FALSE. It could be FALSE and ACTIVE meaning that it is still changing variables, and device states or it could be FALSE and IDLE meaning it is doing nothing. All we can tell with an ISY program is that it is FALSE. There are several ways I know of that can put a program in a ACTIVE or IDLE state weather or not it is TRUE or FALSE which is why we need a way to programattically detect if it is ACTIVE or IDLE in addition to detecting if it is TRUE or FALSE. #1 You can STOP the program either from within the ISY Console or Programatically or from Outside of ISY using MOBILINC or other similar products. (We do not just live in an ISY world any longer), This could be done with REST commands from NETWORK or MOBILINC or many other means other than an ISY program. #2 You could have the program set to DISABLE RUN AT STARTUP at which point the program could be TRUE and IDLE or FALSE and IDLE but it could also be TRUE AND ACTIVE. #3 you could RUN THEN even if a program is FALSE so it would still report FALSE even though it is ACTIVE, This can also be done from MOBILINC or other external to the ISY sources. #4 as in my earlier examples you could set FOLDER logic to not run in a certain circumstance and then to allow RUN again leaving the PROGRAMS in it TRUE but IDLE instead of TRUE and ACTIVE. #5 a Change to an INTEGER Host Variable may allow the Program Logic to be TRUE or FALSE but not trigger the program to RUN or STOP and thus the program could be ACTIVE or IDLE and TRUE or FALSE. Checking TRUE or FALSE does not even begin to support even the things the ISY allows you to do. Just because a PROGRAM is TRUE does not mean it is ACTIVE and because it is TRUE also means it could be IDLE and it could be FALSE and ACTIVE or FALSE and IDLE. Again there are many ways to get programs into the ACTIVE and IDLE states I am discussing and to me those ways are not that important. The important thing is that they CAN and DO get into those states. My Concern is that the ISY Programs do not allow me to detect those states and yet those states make a tremendous amount of difference when trying to control things with Automation via an ISY Program. After all Home AUTOMATION is the key word here. If I use ISY to see if a PROGRAM is TRUE I cannot tell if it is ACTIVE or IDLE. If I RUN IF or RUN THEN and the program is TRUE and IDLE then no problem the Program runs and becomes ACTIVE but it I RUN IF or RUN THEN and the PROGRAM is already ACTIVE then I restart its logic and WAIT conditions. IF it is TRUE and ACTIVE I have some expectation that it will have further State Changes but if it is TRUE and IDLE then I could waut forever and it may never change its state, I cannot tell which means there is NO AUTOMATION! Same is TRUE if a PROGRAMS IF logic is FALSE and someone using MOBILINC or other methods runs THEN. All I can tell is that the PROGRAM is FALSE even though it is ACTIVE and making potential STATE changes. If I run another Program that would conflict with it if it were active based on it being FALSE who knows what logic conflicts could and DO occur. This is why TRUE and FALSE only tell a small part of the STORY. ACTIVE and IDLE is the other more important part of the LOGIC, and is definately something we need to be able to detect from ISY PROGRAM logic. I could send program examples but my programs are not really all that complex. It has been mentioned that you can determine ACTIVE or IDLE state with a Variable but the answer is NO YOU CANNOT. If my simple program sets a Variable to say it is ACTIVE and then WAITS for five minutes and someone STOPS the PROGRAM using MOBILINC then the VARIABLE would say it is ACTIVE when in fact it is NOT. Also if the Variable never gets set and IF LOGIC is FALSE yet someone RUNS THEN then the VARIABLE is active but the PROGRAM is FALSE. If the program is set to Not run at Startup even though its IF is TRUE You can SEE these ACTIVE and IDLE states from the ADMIN CONSOLE SUMMARY however you CANNOT detect them programatically and we need to be able to do that. I am tired of having LIGHTS stay on because I had them turn on and WAIT for five minutes before turning them off only to have the PROGRAM STOP for variious reasons. If I programatically (TRY TO AUTOMATE) and check the program to see if it is TRUE then the answer is YES IT IS TRUE but IDLE which I cannot tell. If I do nothing the Light will stay on forever. If I run it again based on it being TRUE then the its wait will never be reached since it will still be TRUE and the program checking TRUE would put it in loop running over and over again only being able to tell that it is TRUE. Again TRUE and IDLE is very different state than TRUE and ACTIVE. Also if I check in a program that sets lights on to check state of a program that turns lights off and the Program Check that the program is FALSE but someone has RUN THEN then the program could be reporting FALSE even though it is ACTIVE which can cause all sorts of issues. This may not be a problem for a customer that only has a few devices and Programs but when you have 800-900 programs and 300 Devices you need the ability to AUTOMATE things programatically. This is why they call it HOME AUTOMATION. When you cannot use that AUTOMATION program to tell you if the proram is ACTIVE or IDLE and only report TRUE or FALSE of its IF logic then you have a real problem trying to AUTOMATE anything at all. This may not be a problem for some low end users of INSTEON and ISY but to me this is a Major FLAW in Program Automation that desperately needs to be corrected.
rleidy Posted December 18, 2015 Posted December 18, 2015 If the main issue is that lights are not turning off due to the program being interrupted during a WAIT, can you not simply move the guts of the Then clause into a separate program that's disabled, and then call that program's Then path from the triggered program? This will provide the timer reset functionality and since the sub-program has no trigger, it will always run to completion.
apostolakisl Posted December 18, 2015 Posted December 18, 2015 (edited) I think you are barking up the wrong tree here. Situation. Program last ran true, but it would appear that the then clause didn't finish. Causes 1) The program was "stopped" during the wait 2) The folder it is in was disabled during the wait There are no other ways I know of for a program to abort a running then and not be "false" Those 2 are easy to rule out. That leaves with the possibility that your items after the wait did execute, but some other program or action undid those changes. Check your program summary page and you can see last time program was triggered, whether it was true or false, and what time it finished. If the finish time is the correct amount of seconds after the trigger time, then it did work. Something else prevented the changes after the wait from happening or the did happen and got undone before you checked. Edited December 18, 2015 by apostolakisl
db2ace2 Posted December 18, 2015 Author Posted December 18, 2015 I think you are barking up the wrong tree here. Situation. Program last ran true, but it would appear that the then clause didn't finish. Causes 1) The program was "stopped" during the wait 2) The folder it is in was disabled during the wait There are no other ways I know of for a program to abort a running then and not be "false" Those 2 are easy to rule out. That leaves with the possibility that your items after the wait did execute, but some other program or action undid those changes. Check your program summary page and you can see last time program was triggered, whether it was true or false, and what time it finished. If the finish time is the correct amount of seconds after the trigger time, then it did work. Something else prevented the changes after the wait from happening or the did happen and got undone before you checked. Saving the Program from ADMIN will also make the PROGRAM TRUE and IDLE even if the IF logic contains all STATE VARIABLES that are true and yet you cannot tell the difference programatically from a program in that TRUE and IDLE condition from one that is TRUE and ACTIVE. The TRUE and ACTIVE will eventually complete its WAIT and execute its logic that comes after the WAIT. The TRUE and IDLE program will never do anything. From The Program logic checking TRUE you cannot distinguish between the two! If you restart the program because it is TRUE it will always be TRUE so you will constantly restart it because both situations are always TRUE. If you don't restart the TRUE and IDLE program it will never do anything more even though it should! I cannot believe you do not see through this simple logic?
oberkc Posted December 18, 2015 Posted December 18, 2015 While I agree that there is no direct method for measuring active or otherwise, I must admit to having trouble appreciating the problems you are having with the variable method. While I trust the examples you gave will result in a state where the variables cannot be trusted, nearly all those examples took a manual intervention through the admin panel to achieve. Are you concerned that somebody might open the admin panel and mess things up without your knowledge?
jerlands Posted December 18, 2015 Posted December 18, 2015 (edited) Since this discussion is active. A concept that I'm unclear on is re-evaluation. I now see Wait and Repeat as being dependent up the program 'status' to continue and as such there is no re-evaluation of the conditions. However, If a triggering condition changes then there is a re-evaluation. That seems to me to be the only time a program's conditions are re-evaluated? Edit: = underlined. Jon... Edited December 18, 2015 by jerlands
LeeG Posted December 19, 2015 Posted December 19, 2015 jerlands Examples that terminate a Wait or Repeat If Control 'kplbuttonx' is switched On Or Control 'switchlinca' is switched On Or Status 'kplbuttony' is On Or $Svar1 is 2 Then ....... Wait 5 minutes ....... Else Any of these conditions occur terminate the Wait 5 minutes kplbuttonx is turned On switchlinca is turned On kplbuttony state is changed State variable SVar1 value is changed
jerlands Posted December 19, 2015 Posted December 19, 2015 jerlands Examples that terminate a Wait or Repeat If Control 'kplbuttonx' is switched On Or Control 'switchlinca' is switched On Or Status 'kplbuttony' is On Or $Svar1 is 2 Then ....... Wait 5 minutes ....... Else Any of these conditions occur terminate the Wait 5 minutes kplbuttonx is turned On switchlinca is turned On kplbuttony state is changed State variable SVar1 value is changed I think I see.. The status doesn't necessarily need to change. It's the re-evaluation of the condition that halts wait or repeat? Jon...
db2ace2 Posted December 19, 2015 Author Posted December 19, 2015 While I agree that there is no direct method for measuring active or otherwise, I must admit to having trouble appreciating the problems you are having with the variable method. While I trust the examples you gave will result in a state where the variables cannot be trusted, nearly all those examples took a manual intervention through the admin panel to achieve. Are you concerned that somebody might open the admin panel and mess things up without your knowledge? No I think that requiring the ADMIN Panel to mess things up is short sighted. MOBILINC can do it or having a Program not run at startup or a change in an Integer variable that makes the logic true but does not trigger execution or any number of other ways it can happen. The point is when it happens (And you have allowed ways to make it happen) you do not provide a way to detect that the program is in that state Just because the Programs logic is TRUE does not mean it is ACTIVE and if it is TRUE and IDLE nothing will ever happen with the program so stack it up to just another one of the reasons why ISY is not usable by the common man! Cannot and will not recommend it to customers with this kind of illogical thinking!
jerlands Posted December 19, 2015 Posted December 19, 2015 No I think that requiring the ADMIN Panel to mess things up is short sighted. MOBILINC can do it or having a Program not run at startup or a change in an Integer variable that makes the logic true but does not trigger execution or any number of other ways it can happen. The point is when it happens (And you have allowed ways to make it happen) you do not provide a way to detect that the program is in that state Just because the Programs logic is TRUE does not mean it is ACTIVE and if it is TRUE and IDLE nothing will ever happen with the program so stack it up to just another one of the reasons why ISY is not usable by the common man! Cannot and will not recommend it to customers with this kind of illogical thinking! I imagine the program could be disable by ISY anytime an editing action is initiated and then enabled or returned to original state upon save? That may be a good future enhancement to make. Jon...
Recommended Posts