Scenes, Groups, Multi-way lights, OH MY!

Multi-way lights, scenes, INSTEON links, group commands, etc., can be quite confusing. Which to use in what scenario, which is better, and what the differences are takes some background knowledge. This page is meant as a primer on those topics, and will lead you off to more specific pages (which may lead to even more). The one thing you MUST remember about home automation, and more specifically the do-it-yourself home automation market (of which Indigo is a part), is that it requires some planning and knowledge to go beyond the very simple tasks. Indigo attempts to make it easier for the first time user, but there's only so much abstraction that can be done to hide complexity.

To help get started, let's start with a few definitions:

Scene - a scene is when multiple devices, usually lights, are linked in some way such that when you activate a scene, each light adjusts accordingly. For instance, you may want to create a scene such that when it's activated, it makes your house more amenable to watching a movie. Or perhaps you have a controller in your bedroom that, when you hit a button, you want all the lights in the house to go off. These are typically considered “scenes”, and are not specific to a technology. If you read the basic scenes how-to, you'll see that it can work with lights and controllers that are either X10 or INSTEON. The simple Indigo Scenes How-to walks you through creating a technology agnostic scene and is really good background.

INSTEON Groups - when the INSTEON protocol was designed, a new concept, the group, was created. It's somewhat similar to a scene, but in fact refers to sets of INSTEON links that are stored by most INSTEON devices. INSTEON allows you to directly link most devices together so that, for instance, 2 different light switches can behave exactly the same - when you brighten one the other brightens the same amount in real time. These links can be created manually by pressing various buttons on INSTEON devices, and Indigo can remotely manage INSTEON links in most devices as well so you don't have to walk around your house pressing buttons to create these groups. INSTEON groups shouldn't be confused with Indigo Action Groups, which are a completely different thing. Indigo can remotely remotely manage INSTEON links in most devices.

Multi-way switch - in the classical sense, a multi-way switch will allow you to have several switches that control the SAME light (or load), rather than different lights. That's the distinction between a scene and a multi-way. You can use INSTEON switches, such as the Switchlinc, to create multi-way lights simply by adding another Switchlinc thats NOT connected to any load (only to the neutral and line wires) and then creating an INSTEON link between the two. In this scenario, you don't need to have the physical multi-way wiring that traditional switches needed. Making any switch multi-way is actually pretty simple!

OK, with those definitions in mind, let's talk about a problem that many experience when setting up scenes. Let's say that you have 2 lights that you want to stay pretty much in sync with each other: “Kitchen Accent Lights” and “Dining Room Accent Lights”. Both loads are controlled by INSTEON Switchlincs. So, the obvious choice is to link the lights together, via INSTEON links, such that manually operating one switch automatically keeps the other in sync. Note that you can do the link manually as described in the linking instructions that came with the Switchlincs, or you can use Indigo to create the cross-device links. Problem solved, right? Well, for physical operation, yes. But, when you fire up Indigo Touch and change the brightness of “Kitchen Accent Lights”, you notice that “Dining Room Accent Lights” doesn't work. What's going on?? (Note: this would also apply to the scenario where one switch is directly attached to the load and the other is just capped off - the classic 3 way switch configuration.)

Physically, the PowerLinc that your Mac is connected to is just another controller device (be sure to read the How-to on remotely managing INSTEON links - it has a good description of controllers vs responders). So, when you created the links between the two lights, the PowerLinc doesn't know anything about them. When you defined those Switchlincs in Indigo, it enabled Indigo to tell the PowerLinc to send direct commands, such as ON, OFF, BRIGHTNESS, etc., to them. That doesn't, however, tell the Switchlinc to activate the links that you created between the lights, because those are based on the INSTEON links. Confusing? A bit, but you'll get used to it.

