Jump to content

How do you make a program that turns on all devices in a Scene to a certain level?


mvgossman

Recommended Posts

How do you make a program that turns on all devices in a Scene to a certain level?

I've been having to set each individual device in the scene manually as an individual line item in the "THEN" section of a program, seems unsatisfying, and I haven't found in trial and error or searching here and elsewhere for a more elegant way that works.

Related question is, if one of the items in that scene is a KPL button, how do you turn that one button on (or off)?

Mitch

Link to comment

And you want these levels to be something other than defined by the scene?  Create a second scene having the same devices, with other desired ON levels.  Use a program to turn on the second scene.  

Regarding keypad button, that is one of those silly secret tricks: create a scene having only the KPL button.  Turn that scene on or off.

 

Link to comment
19 minutes ago, mvgossman said:

Thanks - what is the purpose of the "Adjust Scene" function. It superficially sounds like a way to set that scene to an arbitrary brightness.

Mitch

It's a way to change the on-level of a responder in a scene.  I use it to ensure that motion-controlled lights come on at night and not during the day, as shown here (first program).  You could use that method by changing all of the levels of the devices in the scene periodically, but keep in mind that each "adjust scene" command involves changing a responder record in a device and sometimes those changes can be missed due to comms problems.  Just a caveat.

1 hour ago, mvgossman said:

Related question is, if one of the items in that scene is a KPL button, how do you turn that one button on (or off)?

Do you mean turning the LED on that one button on and off?  Add that button to a scene as a responder and turn the scene on and off to control the LED.  I have several scenes with only a single button as a responder to do exactly that.

Rob

Link to comment

Thanks again, another related question on Scenes.

When you click on the scene name in the console, each member of the scene is present with its own ramp rate and on level. Is this to determine what happens when the whole scene is turned on with the ISY?

And each item in the scene container, when highlighted shows itself in red and the other in blue. Is this in order to determine what happens when each is manually turned on and what to tell the others to do completely differently, if you wish, from the Scene attributes mentioned above?

If I am on the right track here, then in order to have different programs to do different things to the scene from when you press the switches, or to have different intensities with different names, you'd create a scene whose global attributes are as you desire?

Mitch

Link to comment
Quote

When you click on the scene name in the console, each member of the scene is present with its own ramp rate and on level. Is this to determine what happens when the whole scene is turned on with the ISY?

Correct.

Quote

And each item in the scene container, when highlighted shows itself in red and the other in blue. Is this in order to determine what happens when each is manually turned on and what to tell the others to do completely differently, if you wish, from the Scene attributes mentioned above?

The main thing to keep in mind is that there are controllers, which send commands to other devices and are colored red in the AC, and responders, which react to commands and are colored blue.  Some devices can be both controllers and responders in the same scene (switches are a good example), and will be colored red.  If you click on a controller (red) device in a scene, you can see and set the levels of all responder devices in that scene if you turn that controller "on" (such as a keypad/remote button, or wall switch).  Each controller in a scene can have a different set of levels for each responder or responder/controller in that scene, and you can use "adjust scene" to programmatically adjust those levels or do it manually in the AC  This, for instance, lets you have a different set of levels for a light switch vs. a remote in the same scene.  This is now clearly laid out in 5.0.12 when you select "Adjust Scene" in a program (in scene w, controller x, set y to z).  It was more confusing in previous versions.

The PLM itself also acts as a controller for all of the scenes managed by the ISY, and that's what you're looking at when you click the scene name in the AC.  You'll see the levels that will be applied when you send "on" to the scene itself, manually in the AC or via a program.

Quote

If I am on the right track here, then in order to have different programs to do different things to the scene from when you press the switches, or to have different intensities with different names, you'd create a scene whose global attributes are as you desire?

There are a couple of different ways that you can go if you want to have a switch act differently at different times

  • Write a program that looks for the switch to change state and turn on a scene that's configured as you want (and yes, you can have multiple scenes with different settings for the same responders)
  • Create a scene with that switch and any responders (lights, for instance) and use a program to adjust the scene as necessary.  This is what I did in the program that I pointed to earlier.

