Skip to main content

Insteon: Controller vs Responder

This entry is going to be more of a technical article.  If you're not planning on setting up scenes in an Insteon environment, this isn't for you.  If you are or like me, have been running into some confusion about what should be set up as a controller, what should be a responder, and what should be both.  Here's what I learned.

I've been using Insteon switches for a couple of years now and had set up a few scenes.  When adding a switch to a scene, you have the option of adding it as a controller, a responder, or both.  Not knowing the difference and wanting to cover my bases, I set all of my scenes to both.  Since my scenes were all timing type scenes (e.g. turn on night lights at sunset) it worked fine.  Then I added an 8 button keypad and started programming the buttons to control other lights.  The program for this, of course, is a scene.  Once again, I set every switch and button as both a controller and a responder.  Then I created a scene, specifically for my Echo, to set my lights as movie lights.  It would turn off my kitchen lights and family room lights and set my dining room light at 25% (the kitchen, dining room, and family rooms in my house have no walls between them).  It makes the family room nice and dark but not too dark.  So, as per habit, I set all of the switches as both controllers and responders.  At first it seemed to work.  I could say, "Alexa, turn on movie lights" and the lights would set just like I programmed.  Perfect.  Then, I turned on the dining room light (via the switch) and the family room and kitchen lights turned off.  What!  And the dining room light dropped to 25%.  What!!?  Time to do some research.

What I found was very simple but not documented in a way that I understood it.  So here's how controllers and responders work in the world of Insteon.


A controller initiates an action - specifically a scene.  For example, if Switch A is set as a controller for Scene B, then turning on Switch A will initiate Scene B.  So when I set my dining room switch as a controller for my movie lights scene, hitting the switch (turning on the dining room light) also initiated my movie lights scene (turning off the family room and kitchen lights).  Hmmm... that was the problem.


A responder reacts to an action - specifically a scene.  For example, if Switch A is set as a responder for Scene B, then executing (turning on) Scene B will turn on Switch A.  The difference is that instead of Switch A turning on Scene B, Switch A is reacting or responding to Scene B being executed.  So I fixed by Movie Lights scene by setting my switches to be responders only.  Then, when the Movie Lights scene was executed, the lights did what they were programed to do but turning on the Dining Room switch (or Living Room Switch or Family Room switch) did not execute the scene.

Both (Controller and Responder)

When a component like a switch is set to Both (meaning both a controller and a responder) it will both initiate a scene (controller) and respond to a scene (responder).  This works great if you have more than one button or switch controlling a single light.  Like a 3-way switch.  For example, you have Switch A and Button B both controlling Light C.  In Insteon land only one component actually turns the current on to the light, the other controls the light via a scene.  So, Switch A actually turns on and off Light C but we want Button B to do it a well.  So, we create Scene D.  This scene turns on Light C and is set with Switch A and Button B as both controllers and responders.  So, the logic of the scene is as follows:

  • Turn on Switch A
    • Light C is turned on (because Switch A controls Light C)
    • Scene D is turned on (because Switch A is a controller for Scene D)
    • Button B is turned on or lights up (because Button B is a responder for Scene D)
  • Turn on Button B
    • Button B lights up (because that what Button B does when it's turned on)
    • Scene D is turned on (because Button B is a controller for Scene D)
    • Switch A is turned on (because Switch A is a responder for Scene D)
    • Light C is turned on (because Switch A controls Light C)
Clear as mud?  

So, if Button B is not set up as a responder, when you turn on Switch A, Light C still turns on and Scene D is still executed but, since Button B is only a controller, it doesn't respond - it doesn't light up or set itself in the on position.  That means that if you now push Button B, it lights up and turns on Scene D which tells Switch A to turn on (because Switch A is a responder) which turns on Light C.  However, Light C is already on so you don't actually see any change and may think the button doesn't work.  That's why your buttons/switches need to be both controllers and responders.


Samuel said…
Thank you for sharing your understanding!

Popular posts from this blog


I just finished reading The Agony and the Ecstasy by Irving Stone. It's a biographical novel of Michelangelo (you know, the famous sculptor/artist whose statue of David and the paintings in the Cistine Chapel are super famous) that gives a very interesting view of his life. It seems that while Michelangelo had a very productive life, it wasn't a very happy one.

One of the first things that I noticed about Stone's portrayel of Michelangelo is that he was obsessed with creating sculptures and a true perfectionist. For a large portion of his life (into his 60s it seems) his every action was calculated toward a goal of sculpting marble - either getting a commission or improving his talent (or both). Not only did he want to sculpt, he wanted his pieces to be as real as possible.

His obsession with carving perfect sculptures drove him to do endless studies of the human form. He even spent months sneaking into a morgue to dissect bodies so he could figure out how the body real…

Sonos Control with the Amazon Echo - How I did it

I've had my Amazon Echo for a year or so and one thing that I've wanted ever since I purchased it, is to be able to use voice commands to control my Sonos speakers.  I waited patiently (OK  not patiently) for Sonos skill to appear on the Echo but it still hasn't come.  I was encouraged when Sonos announced it was going to focus more on voice but still nothing.  Isn't there any way to control my Sonos with my Echo?

Yes - sort of.

WARNING: This post is not for the faint of heart because the solution is not trivial.

So, I found a project on github that uses another project on github combined with a custom skill on
the Echo via a web service hosted by AWS Lambda.  OK, that was the easy part.  I knew that going in.  That's why, initially, I waited.  There must be an elegant solution out there.  I searched and waited and searched again and waited again.  Finally I decided to give it a try.  If it worked it would be really cool.  If it didn't, well I'm no worse o…