Jump to content

Is there a simple way to do this


djones1415

Recommended Posts

Posted

Objective:

From a KPL button in my bedroom:

1) See if any light on the first floor is not off (KPL button lit up)

2) If any are not off, turn all first floor lights off (without having to turn on any that are already off)

 

I have a scene: First Floor All

 

If I link a KPL button to control this scene, will the KPL button light up whenever any device listed in the First Floor All scene is on (or not off).

 

Or does this requirement require a ISY programming?

 

Before I start, I'd appreciate any tips on the simplest way to get to this simple objective.

 

Thanks

Posted

Requires a program

 

If

Status light 1 is not off

Or status of light is not off

Or status......

 

Then

Turn kpl button on

 

Else

Turn kpl button off

 

Make this kpl button controller of the scene. Then, when the button is lit as a result of the program and you turn it off, the scene will go off.

Posted

Need to know if the devices in the First Floor All Scene are defined as Responders or Controllers. If they are Responders they are controlled by some other device, Scene or themselves. Adding the KPL button as a Controller will have no affect on the KPL button LED as the other devices are Responders.

 

If there are other Controllers in the Scene any time those Controllers turn On or Off they are controlling the First Floor All Scene which will affect the KPL button LED.

 

Without knowing all the details of the First Floor All Scene I think it will require ISY Programming to accomplish what you want. You could assign the KPL as a Controller of the First Floor All Scene and set the KPL button to non-toggle Off mode. Any time the KPL button is pressed it turns First Floor All Scene Off without concern for the current state of any of the Scene Responders. This gets the Scene devices Off but does not have the KPL button LED as an indicator that any were on to begin with. That requires ISY Programming.

Posted

Almost there...but have some sort of timing issue that I don't understand...

 

Scene "Left Lamp" - Controlled by KPL Button 3, Responder is OutletLinc Dimmer #1 (lamp).

Scene "Right Lamp" - Controlled by KPL Button 4. Responder is OutletLinc Dimmer #2 (lamp).

Scene "Both Lamps" - Controlled by KPL Button 1. Responders are the two OutletLinc Dimmers, KPL Button 3, and KPL Button 4.

 

What I want is to switch on KPL Button 1 - get both lamps on, and KPL 1, KPL 3 and KPL 4 to light up.

If I turn off KPL 3, the left lamp goes off, KPL 3 and KPL 1 go off.

If I turn off KPL 4, the right lamp goes off, KPL 4 and KPL 1 go off.

 

This all works fine EXCEPT when I turn KPL 1, KPL 1 goes on, but immediately goes off (correctly leaving both lamps on and KPL 3 and KPL 4 on). If I turn KPL 1 on AGAIN, it correctly stays on, and correctly goes off if I turn either KPL3 or KPL 4 off.

 

Program I'm using:

If Status OutletLinc Dimmer #1 is OFF

OR Status OutletLinc Dimmer #2 is OFF

Then

Set KPL Button 1 Off.

Else

(nothing)

 

It's as if the ISY takes an instant before it recognizes both Outlets are on.

 

What am I missing? Or do I need to add a delay somewhere? Or use different logic in the program? Or ??

 

Thanks. I have a ton of these to do, and I'd like to know how to handle this simple case before doing too many.

 

And if there's a simpler way to handle than what I'm doing...

Posted

Program I'm using: 
If Status OutletLinc Dimmer #1 is OFF
OR Status OutletLinc Dimmer #2 is OFF
Then
Set KPL Button 1 Off.
Else

It's as if the ISY takes an instant before it recognizes both Outlets are on.

 

I believe the problem is that when you turn on KPL1, the outletlincs respond with a change in status, triggering your program. I find it rarely to be good practice to have a program "then" condition that can trigger an evaluation of the "if" path. Perhaps it would be worth trying breaking that program into two:

 

if:

original conditions

 

then

run second program "then path"

 

Second program:

 

if

then

original path

Posted

Another option is to trigger with the 'action' instead of the 'reaction'

 

 

If Control ‘KPL 3’ is switched Off

Or Control ‘KPL 4’ is switched Off

Then

Set KPL Button 1 Off.

Else

Posted
I believe the problem is that when you turn on KPL1, the outletlincs respond with a change in status, triggering your program. I find it rarely to be good practice to have a program "then" condition that can trigger an evaluation of the "if" path. Perhaps it would be worth trying breaking that program into two:

 

Yes..I thought that too - although I couldn't see why turning on the KPL1 button would have triggered a status change. Anyway, I had tried the separate program before posting, and posted this just to keep it simpler.

 

Even running the Else (or Then) path of the separate program that just turns off the KPL1 button, KPL1 still goes off an instant after it is pressed and goes on.

 

Again, it stays on properly if I hit it a second time (after the lamps are on).

 

I'm thinking the problem has something to do with the timing of when the ISY is evaluating on or the other of the OutletLincs.

 

I'm stumped.

Posted

djones1415

 

Check my previous post just above your last post. Pressing KPL button 1 is changing the Status of the OutletLincs. As soon as the Status of one is turned On the Program triggers. Since the If conditions are ORed together the other OutletLinc is still Off so the Program turns KPL button 1 Off.

 