If you're still confused and have a specific use case that you're trying to solve, please describe it and I'll try to help.

Rob

Link to comment

Remember... Insteon Scenes were intended to be presets for levels and ramp speeds that can be used later.

When you manipulate scene levels you are writing preset parameters to a switch or other remote Insteon device, and changing the Eprom settings inside the device each time you change it. You could wear out the Eprom in the device and it also takes time so if you manipulate Insteon Scenes in response to some program trigger like and MS, expect the response to take several seconds and your Insteon comm system to bog down while this is happening.

 

Most devices take up to several hundred scene presets. 

Link to comment

Not to hijack this thread but I think my question may also help mvgossman....

My sunset program is:

If
        Time is Sunset  + 25 minutes
 
Then
        Set Scene 'Outside Lights Dim' On
        Set 'FR Pool Table Lights' 30%
        In Scene 'MBR Bath Lights' Set 'MBR Bath Lights' 30% (On Level)
        In Scene 'MBR Recessed Lights' Set 'MBR Recessed Lights' 30% (On Level)
        $IsDayTime  = 0
 
Else
   - No Actions - (To add one, press 'Action')

My Adjust Scene statements are to set the level of brightness low during the night when those lights are turned on manually. Another similar program runs at sunrise to allow them to go to 100% when turned on. Is this the best way to do this?

Link to comment

I do this to with a separate program that dims all the SwitchLinc LEDs as well as the bedroom lamp and bathroom levels for "the pee run in the middle of the night". 100W equiv. bulbs ae pretty nasty in the middle of the night. :)

If your proram adjusts the proper level for manual operation it looks fine. You may want a Wait between the scene level sets because they capture the Insteon protocol for a fair chunk of time that coud block other HA Tx items for a second or two. The scene levels are all kept in the Insteon devices.

Link to comment

I'm sorry, I'm a little foggy on how to do this. If anyone has time to outline it and get me to understand I'd appreciate it. What I want to understand is this - take for example my stair lights. There are two circuits with two switches each but I always control them all at the same time. I have a scene set up to turn them on and off with any of the switches as a controller to go to 10%. I also have a program that turns them all on at sunset and off again at sunrise. What I want to do is have a scene that turns them on via a program to go to 20% at a half hour before sunset. So how do I make a separate scene that the program triggers to set them all to 20% without colliding with the scene that causes each switch to trigger the scene to set them all to 10%? I foresee the switches now causing the scene to go to 20% after I make this new scene incorrectly. As you can see I lack a fundamental understanding of all the settings available when setting up a scene, where you click the scene itself and the individual devices in the scene there's a whole selection of individual settings for the devices and a copy button which I don't understand.

I'm seeing that this thread could be very useful to newbies. I'm not a total newbie, just new to this particular aspect.

Link to comment

Separate scenes for each level you want to have are necessary to do this with scenes.

This may get complicated but one step at a time....


Create all the scenes you want to use.

Create a program for each scene and in the If sections put a STATE variable equal to a different value. Like this

If
....$sVariable = 1

Then
....set DimScene On

Else
....blank

 

For all the rest of the scenes add one to the number so $sVariable = 2, 3 ,4  etc..

 

Always add an Off scene and a program with
If
....$sVariable = 0

Then
....set sceneOff On

You can drop these into a custom folder you create, so you don't have to ever see them again.

 

Now to prove these are working go to your $sVariable you created in the State folder, and type some values into it to  test them out..... Cool eh?

 

Now you can write your programs easily testing what state the lights are in and do things based on that.
If
....(Control Switch1 is switched On
....OR
....Control of Switch2 is switched On
....) AND
....$sVariable < 7 <----maximum lighting = full on

Then
....$sVariable += 1

 

Dont forget this one
If
....control switch is switched Off

Then
....$sVariable = 0

 

I suggest you use numbers that are in some kind of order to make it easy to just increment the $sVariable when you want brighter or decrement it when you want dimmer. Or you could do it by expected order in time.

Link to comment

Archived

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


×
×
  • Create New...