Lutron Integration Protocol

So after many emails, forum posts, and phone calls to Lutron, they still maintain that there is “no possible way” for me to programmatically control my Smart Bridge Pro so that I can script my lights to turn on and off via command. This however, is a false statement, there is a way to control it, in fact it is quite simple, there is just no documentation as to how to do it, at least not publicly. The Smart Bridge Pro has an integration protocol designed for “approved 3rd party companies”. This protocol runs on telnet, has a simple password, and allows you to control lights, pull current status, and run scenes all with commands.

Lutron clearly does not want anyone to have this info, the reason for that is beyond me. Personally if the integration protocol had been properly documented and available, I would have probably used their switches in my whole house. Since it was not, I mostly used x10, and was stuck with Lutron only where I needed LED dimmers where there was no neutral wire present in the switch box. I don’t give up easily, so I set out to find a way to control this thing. Luckily, there are some pretty helpful people on the Lutron forums that were attempting the same thing I was. Lutron had unfortunately censored all threads concerning custom automation control of the SBP, therefor I had to leave my email, and wait for one of the forum members to get back to me. I got a reply a couple days later from a forum member that will remain anonymous unless he tells me otherwise. Attached was the integration protocol documentation intended for approved 3rd parties only, and the basic instruction to get it working with telnet.

I took a chance and ordered a SBP off amazon, knowing I may end up with a $200 paperweight if any of this procedure had changed since the other forum members had figured it out (Wink did exactly this with a software update). When it arrived, I got it all set up with the app, followed the instructions to get the JSON report via email, and was able to control lights over putty! Next step was to build a class for this to integrate it with the rest of my automation system, but that will be the subject of another post…

 

Below is the basic instructions for programmatic control of the Smart Bridge Pro. The normal Smart Bridge will NOT work. You MUST have the pro model which can be a bit more difficult to find as it is only for “professional installation”. eBay and Amazon are good places to check. Note that following these instructions assumes you have basic programming/scripting knowledge already. I’m not going to explain how to use telnet, I’m only covering how to control the SBP.

First, hook up the SBP and find its IP (creating a DHCP reservation is probably a good idea too).

Configure it fully with the standard app, be sure to properly name the lights as the names will be sent in the integration report in a couple steps.

Go into settings, hit “Show Advanced Settings”, click “Advanced”, “Integration”.

Activate telnet support, and hit “Send Integration Report”

Telnet in to the SBP, the login is “lutron” and the password is “integration”. You may need to enter these twice, not sure why.

 

From now on you can consult the Integration Protocol Guide available here.

The pages from the above guide you will need are: page 14 for output, page 17 for the meaning of the error codes, and page 42 for the devices. The format of the communication is as follows:

If it begins with a #, it’s a command you’re sending.
If it begins with an ?, then you’re asking a status.
If it begins with ~, it’s an answer from the SMBPro.

For example, if you want to turn on output number 2 to 100%:

GNET> #output,2,1,100

~OUTPUT,2,1,100.00

 

The first line is the one I entered. The second one is the one the SMBP replied. If I just walk to where the wall dimmer is and press the “off” button, the SMBP will send me the string

~OUTPUT,2,1,0.00

 

If I have a computer connected by telnet, I can just get all the line beginning with a ~, parse those lines and no matter where the commands come from, I can keep up with the status of each light/store. You can also request their position with a ?OUTPUT command. It’ll look like this:

GNET> ?OUTPUT,2,1

~OUTPUT,2,1,0.00

 

You can go for a fade in or fade out by adding a fourth argument. For example, if I want the light to turn on over the next 20.5 seconds instead of turning on instantly:

GNET> #output,2,1,100,20.5

~OUTPUT,2,1,100.00

 

If I’m some kind of whackadoo and I want it to turn on over the next 1 hour, 7 minutes and 13 seconds:

GNET>  #output,4,1,100,1:7:13

~OUTPUT,4,1,100.00

 

After you’re done playing with output, you can use the device command. The device command simulates the press or release of a button. For example, if I want to simulate that I press the ON button of a pico (in this case pico#14), and then that I release it:

GNET> #device,14,2,3

~DEVICE,14,2,3

~DEVICE,14,2,3

GNET> #device,14,2,4

~DEVICE,14,2,4

~DEVICE,14,2,4

~OUTPUT,4,1,100.00

 

I’m not sure why it replies twice, it just does. But as you can see from the last line, pressing the ON button of pico#14 has turned my dimmer number 4 to 100%. It only does it when the button is released. This is consistent with how a Pico actually works. The button numbers for a Pico are:

Button 2:ON

Button 3:Favorite

Button 4:OFF

Button 5:Raise

Button 6:Lower

 

There is one special device, which is device number 1. This device represents the SMBPro itself, and it has up to 50 buttons. Each button is a scene. Since you can program up to 50 possible scenes, it has 50 possible buttons. For example, if you want to trigger scene number 3 (In my case, it sets the level of 4 different dimmers to different levels):

GNET> #device,1,3,3

~DEVICE,1,3,3

~DEVICE,1,3,3

~OUTPUT,2,1,19.00

~OUTPUT,4,1,34.00

~OUTPUT,5,1,0.00

~OUTPUT,8,1,35.00

 

So how do we know which device is which and which output is which? The JSON file you emailed to yourself previously contains exactly that. If you’ve named your dimmers, stores, picos and scenes correctly with the app, all you have to do is parse the JSON file and you’re good to go.

 

A bunch of this information is credited to the helpful folk from the Lutron forums, if you would like credit, send me an email and I will credit you on this page.