Jump to content

Scenes or programs for KPL and complex setups


widnerm

Recommended Posts

I'm new to Insteon and the ISY and before I get too into complex lighting setups I wanted to get some input on best approaches for setting up what I'll call complex scenes using KPLs.

 

I have 60 dual band dimmers (v41) and 2 KPL dimmers (8 button v.41). I have all my basic scenes working fine (e.g., 4 dimmers controlling 1 light as a scene) and some basic programs (turning stuff on/off at sunrise/sunset, etc.)

 

Now where I'm not sure how to proceed:

I want to set up a scene (I think) called "MovieLights". What I want it to do (for example) is set FamilyRoom to 30%, KitchenIsland off, Nook off, KitchenRecessed 30%, Hall 15%.

 

Each of those are scenes themselves, with multiple dimmers as controllers for each of them. (e.g., FamilyRoomMaster, FamilyRoomSlave1, FamilyRoomSlave2).

 

I want pushing KPL button C to activate the MovieLights scene, the KPL C LED to light, and all the dimmers to reflect the correct dim level of their respective lights. If any of the associated lights are then adjusted from a dimmer (thus changing the scene) I want the KPL C LED to turn off.

 

My first attempt was to make KPL C the controller for the MovieLights scene, then add each of the "master" dimmers (the ones actually connected to loads, e.g. FamilyRoomMaster) as responders in the scene. Pushing the KPL C button sets all the light levels as I want, but there are a couple things I want that aren't happening.

 

First - somehow I expected all the "slave" dimmers (e.g., FamilyRoomSlave1) to follow status, but clearly they don't. I guess I need to add all those as responders too?

 

