Lutron RadioRA Integration

My house came with two different lighting systems, about 40 Decora style stand-alone Lutron dimmers, and a Lutron RadioRA lighting system for the main living areas. The stand-alone dimmers were all replaced with Leviton Z-Wave dimmers, and incorporated in SmartThings. The issue remained of what to do with the Lutron RadioRA system.

I have created an integration of Lutron RadioRA into SmartThings. The integration is based on an Arduino Mega 2560 with ThingShield and RS232 shield connected via serial cable to a Lutron RadioRA RA-RS232 interface. One very cool thing about the integration is that all of the hardware connects via RF – there is no wiring involved. The integration is clean and does not interfere at all with the normal functioning of the Lutron system. If it is removed, or if SmartThings is down, Lutron just keeps on working as it always has.

With this integration, virtual switches and virtual dimmers are created in SmartThings by the integration’s SmartApp, called “Run Lutron”. A virtual device is created for each Lutron device. These virtual devices can be incorporated into ST automations just as if they were normal switch and dimmer devices. Turning on one of the virtual devices turns on the corresponding Lutron device. Turning a Lutron device on or off is reported through the integration, and turns on or off the corresponding virtual device.

The various files that make up the integration can be found on Github:

This is what it looks like (with the Arduino stack to go in the project box):


I owe a debt of gratitude to @ogiewon and @tgauchat who have helped me along the way to getting this to work. Dan provided the base ThingShield libraries and a starting point sketch I could build on. Terry helped me get over some issues in ST that I couldn’t figure out. Thanks to both!! :grinning:


Nice work man! Super cool!

I’ll take one. How much? :slight_smile:

1 Like

HaHa. The RadioRA stuff is all discontinued – don’t you have RadioRA-2? I had a hard time finding that RadioRA RS232 interface; evidently the factory still has a few.

I believe, but don’t know the specifics, that RadioRA-2 would be easier to work with than RadioRA. This is 9600 baud, with a very primitive protocol with limited functionality.

Most likely a similar integration could be done for RadioRA-2, using this integration as a starting point.


A post was merged into an existing topic: Announcing the “ST_Anything” Arduino/ThingShield Project

I also would think it would be easier for RA2

It may be worth mentioning that Lutron likes to see these kind of integrations. :sunglasses:

They do have an open API intended for home theater installers who want to connect up the audiovisual equipment with Lutron lighting and window coverings in scenes.

So the information is published and the equipment is in the marketplace. It’s a matter of putting it together from the SmartThings side. And of course it does require the additional custom hardware piece.

1 Like

You’ll love this: The Lutron devices via the integration, are instant reporting. HaHa!! :grinning:


Full disclosure. Lutron is an engineering company. There’s little about them I don’t love. :wink:


Will this work with lutron caseta?


To clarify, I am wondering if the RadioRA /Ra 2 can control caseta dimmers?

Lutron Caseta uses the newer protocol, RA2, so this particular set up will not.

I just got a SmartThings hub and am starting to work on integrating RadioRA2. I plan on basically using a Raspberry Pi running a simple node.js server to “translate” the socket based interface of the RadioRA2 into something ST can handle. I’ll use this as a base:

I’m not familiar with Groovy, so that might take a bit. I’m also not yet clear on how to fire events INTO ST from this service (e.g. for switch change notifications)

Welcome and good luck! I’m sure many people would like to see your project succeed.

Groovy itself is just a Java variant, and smartthings has its own version of groovy.

The important thing to note is that SmartThings is not sold as a piece of server hardware that customers are given control of. It’s not a base you can expand.

Instead, it was originally designed as a cloud service where customers could write custom code that would run in the smart things cloud. The local device is really just a radio to send the output messages.

(And what you can do is pretty limited. For example, on the software there’s no way to load your own libraries into the local box or into the cloud. You can only insert into to the existing executable structure.)

Consequently, there is no official way into the local box directly. UDP is not supported, neither is TCP.

You’ll find most of the heavy coders in the following topic, and they can answer additional questions. Some people do have workarounds, but it’s not quite what you might expect. (This is a clickable link.)

Interesting. I had assumed the http methods would be enough, but if they’re running from the cloud then that presents some serious security challenges and setup challenges that would make it unpleasant to work with (not so much for one person but if “regular” folks want to set it up). I saw some discussion that certain device handlers would run from the hub itself - but also that one wasn’t supposed to assume one way or the other. That thread seems to be trying something more complicated, but I’ll keep reading.

1 Like

This looks sufficient:

You should take a look at this integration to help you with a RadioRa 2 integration. All of the formatting of Lutron commands, and all of the processing of Lutron responses is done in one SmartApp, called Lutron Gateway. The device type for the ThingShield, and the Arduino sketch simply pass messages to/from Lutron and that app.

The Lutron Gateway app creates virtual devices in ST for each Lutron device that is to be controlled. The app subscribes to each virtual device’s on/off/level events, from which it formats the corresponding Lutron command to send. The app is pretty simple and straight forward – only about 100 lines of code.

For RadioRa 2, you could use the same basic architecture, where your Raspberry Pi and LAN interface simply pass messages, and you do the command formatting and response processing in your main app. Responses from Lutron are passed to the app, which figures out which child device should get the event, and then sends the event to the virtual device so that it remains in sync with the Lutron device.


What does the RadioRa command set look like? Isn’t it basically the same as RadioRa2? Can’t we just modify the shield to send stuff over an ethernet shield, and we are good to go?

EDIT: I see they are different.
EDIT2: I have some shield code for integration with RadioRa2, I can post if people are interested.

1 Like

How is your integration coming along?

It’s going quite well in fact. I had to completely reset the Lutron system and re-program it. That took a couple of hours, and was pretty straight forward. The main thing so far that we’re getting out the integration is the ability for Echo to turn things on and off in the Lutron part of the house. I have one light that’s part of Lutron that I was able to add to some motion lighting automations.

1 Like