How to Integrate Lutron Aurora Dimmers With Home Assistant

Integrating Lutron Aurora dimmers with Home Assistant can be a little tricky, but it makes them much more powerful.

Table of Contents

My first goal with Home Assistant was to create the perfect lighting setup for our house. A big part of that goal was making the smart lights fade into the background by working with wall dimmers as a normal person would expect.

Lutron Aurora dimmers fulfill this need perfectly. By locking your wall switch in the on position, they turn your dumb switch into a smart dimmer and switch without any additional electrical retiring.

By default, they’re designed to work with the Hue bridge. Setting them up with the Hue bridge is very straightforward.

However, I wanted to use the dimmers to trigger the Circadian Lighting component and other features of Home Assistant. Unfortunately, the Home Assistant Hue integration doesn’t work quickly enough with these dimmers (or any switches) because it relies on polling.

As a result, there’s an intolerable delay between pressing the dimmer and the lights changing when you use Home Assistant.

Fortunately, as with all Hue bridge products, the dimmers use the Zigbee protocol. Therefore if we add a Zigbee modem to our Home Assistant’s setup, we can pair the dimmers directly to Home Assistant and use its wonderful automation to do anything we like with our dimmers, including controlling non-Hue smart plugs, setting scenes in a room, and even triggering Circadian Lighting changes without any delay.

Here’s how.

Setting up Zigbee with Home Assistant

First, we need to add a Zigbee modem to our Home Assistant setup. That requires some additional hardware, namely a Zigbee receiver. There are lots of options out there, but I settled on the Conbee II USB Zigee receiver.

Conbee II

The Conbee II is just an antenna for Zigbee. And like all antennas, it has to cope with electrical interference and range to be effective. As such, we can’t just plug the Conbee II USB stick directly into the Raspberry Pi’s USB port.

There are a lot of electrical signals running through your Home Assistant’s Raspberry Pi constantly, and these signals can interfere with the antenna’s ability to receive Zigbee communication waves.

To decrease that interference, I used a 3.3ft USB extension cord. (There are some trade-offs with the lengths of the USB extension cord, so I experimented with different lengths and 3.3ft seemed to be just right)

Alose, like all antennas, you also want your Conbee II to be high and uncovered, so I used the USB extension cord to raise it up.

ZHA

Once you have your Conbee II plugged into you’re Raspberry Pi and positioned appropriately, you’ll need to set up the ZHA integration in Home Assistant. Follow the instruction here.

Note: you could use other Zigbee integration like deCONZ. I just found ZHA is easiest.

Pairing Lutron Aurora dimmers with Home Assistant Zigbee

Now that you have your ZHA and Conbee II set up and ready to receive Zigbee signals, we have to pair the Lutron Aurora dimmers with our newly minted Home Assistant Zigbee modem.

First, put the ZHA into pairing mode by going to the ZHA integration, clicking CONFIGURE, and clicking the + button in the lower right corner. Click SHOW LOGS in the upper so we can see whether or not our pairing is working.

Once ZHA is in pairing mode, simply double-tap the Lutron Aurora dimmers. You should see a blue light flash on the dimmer, indicating that it’s in pairing mode.

After about 10 seconds or so you should ZHA should show that it’s paired with the dimmer.

Usually, this should work without it a hitch. However, if you have previously paired your Lutron Aurora dimmers with the Hue bridge (or after a failed pairing with Home Assistant), you’ll have to reset the dimmer.

To do so, follow the instructions here. Once complete, try the pairing instructions above again.

Using Lutron Aurora dimmers with Home Assistant

Now that we have our Lutron Aurora dimmers paired with Home Assistant, we can start using them.

First, you’ll notice that when you pair the Lutron Aurora dimmers the only device ZHA creates is a battery for the dimmer. That’s because ZHA expects you to use events, not devices for automation triggers.

To see what the events look like, go to Developer Tools -> EVENTS -> scroll down to Listen to events enter zha_event, and press START LISTENING.

Click the dimmer button and you’ll see an event like this.

You’ll notice that there’s a unique_id that you can use to distinguish one dimmer from another.

You will also see that the status of the dimmer is stored as a number in the first element of the data.args array.

Clicking the dimmer toggles the number between 0 and 255.

Turning the dimmer’s dial moves the number between 1 and 255, which we’ll to set the brightness of our lights.

Use these events as triggers to Home Assistant automations, or, my recommendation, in Node Red flows like so.

image_3

The top output of the study dimmer function node fires when the dimmer button is toggled. The second fires when it’s dimmer, and the third when the zha_event doesn’t match our dimmer’s unique_id.

[
  {
    "id": "1e645abc.0523b5",
    "type": "tab",
    "label": "Flow 1",
    "disabled": false,
    "info": ""
  },
  {
    "id": "7d1f7c3a.bc2984",
    "type": "server-events",
    "z": "1e645abc.0523b5",
    "name": "zha event",
    "server": "3b276be2.e89754",
    "event_type": "zha_event",
    "exposeToHomeAssistant": false,
    "haConfig": [
      { "property": "name", "value": "" },
      { "property": "icon", "value": "" }
    ],
    "waitForRunning": true,
    "x": 100,
    "y": 320,
    "wires": [["f7cf9dcf.11706"]]
  },
  {
    "id": "f7cf9dcf.11706",
    "type": "function",
    "z": "1e645abc.0523b5",
    "name": "study dimmer",
    "func": "var dimmerId = \"ff:ff:00:0f:e7:fd:e3:68:1:0x0008\"\nvar eventId = msg.payload.event.unique_id;\nvar state = msg.payload.event.args[0];\nvar onOrDimmed = msg.payload.event.args[1];\nif (eventId == dimmerId){\n    if (onOrDimmed == \"7\"){\n        return [msg,null,null];\n    }\n    else{\n        msg.payload.dimmerNumber = state;\n        return [null,msg,null];\n    }\n}\nelse{\n    return [null,null,msg];\n}",

    "outputs": 3,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "x": 320,
    "y": 320,
    "wires": [["fef6d316.3cebe"], ["fef6d316.3cebe"], ["fef6d316.3cebe"]]
  },
  {
    "id": "fef6d316.3cebe",
    "type": "debug",
    "z": "1e645abc.0523b5",
    "name": "",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "false",
    "statusVal": "",
    "statusType": "auto",
    "x": 570,
    "y": 320,
    "wires": []
  },
  {
    "id": "3b276be2.e89754",
    "type": "server",
    "z": "",
    "name": "Home Assistant",
    "addon": true
  }
]

Here’s the key javascript from the function node.

var dimmerId = "ff:ff:00:0f:e7:fd:e3:68:1:0x0008";
var eventId = msg.payload.event.unique_id;
var state = msg.payload.event.args[0];
var onOrDimmed = msg.payload.event.args[1];
if (eventId == dimmerId) {
  if (onOrDimmed == "7") {
    return [msg, null, null];
  } else {
    msg.payload.dimmerNumber = state;
    return [null, msg, null];
  }
} else {
  return [null, null, msg];
}

Extending the range

After I set up my dimmers, I discovered that the range of the Conbee II couldn’t reach the far end of my house. Specifically, it couldn’t go through the bathroom.

Fortunately, Zigbee is a mesh network. That means the network range and strength actually gets better as you add more devices. However, battery-powered devices like dimmers don’t actually improve the network’s range. You have to add “always-on” devices like plugs or lightbulbs. (The Hue lightbulbs won’t work in this case because they’re connected to the Hue bridge, which is a different Zigbee network then our Home Assistant Conbee II)

To improve the range, I recommend ZHA buying some Zigbee outlets like these by Innr and placing them between the areas of your house that are out of range and the Conbee II. Two strategically placed outlets completely solved my problem.

Conclusion

The Lutron Aurora dimmers are simply the best piece of hardware I’ve found for creating an intuitive yet powerful lighting set up.

However, they’re very limited with their default Hue integration. Thankfully, adding them to Home Assistant makes it easy to create advanced integrations and automations.

3 Likes

This is awesome! Thank you! Question, on the second output of the function, how would I set the light to that value. I know its a call service node, but what message id would I use to set the brightness in the Data section of the call service node?

Thanks! Good question. Probably should put this in the post.

The “dimmed value” is stored in msg.payload.dimmerNumber so you’d create a service node like so

where the Data attribute looks like this:

{"entity_id":"{{entitiesToUpdate}}","brightness":"{{payload.dimmerNumber}}"}

My longer post here has some details about integrating this with a complete lighting setup.

1 Like

Good Evening, great article by the way, read both short and longer posts that you provided. Curious if it would possible for you to share the node red flows for the lutron dimmer as I am excited to get this working with a home automation project that I have been putting off for a while. Thanks

Do you have any issue with the button press not always reporting? When I import your flow into node red, it reads out the dimmer turns but the button presses don’t seem to be reported always. I think other people had this issue with this device as well.

I did have issues with both the button and dimmer failing sometimes. This turned out to be a zigbee network strength issue. I resolved it by strategically placing a few of these.

You can tell when it’s a signal strength issue because the Lutron dimmer will flashes twice when the button press fails. (it flashes once when successful)

The node red flow is here

@Ryan_Grandy, were you able to solve this issue? Just bought one for testing and find that the dial always registers a zha_event that an automation can trigger, but the button presses are hit or miss. The LED on the switch flashes once. I am only using Home Assistant, no node red.

Did you try resetting the Lutron Dimmer?

I received a 2019 version so I did the ‘take the battery out for 10 seconds’ reset. It’s just odd that it’s just the button press that is flakey. It always responds to the dimmer turn.

I am currently using the nortek go control combo stick. I ordered a ConBee II stick to see if that makes a difference.

I am going to try that with just HA or possibly the ZIGBEE2mqtt

Ya I’m having a similar issue as moralmunky. dimmer works flawlessly but the buttton is like a 20% chance it sends an event less than 2in away from the adapter. I’m leaning toward it being the USB zigbee hub. I have a Nortek HUSBZB-1.

similar issue. let of know if switching sticks fixes it.

Same setup and results

Initial report. 99.9% sure the Nortek HUSBZB-1 Go Control combo stick. Been clicking it on and off for about 20 minutes with it not skipping a beat to turn it on and off

When you remove the HUSBZB-1. Once you remove the previous Zigbee integration you must also delete the zigbee.db before adding the new integration for the new stick.

Lutron Aurora User Guide
Dresden elektronik ConBee II The Universal Zigbee USB Gateway

I have the Nortek stick as well and always felt like it could be flakey with certain devices. I’d pick up the Conbee stick if I’m sure it’s going to at a minimum, let me use my Lutron Aurora’s directly with HA.

Please report back in a couple of weeks. I don’t want to go through the pain of redoing my entire zigbee mesh without the reward.

Just to throw some more evidence for the stick. I used the Conbee II but had to get a 6ft USB extension to raise the stick away from the rasberry pi.