Second - my KPL C LED never goes off. I set it to "non-toggle on" thinking that was what I wanted. (I want it to set that scene "on" any time it's pressed.) But now it goes on and never goes off. How do I make it shut off when I turn any of the effected lights off? Do I need to add KPL C as a responder to all the other scenes?

 

Third - is doing this all with scenes the best way to go, am I approaching it right, or would I be better off doing it with programs?

 

My gut tells me I'm on the right track, but before I start programming a bunch of scenes each having a couple dozen responders and adding KPL buttons as responders to a bunch of other scenes I wanted to make sure my head was in the right place.

 

Thanks,

-Mike

Link to comment

“First - somehow I expected all the "slave" dimmers (e.g., FamilyRoomSlave1) to follow status, but clearly they don't. I guess I need to add all those as responders too?â€

 

Yes, all the devices that should react must be added to ‘MovieLights’ Scene as Responders with the appropriate Responder On Level and Responder Ramp Rate settings.

 

“Second - my KPL C LED never goes off. I set it to "non-toggle on" thinking that was what I wanted. (I want it to set that scene "on" any time it's pressed.) But now it goes on and never goes off. How do I make it shut off when I turn any of the effected lights off? Do I need to add KPL C as a responder to all the other scenes?â€

 

This one is harder to accomplish because of all the variations you want to result in KPL button C turning Off. It cannot be done by assigning KPL button C to any of the Scenes (beyond KPL button C being Controller of ‘MovieLights’).

 

A Program is required that triggers on any of the conditions that should turn Off KPL button C.

 

If Status ‘device1’ is not 30%

Or Status ‘device2’ is not Off

Or Status ‘device3’ is not Off

Or Status ‘device4’ is not 30%

Or Status ‘device5’ is not 15%

Then

Set Scene ‘KPL button C’ Off

Else

 

‘device1’ is load control device for FamilyRoom Scene

‘device2’ is load control device for KitchenIsland Scene

‘device3’ is load control device for Nook Scene

‘device4’ is load control device for KitchenRecessed Scene

‘device5’ is load control device for Hall Scene

 

Any manual action by a Master or Slave device for a particular Scene will change the load control device from its predefined level for that Scene causing the above Program to trigger turning Off KPL button C.

 

 

Scene ‘KPL button C’ has KPL button C as Responder has to be defined. The only way to control a Secondary KPL button LED is for it to be a Responder in a Scene and control that Scene.

 

“Third - is doing this all with scenes the best way to go, am I approaching it right, or would I be better off doing it with programs?â€

 

The reaction by KPL button C cannot be done with Scenes alone. Management of KPL button C is done with a combination of Program and Scene.

Link to comment

Lee nailed your question very well.

 

I would add that I find it nice to have a slower fade on some lights vs other either with a long ramp rate, or in a program that will wait 30 seconds 60 seconds etc. Often we are not quite ready for the lights to go all the way off in all areas that adjust with the movie scene. We have stairs that are not a dimmer so go right on or off, I have those wait an extra amount of time because they give a bit of light to let people sit or run and grab something they forgot.

 

I recently added, via Raspberry Pi, the perl module by Jeffrey, an Iguanaworks Ir transceiver the ability to turn the tv on, set the inputs on the receiver, adjust the input back after the tv changes it on its own when the movie kpl button is pressed. Turning off the kpl movie button turns off the tv and stereo.

 

The capabilities get pretty huge with the isy.

 

Alan

Link to comment

Great, thanks much for the input.

 

I've done what Lee suggested and now almost everything works correctly.

 

The only issue right now is this: when I push KPL C (to activate the MovieLights scene) all the lights and dimmers react appropriately. But the KPL C button blinks twice (being in "non-toggle on" mode) and then goes off (instead of staying on). If I then push it again (with all the lights already set at the "proper" level) it blinks twice and stays on.

 

I assume it's doing this because I'm using a slow ramp rate on the lights (19 seconds). So when the program executes and checks Status for the various lights it catches them before they reach the full level. For example, FamilyRecessed ramps from 0 to 30, but the program must be catching it at say 20% and shutting the KPL C button off.

 

If I wait for all the lights to stabilize and then hit the button again it stays on.

 

I think this tells me I don't exactly understand how and when programs like this execute. All of the "if" conditions are "status" conditions. So does this program execute every time the ISY sees the status of any of those devices change?

 

If so, I guess I could just reverse the logic of the program, so that if all of those conditions are met I turn the KPL light on (as opposed to turning if off when any individual condition is NOT met). Does that make sense?

Link to comment

The ISY marks the device at what will be the final On Level immediately. I have a Scene that turns a Dimmer to 30% over 19 seconds. The Dimmer is marked as 30% when the Scene is executed even though it takes 19 seconds to reach 30%

 

I suspect something else is wrong.

 

Please post the Program that is turning KPL button C Off. Right click the Program name, select Copy to Clipboard and Paste to a forum post.

Link to comment

If
       Status  'Family Room / Family Recessed' is not 30%
    Or Status  'Hall / Hall' is not 15%
    Or Status  'Upper Hall / Upper Hall' is not 15%
    Or Status  'Kitchen / Kitchen Recessed' is not 30%
    Or Status  'Kitchen / Stairway' is not 15%
    Or Status  'Kitchen / North Island' is not Off
    Or Status  'Kitchen / South Island' is not Off
    Or Status  'Kitchen / Turret' is not Off
    Or Status  'Kitchen / Table Pendant' is not Off
    Or Status  'Kitchen / Table Recessed' is not Off

Then
       Set Scene 'MovieKPL' Off

Else
  - No Actions - (To add one, press 'Action')

 

I looked at the log a little bit. I see everything reports levels in 8 bits when the scene is set, irrespective of ramp rate. So I see 15% coming across the status as 38/255 and 30% as 76/255. Those are the right levels (at least after rounding).

 

I added the event log below. I push KPL C at 11:36:24, and I see it go "on" (255). Then 1 second later, last thing in the log, it gets turned off.

post-5374-140474159683_thumb.gif

Link to comment

Click My Lighting at the top of the device node tree and verify that each device being checked by the Program is reporting the expected % On or Off state.

 

Go to Programs | Summary. From a button Off state press KPL button C and look at the Status column for the Program in question. Is it True or False?

Link to comment

I think I understand the issue. When the first device affected by KPL button C On changes Status to its expected On Level defined by the Scene it is very likely at least one of the other devices is at a different level . The change in Status of the first device affected by the Scene causes the Program to trigger. That first device is at the correct level (Off or at some % On Level) but the other devices have not yet been marked to the new Scene established values. Thus the If is True and the button LED is turned Off.

 

The implementation will have to be done with two Programs. I’ll post them as soon as I have tested the new variation.

Link to comment
Click My Lighting at the top of the device node tree and verify that each device being checked by the Program is reporting the expected % On or Off state.

All devices are set correctly and as tested by the program.

 

Go to Programs | Summary. From a button Off state press KPL button C and look at the Status column for the Program in question. Is it True or False?

 

As a starting point I turned all lights off. Then I pressed KPL C. The button blinked twice, then went off. All lights ramped to their appropriate state. The Program Summary status shows False. But the keypad light is off nevertheless.

 

Here's some strange behavior from KPL C's LED as I play with it:

- if start with all lights off it does what I described above - it flashes twice then stays off.

- if I then push it again it flashes twice and stays on. (The scene is already set and the program is testing False)

- if I turn one light off (e.g., Family Recessed) the KPL C led turns off, as it should, and the program tests True

- if it then push KPL C again it behaves as it should - lights return to movie settings and KPL C led stays on

- BUT - if I turn two of the lights off (Family Recessed and Hall) the KPL C led goes off (as it should) but when I press it again it blinks twice then stays off.

 

So what's happening is that as long as all the lights are either already set at their test levels in the program, OR only one of them is different, the KPL light will stay on after I push it. If more than one of the lights has to change it ends up blinking then staying off.

 

This behavior is not 100% consistent. About 1 in 5 tries it will blink twice and stay on after setting multiple lights.

 

Maybe there's some kind of race condition going on here? Is it possible it's taking more than 1 second to propagate the status of all the load dimmers back the the ISY and the program test conditions flash True for a split second, the ISY sends the KPL C off command, then a second later the ISY sees them all correctly but the KPL C off command has already been sent?

 

EDIT - looks like we overlapped - I suspect you nailed it in your post right above this.

Link to comment

I changed the logic a bit and this seems to work.

 

This variant just tests status on all the relevant devices and sets the KPL C led on/off appropriately. Make sense, or is this going to blow up on me somehow?

 

If
       Status  'Family Room / Family Recessed' is 30%
   And Status  'Hall / Hall' is 15%
   And Status  'Upper Hall / Upper Hall' is 15%
   And Status  'Kitchen / Kitchen Recessed' is 30%
   And Status  'Kitchen / Stairway' is 15%
   And Status  'Kitchen / North Island' is Off
   And Status  'Kitchen / South Island' is Off
   And Status  'Kitchen / Turret' is Off
   And Status  'Kitchen / Table Pendant' is Off
   And Status  'Kitchen / Table Recessed' is Off

Then
       Set Scene 'MovieKPL' On

Else
       Set Scene 'MovieKPL' Off

Link to comment

I would think the reversed logic of using Ands would have the same issue. When the first device is marked changed by the Scene the Program is triggered with a False If condition because the other devices have not been set to the Scene values. KPL button C Off turns Off because the other devices have not reached the Scene settings. If it works use it but I cannot explain why it is working.

 

The following should also work.

 

This Program is triggered by the KPL button C being pressed On. It waits 2 seconds and Enables the existing Program with the If Status checks. The existing Program with the If Status checks will be Disabled until KPL button C is pressed On. The If Status Program will remain Enabled until one of the devices changes Status that results in KPL button C being turned Off at which point the If Status Program will be Disabled. This prevents the If Status Program from triggering the next time KPL button C is turned On. I’m estimating that 2 seconds is long enough for the ISY to mark all the device Status changes resulting from turn On button C.

 

If
       Control 'KeypadLinc 6 Button / KeypadLinc 6 Button - A' is switched On
Then
       Wait  2 seconds
       Enable Program 'Test2'
Else
  - No Actions - (To add one, press 'Action')

 

This Program is labeled Test2 on my system. The name of the Program has to be changed to match the actual Program name

 

If
       Status  'Family Room / Family Recessed' is not 30%
    Or Status  'Hall / Hall' is not 15%
    Or Status  'Upper Hall / Upper Hall' is not 15%
    Or Status  'Kitchen / Kitchen Recessed' is not 30%
    Or Status  'Kitchen / Stairway' is not 15%
    Or Status  'Kitchen / North Island' is not Off
    Or Status  'Kitchen / South Island' is not Off
    Or Status  'Kitchen / Turret' is not Off
    Or Status  'Kitchen / Table Pendant' is not Off
    Or Status  'Kitchen / Table Recessed' is not Off
Then
       Set Scene 'MovieKPL' Off
       Disable Program ‘Test2’
Else
  - No Actions - (To add one, press 'Action')

Link to comment

Thanks Lee. That approach seems to work as well.

 

The reason mine works (with the And conditions) is because the program executes every time any of the relevant load controllers change status and it forces the KPL led either on or off.

 

Yours works for the obvious reason - it delays the program's ability to turn the led off until things have presumably stabilized.

 

One key difference in operation. With the And approach (and setting the led either on or off explicitly every time) the KPL C led will light up any time lighting conditions match that scene. So, for example, if I "interrupt" the MovieLights scene by temporarily turning on the Table Pendant light the program will turn the KPL C led off. If I then turn the Table Pendant light back off the program will see that conditions match the MovieLights scene again and turn the KPL C led back on.

 

I'm not sure either approach is better than the other.

 

Thanks again for the help and input, much appreciated.

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...