Monday, January 09, 2017

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.

Controllers

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.

Responders

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.




No comments: