Smile4yourself Posted August 26, 2013 Posted August 26, 2013 I read how to control programs by putting them in a folder, and using an "if statement" on the folder, so that the programs can run only what the folder's if statement tests TRUE. This is great to set up an "AWAY" alarm, so if I leave, I can press an "AWAY" button on a remotelink and use this button to permit the programs in the folder to run. Additionally I have the button in a scene so I can control a led on a keypadlink to see visually when the "away" button has been pushed. The programs in the folder include a trigger program that checks a door switch, and if it is triggered it runs an alarm program which blinks the lights forever. So my question is what's the best way to stop a program? If a program inside a folder is already running, and the folder status becomes "FALSE" because I turned OFF the "AWAY" button on my remote, will the programs continue to work? I thought of making a "Alarm Off" program outside of the folder (so it could run at any time) and in the then path, run "alarm program (else path). Will that interrupt it and cause it to stop? thanks for your help, in advance!
oberkc Posted August 26, 2013 Posted August 26, 2013 run only what the folder's if statement tests TRUE As a point of clarification, programs can run when the folder is false. Instead, they will not trigger from the IF condition. If called externally (such as from another progam), they WILL run. If a program inside a folder is already running, and the folder status becomes "FALSE" because I turned OFF the "AWAY" button on my remote, will the programs continue to work? Yes I thought of making a "Alarm Off" program outside of the folder (so it could run at any time) and in the then path, run "alarm program (else path). Will that interrupt it and cause it to stop? I would cause a program to run whatever is in the ELSE path. If nothing, then I guess that would be the same as stopping. Also, I think it will halt/interrupt a currently-executing program only if there is a wait statement. Otherwise, I believe a program will continue to completion (which would only be a few seconds or less, anyhow). I have not double checked, but is there not a HALT program option to add to a program? (Memory is vague.)
Xathros Posted August 26, 2013 Posted August 26, 2013 Also, I think it will halt/interrupt a currently-executing program only if there is a wait statement. Otherwise, I believe a program will continue to completion (which would only be a few seconds or less, anyhow). Additionally, a repeat statement is also a point where a program can re-evaluate is conditions have changed. -Xathros
Smile4yourself Posted August 27, 2013 Author Posted August 27, 2013 run only what the folder's if statement tests TRUE As a point of clarification, programs can run when the folder is false. Instead, they will not trigger from the IF condition. If called externally (such as from another progam), they WILL run. If a program inside a folder is already running, and the folder status becomes "FALSE" because I turned OFF the "AWAY" button on my remote, will the programs continue to work? Yes I thought of making a "Alarm Off" program outside of the folder (so it could run at any time) and in the then path, run "alarm program (else path). Will that interrupt it and cause it to stop? I would cause a program to run whatever is in the ELSE path. If nothing, then I guess that would be the same as stopping. Also, I think it will halt/interrupt a currently-executing program only if there is a wait statement. Otherwise, I believe a program will continue to completion (which would only be a few seconds or less, anyhow). I have not double checked, but is there not a HALT program option to add to a program? (Memory is vague.) Thanks. You were right. I found "Program; Stop" under the actions. (HALT) Unfortunately, the idea of blinking lights ON and OFF by program control does not work very well, as it seems to take so much power from the ISY to do it. I had created a loop of blinking lights with a REPEAT 50 and one device I was controlling decided to have communication problems. The lights blinked, but rather than at a rate or every second, it took over 20 seconds... it seems that the ISY waits for an acknowledgement before sending out the next command. Once I moved the problem appliancelinc, the lights began to blink every few seconds, but the more lights in the program loop, the blinking rate gets slower. I also set up a button to turn OFF the blinking, but found I had to push it multiple times before the ISY would catch it while it was busy turning lights ON and OFF. It looks to me that we can't program the ISY to send commands every second as it easily gets too busy to do much else. Have you found the same to be true?
oberkc Posted August 27, 2013 Posted August 27, 2013 Have you found the same to be true? I don't try to send rapid-fire commands. Yes, when there is less-than-ideal communication, things CAN slow down, waiting for acknowledgement, though 20 seconds is certainly longer than I have experienced (suggesting, perhaps, that you still have something that is causing some complications). Based on responses around here, I think folks have had mixed luck with trying to send out on-off-on-off commands in quick order. I don't know if you are sending commands to individual devices, or to scenes, but you might try the other way around. I can never remember which is which, but one does not wait for acknowledgement, and the other does. Perhaps that would help speed things up a bit.
LeeG Posted August 27, 2013 Posted August 27, 2013 Smile4yourself Insteon does not handle commands at that speed. Remember the primary function of the powerline is to provide 120/240 volts to appliances. Insteon traffic has to share the powerline. It is not meant to handle traffic at that rate for any amount of time. oberkc is right on when suggesting using Scenes rather the sending individual commands particularly to a series of devices. A Scene command consists of a single Insteon command that is not ACKed. It means the Insteon mesh network has to be reliable since there can be no retry when no ACKs. However, the Insteon mesh network should be made reliable regardless.
Recommended Posts