The first option is to create an INSTEON Group in the PowerLinc that would contain both of those lights. That would enable you to tell the PowerLinc to send the Group the ON or OFF command, and the lights would respond in unison. However, you can't tell a Group to set the brightness dynamically - when you define the group, you define how bright each member of the group will be when it receives the ON command. So this solution may work for you if you don't mind the single brightness, or the multiple groups necessary to have different brightness levels. So rather than controlling the light directly in Indigo Touch or the Indigo Web Server (IWS), you'd create a button/icon on your control page to turn on the light and another to turn it off. Alternatively, you could create an ON and OFF Action Group and execute them rather than controlling the device directly.

The other option would be to treat one of the lights as the master (say “Kitchen Accent Lights”), and when that light changes, you match the other light to it's brightness. You would do that with a “Device State Changed” trigger, watching “Kitchen Accent Lights”, when “Brightness Level” “Has Any Change”. Then, for the Action, you'd just select the Device Actions→Light/Appliance Controls→Match Brightnessaction on the Actions tab. You could then uncheck the Remote Display checkbox for the “Dining Room Accent Lights” so that they don't show up in Indigo Touch and you'd only need to control “Kitchen Accent Lights” to control them both.

Now, when you control “Kitchen Accent Lights” from Indigo Touch or IWS, “Dining Room Accent Lights” will adjust to match the change. The downside to this approach is that they won't happen in unison - the kitchen lights will adjust first immediately followed by the dining room. The upside is that the trigger works for any brightness. You could then uncheck the Remote Display checkbox for the “Dining Room Accent Lights” so that they don't show up in Indigo Touch and you'd only need to control “Kitchen Accent Lights” to control them both.

CAUTION: don't attempt to create an identical trigger on the “Dining Room Accent Lights” that sets the kitchen lights - you'll get into a loop where the lights will continually adjust over and over and you'll have to restart the IndigoServer.

So, you're probably asking yourself, why can't Indigo just tell the PowerLinc to brighten/dim the Group? Because it's not part of the INSTEON protocol. Note that you can use this method to also keep a non-dimmable load matching the on-state of a dimmable load. Rather than use the Match Brightness action you could use the following Python script:

# Get your kitchen accent lights device
kitchenAccentLights = indigo.devices[DEVICEIDHERE] # "Kitchen Accent Lights"

# Test to see if they're on or off
if kitchenAccentLights.onState:
	# The accents are on, so turn on the on/off device
	indigo.device.turnOn(DEVICEIDHERE) # Enter the device ID of your on/off device here
else:
	# The accents are off, so turn off the on/off device
	indigo.device.turnOff(DEVICEIDHERE) # Enter the device ID of your on/off device here

You can also use this method to keep other devices and other technologies (X10) in sync.

Now, I mentioned earlier that you can link a load-bearing switch to other switches that are not load-bearing to create a classic multi-way switch. If you've done this, you'll also notice that if you control the main load switch with Indigo, Indigo Touch, or IWS, the secondary switches won't update. It's the same principle, and you could use the same techniques. I would recommend, however, that you uncheck the “Display in Remote UI” checkbox for all the secondary switches since they don't really do anything - that way, you'll only ever control the main load-bearing switch via Indigo Touch and IWS.

Ok, so that's a lot of information. But, there's one other complication that I think we should throw in here: what if I had a Keypadlinc (KPL) that I wanted, say, button 3 to also control the lights and represent their on state? Again, creating the INSTEON links would solve the manual operation problem. But, to keep the KPL button in sync when you control via Indigo Touch or IWS, you'd need to control that separately. First, check out the INSTEON Button Basics article to get a general feel for how buttons work, then read up on how to use Indigo to manage Keypadlinc Buttons.

Once you've comfortable with those concepts, then option one would only need to have the Keypadlinc button added to the INSTEON Group that you created. Using option two, you would add an extra action - specifically, an Insteon Actions→Turn On/Off KeypadLinc Buttons action, that would adjust your KeypadLinc's buttons accordingly. We think that about covers this topic.

  • /www/perceptive/wiki/data/pages/scenes_multiway_groups_overview.txt
  • Last modified: 2024/06/27 00:08
  • by 127.0.0.1