thomgibb Posted March 24, 2009 Posted March 24, 2009 I am having trouble with the KPL backlight leds following the program started by switch action. Keypad Linc is set up as 8 keys but using 6 key faceplate. Had to do this to be able to control the leds under the top and bottom 2 sets independently. When A and/or B is activated by pressing the top A/B button, it performs the designated lights "ON" which are on a ramp process. I have a program that when the switch action happens it checks for light levels and then activates the backlight leds. My question is: Isn't it possible that the controlled lights have not yet reached their "ON" level by the time the program gets to its next program step and therefore since the lights have not reached their "ON" level the program does not meet the "ON" level criteria in order to turn on the backlight leds and therefore doesn't. Does the ISY99i continuously run all of its programs routinely, on a specific time cycle, rerunning all programs and therefore would correct the backlight led if anything was not correct according to programs first pass. Or does it only run the program when a switch action is performed?
Sub-Routine Posted March 25, 2009 Posted March 25, 2009 I am having trouble with the KPL backlight leds following the program started by switch action. Keypad Linc is set up as 8 keys but using 6 key faceplate. Had to do this to be able to control the leds under the top and bottom 2 sets independently. When A and/or B is activated by pressing the top A/B button, it performs the designated lights "ON" which are on a ramp process. I have a program that when the switch action happens it checks for light levels and then activates the backlight leds. My question is: Isn't it possible that the controlled lights have not yet reached their "ON" level by the time the program gets to its next program step and therefore since the lights have not reached their "ON" level the program does not meet the "ON" level criteria in order to turn on the backlight leds and therefore doesn't. On means 100% or are you comparing actual levels? The ISY anticipates target levels, but if a Query is performed during a level change the actual level is reported and evaluated. I think all you need to add to your program is a Wait before you switch the KPL buttons. You should allow ~1 second for every 4-5 devices. Does the ISY99i continuously run all of its programs routinely, on a specific time cycle, rerunning all programs and therefore would correct the backlight led if anything was not correct according to programs first pass. Or does it only run the program when a switch action is performed? The ISY runs programs based on events. An event occurs when any Schedule or Condition changes. A Condition can be any of the selections available: Status, Control, etc. When a program sees an event included in it's Conditions it is evaluated and runs the Then or Else. So it could be a switch or a schedule or a program, etc. that activates a program. Rand
thomgibb Posted March 26, 2009 Author Posted March 26, 2009 Thanks for the suggestions of adding a wait. have to figure out how to do that but will I'm sure. The "ON" that I refer to is 100% on and I know it takes a couple seconds to get there as I have a ramp speed. Would it not make sense that the system cycle through the programs on a regular basis to keep confirming status? An actuation could take priority of the cycle process.
Sub-Routine Posted March 26, 2009 Posted March 26, 2009 Thanks for the suggestions of adding a wait. have to figure out how to do that but will I'm sure. The "ON" that I refer to is 100% on and I know it takes a couple seconds to get there as I have a ramp speed. Would it not make sense that the system cycle through the programs on a regular basis to keep confirming status? An actuation could take priority of the cycle process. AFAIK, every program is reevaluated any time the ISY sees a change in any device. Using a Query would be the only way ISY would know if a device was changed in some other manner. If you post your program(s) we can better analyze the problem. Right click on the program, Copy to Clipboard, Paste between Code tags here. Thank you, Rand
markens Posted March 26, 2009 Posted March 26, 2009 AFAIK, every program is reevaluated any time the ISY sees a change in any device. Is this really true? It seems that a given program would only be reevaluated when a device or control which is included in that program's if clause changes. Otherwise a program like the following would not work correctly. (And it does work correctly!) If ( Control 'kitchen light' is switched Fast On Or Control 'kitchen light bdoor switch' is switched Fast On ) And ( Control 'kitchen light' is not switched Fast Off Or Control 'kitchen light bdoor switch' is not switched Fast Off ) Then Set Scene 'kitchen all lights' On Else Set Scene 'kitchen all lights' Off
Michel Kohanim Posted March 27, 2009 Posted March 27, 2009 Hello markens, I do understand the confusion: You see, every time there's a change on a device, the whole condition is re-evaluated. So, as you note, when you click the on button, the if condition is re-evaluated to true (the first Or'd block). When you click off, condition is false since the second Or'd block is false and so is the first one. I hope it makes sense. With kind regards, Michel AFAIK, every program is reevaluated any time the ISY sees a change in any device. Is this really true? It seems that a given program would only be reevaluated when a device or control which is included in that program's if clause changes. Otherwise a program like the following would not work correctly. (And it does work correctly!) If ( Control 'kitchen light' is switched Fast On Or Control 'kitchen light bdoor switch' is switched Fast On ) And ( Control 'kitchen light' is not switched Fast Off Or Control 'kitchen light bdoor switch' is not switched Fast Off ) Then Set Scene 'kitchen all lights' On Else Set Scene 'kitchen all lights' Off
Sub-Routine Posted March 27, 2009 Posted March 27, 2009 AFAIK, every program is reevaluated any time the ISY sees a change in any device. Is this really true? It seems that a given program would only be reevaluated when a device or control which is included in that program's if clause changes. Otherwise a program like the following would not work correctly. (And it does work correctly!) To follow up on Michel, again, as far as I know, all programs are parsed for Conditions that match a change. So when your kitchen light is switched your example would run. If your hallway light changed your example program would be considered (reevaluated) by the ISY and not run because the hallway light is not in it's Conditions. Consider a program based on a Schedule. Every time the clock changes in the ISY every enabled program will be reevaluated. If the time change has no effect the program is not run. If the program is sensitive to that time then it is run. Please see this Wiki page: ISY-99i/ISY-26_INSTEON:Scope%2C_Precedence_and_Execution_Order Rand
Recommended Posts