The Program looks like it was written to react to KPL button 3 or KPL button 4 being turned Off. Works good for that. The problem being it is also triggered when the first OutletLinc is turned On. Any change to Status of tested devices triggers the Program.

Posted

Thanks to both of you for helping.

 

LeeG: I'd like to use the Status instead of Control if possible. My thinking (please check it - I'm new to this) is that using Status will make future changes easier. For example, if any controller (maybe added in the future) turns off one of the lamps in this scene, Status will catch that and the KPL1 button will go off as it should - with no program change. Using Control would mean I'd have to go in and change the programming for every switch I add in the future to catch each specific switch that turned off the lamp and have the program handle that KPL1 button.

 

Also, it doesn't appear to me that turning off the KPL1 button does in fact change the status of either lamp. With the following program I can turn the KPL1 button on (THEN) and off (ELSE), and doing either doesn't affect the lamps. (The KPL1 button does not control the load to anything.)

 

oberkc (or LeeG): any idea why putting the logic to turn off the KPL1 into a separate program didn't work?

 

I'd think this is a pretty standard goal that everyone would have - i.e. having a KPL button that turns on multiple lights be lit only if all of those lights are in fact on...and to to off any time any single one of those lights goes off. On if ALL are on; Off is ANY is off.

 

Thanks...

Still Stumped

Posted
oberkc (or LeeG): any idea why putting the logic to turn off the KPL1 into a separate program didn't work?

 

It would probably be easiest to check your actual program. Until then...

 

Your original question was with regards to using a KPL button as an indicator without mentioning that you wanted to use that same KPL to control a scene. This definitely adds another layer of complication. In retrospect, two programs or one probably makes no difference.

 

Given your latest set of requirements:

 

What I want is to switch on KPL Button 1 - get both lamps on, and KPL 1, KPL 3 and KPL 4 to light up.

If I turn off KPL 3, the left lamp goes off, KPL 3 and KPL 1 go off.

If I turn off KPL 4, the right lamp goes off, KPL 4 and KPL 1 go off.

 

I would keep the scenes as you have defined. I would then create a program:

 

if
control KPL3 is switched off
or control KPL4 is switch off

then
set KPL1 off

 

What you did not state was what, if anything, you want to happen to KPL1 if you separately turn both KPL3 and KPL4 on. You also did not mention how you define "on" with the outlet dimmers. Is this 100%? Do you expect KPL1 to go off when you DIM one or more of the lamps? Do you want KPL1 to go off ONLY when the lamps are full off? Answers to these questions will affect your program(s).

Posted

“What I want is to switch on KPL Button 1 - get both lamps on, and KPL 1, KPL 3 and KPL 4 to light up.â€

“This all works fine EXCEPT when I turn KPL 1, KPL 1 goes on, but immediately goes offâ€

 

I took the above to mean everything worked which included “get both lamps On†except that the Program was turning KPL1 button Off when not desired.

 

“Also, it doesn't appear to me that turning off the KPL1 button does in fact change the status of either lamp.â€

 

That is correct. Turning the KPL 1 Off with a Direct command has no affect on any of the Responders that may be linked to KPL button 1. Insteon does NOT propagate Direct commands sent to a device to any linked Responder(s).

 

Yes, checking the ‘reaction’, that is the OutletLinc Status, would pick up another Controller if added to the mix in the future.

 

“any idea why putting the logic to turn off the KPL1 into a separate program didn't work?â€

 

I’d like to see the actual Programs posted to be sure but the issue here is not the Then clause changing the things the If is checking as it is not. Moving to two Programs resolves that situation. The problem is the Scene that is activated when KPL button 1 is pressed On is affecting the status of multiple devices. When one of the OutletLincs changes Status (to On in this case) the Program is triggered. The other OutletLinc is still Off at that point so the Program If is True driving the Then clause. Again, it is not what the Then clause does that causes the problem but what the Scene driven by KPL button 1 turning On.

 

I’ll have to give some thought on how to resolve and still be able to add additional controllers in the future without having to change the Program as well.

Posted

Thanks to both of you for helping people get started on here.

 

And, LeeG - Thank you for getting me to the solution.

 

Your comment led the way...

 

The problem is the Scene that is activated when KPL button 1 is pressed On is affecting the status of multiple devices. When one of the OutletLincs changes Status (to On in this case) the Program is triggered. The other OutletLinc is still Off at that point

 

Here are the programs that do the trick:

 

If Status OutletLincDimmer #1 is not OFF

AND Status OutletLincDimmer #2 is not OFF

Then Run Program KPL1 (Then Path) 'turns on the KPL1 button

Else Run Program KPL1 (Else Path) 'turns off the KPL1 button

 

(It was adding the line that had the program turn the KPL1 button on that fixed things. KPL1 actually blinks once, as you would no doubt predict when you think about it. The program turns off KPL1 when the first OutletLincDimmer is turned on (but the other remaining off, as you pointed out) and then turns it back on when the second goes on.)

 

Perfect. KPL1 is on when both lamps are on, and it's off when either or both are off. And this will be true in the future if some other scene or controller turns both lamps on or either/both off --- without having to change the program code. I can use this throughout to keep the indicator lights in sync with the devices, just like hard linking in the switches does.

 

Thanks again.

Guest
This topic is now closed to further replies.

×
×
  • Create New...