First, for openHAB, you need a Smart Bridge Pro and not the Smart Bridge that you can pick up at your local big box store. The Pro model is an “installer” version that you’ll need to obtain elsewhere. They are available through other sellers.
There are three protocols that the Smart Bridge Pro “talks”:
The first is the only one available without a reverse-engineered or NDA-encumbered “secure” key as well as with a Lutron-published, public protocol spec. I don’t think anyone would sign-off on allowing that into openHAB.
Only LIP over telnet is fast enough to be considered “real time”. If you have a Smart Bridge Pro, you will need to enable it using the Advanced settings in your smart-phone app.
The following appear to be limitations of the Smart Bridge Pro itself:
- Events or actions while a button is down can slow response to the 10-15 second range
- Makes use of the increase/decrease function “impossible” through external control
- Can result in, for example, a two-second physical press being reported as 1.5 seconds
- Scenes are not reported as “matching” the way that they are in the smart-phone app
- The buttons on the dimmers are not reported at all
- The Pico remotes don’t (natively) report multi-tap, long-press, or multiple press actions
- Access to the integration report is not possible through LIP
The following are limitations of openHAB that you should be aware of:
- The scenes are not available
- The increase/decrease functions are not available
- You can’t, from what I can tell, change the fade time on an event-by-event basis
- You can’t, from what I can tell, set the fade delay at all
Once enabled, you’ll need a Thing for the bridge, each dimmer, and each keypad.
Get the integration IDs by generating an “integration report” using the smart-phone app.
Bridge (the angle brackets are notation, not part of the Thing declaration):
lutron:ipbridge:SmartBridgePro "Smart Bridge Pro" @ "Home" [ ipAddress="<IP or hostname>", user="lutron", password="integration" ]
Dimmer:
lutron:dimmer:Bedroom_East_Cans "Bedroom East Cans" (lutron:ipbridge:SmartBridgePro) @ "Bedroom" [ integrationId=2 ]
Pico:
lutron:keypad:Bedroom_One "Bedroom One" (lutron:ipbridge:SmartBridgePro) @ "Bedroom" [ integrationId=3 ]
Each dimmer will need an Item for the level. I’ve included the notation for assigning the dimmer to a couple groups here. The group assignment is optional, but very useful since you can’t control the scenes with openHAB at this time. The notation for creating groups is documented beneath the dimmer.
Dimmer caseta_dimmer_Bedroom_East_Cans
"Dimmer Bedroom East Cans [%.0f]" <dimmablelight>
(
group_all_dimmers,
group_Bedroom_dimmers
)
{ channel="lutron:dimmer:Bedroom_East_Cans:lightlevel" }
Creating groups (MAX
or another “combinator” is required, contrary to documentation. Issue filed):
Group:Dimmer:MAX group_all_dimmers
Group:Dimmer:MAX group_Bedroom_dimmers
For each Pico you need an Item for each of the five buttons available. Again, I group these for convenience.
Group:Switch:AND(OFF, ON) group_all_picos
Group:Switch:AND(OFF, ON) group_pico_Bedroom_One
Switch pico_Bedroom_One_on
"Pico Bedroom One On" <switch>
(
group_all_picos,
group_pico_Bedroom_One
)
{ channel="lutron:keypad:Bedroom_One:button2" }
Switch pico_Bedroom_One_preset
"Pico Bedroom One Preset" <switch>
(
group_all_picos,
group_pico_Bedroom_One
)
{ channel="lutron:keypad:Bedroom_One:button3" }
Switch pico_Bedroom_One_off
"Pico Bedroom One Off" <switch>
(
group_all_picos,
group_pico_Bedroom_One
)
{ channel="lutron:keypad:Bedroom_One:button4" }
Switch pico_Bedroom_One_up
"Pico Bedroom One Up" <switch>
(
group_all_picos,
group_pico_Bedroom_One
)
{ channel="lutron:keypad:Bedroom_One:button5" }
Switch pico_Bedroom_One_down
"Pico Bedroom One Down" <switch>
(
group_all_picos,
group_pico_Bedroom_One
)
{ channel="lutron:keypad:Bedroom_One:button6" }
I’ve gotten to the point where the limitations and bugs of openHAB have driven me to manage my Lutron through Python. If openHAB provides access to the scenes, I might come back once the JSR233 rule extension lets me write rules in a meaningful, documented, stable, language. Managing scenes through a set of 20+ Items with both a level and a Boolean for if the dimmer is in the scene, for each scene, isn’t a “design pattern”, it’s a design flaw. My approach, in general is:
- Use the Lutron app to assign the Picos to the devices they “directly” control for dim-up/down
- Use scripts to add additional dimmers that should be controlled beyond those groupings, typically by activating a scene
- Use scripts to detect and take action on long-press and multi-tap events