The Whizzo Blog

Indigo and Lutron RadioRA

A couple of days ago, I discovered Perceptive Automation's excellent Indigo home automation software for the Mac. I installed the evaluation version on my Mac Mini server and disappointingly discovered there was no built-in support for the Lutron RadioRA (what Lutron now calls "RadioRA Classic") lighting system that I have in my home.

I briefly looked at the various Insteon products that Indigo supports, but it appears that a fair number of people have experienced failure of its hardware components. I have had absolutely no problems with my RadioRA system in the 4 years its been installed so abandoning it was not an option.

Fortunately, Indigo introduced a server plugin API in its latest version (version 5 as of this writing). This allows a developer to use a combination of XML and Python to integrate unsupported hardware. Given that a RadioRA system can be controlled via RS-232 using a Lutron RA-RS232 controller, it seemed like a straightforward task.

I quickly got to work using some of the example plugins provided with the Indigo SDK to create a RadioRA plugin. I had no prior experience writing Python code but it all came together fairly quickly. Since it only took a day to create, I decided to make it open source so others could benefit from and hopefully contribute to it.

This plugin has the following requirements:

  • A working Lutron RadioRA "Classic" system (I doubt it will work with RadioRA 2)
  • A Lutron RA-RS232 controller
  • A Serial to USB dongle

The download and source code are available via bitbucket.

Please note that this is unsupported software and is being provided as-is with no warranty expressed or implied.

Features

  • Phantom Button Devices
  • Dimmer Devices
  • Actions for "all lights on" and "all lights off"

Known Issues

  • The RA-RS232 module does not provide dimmer level information. The plugin tries to work around that limitation as best it can but be aware that dimmer levels reported to Indigo will not always be accurate.
  • This is my first foray into Python programming, so its highly possible that I'm doing things inefficiently or incorrectly. The plugin is working for me so it at least appears to be functional. Constructive criticism is always welcome.
Posted on May 22, 2012 by Dan.