It would be great if the excellent library by @gurumitts currently supporting Caseta could be augmented with the Telnet features to support pico remotes on the Smart Bridge Pro. I think it was in there originally and taken out in favor of supporting the wider audience of non-pro bridge users.
I have a Smart Bridge Pro (L-BDGPRO2-WH) and have been poking around with the SSH interface which is available on both pro and non-pro bridges. It’s pretty neat and some real possibilities there.
After you login with SSH (the key is in the source code and the user is leap
), you get a blank screen. Don’t expect a command prompt or shell!
Start with this one:
{"CommuniqueType":"ReadRequest","Header":{"Url":"/project"}}
Then wherever you see Url
or href
, you can take that and make another ReadRequest
.
Get a list of all your devices:
{"CommuniqueType":"ReadRequest","Header":{"Url":"/device"}}
For your dimmers and switches you’ll see a zone number, like /zone/1
.
Turn turn on Zone 1 to 100% brightness:
{"CommuniqueType":"CreateRequest","Header":{"Url":"/zone/1/commandprocessor"},"Body":{"Command":{"CommandType":"GoToLevel","Parameter":[{"Type":"Level","Value":100}]}}}
This is what the Home Assistant component is using.
In the Lutron app they support a Scene feature and in the interface they call these virtual buttons. Here’s your scene list (it is 100 buttons):
{"CommuniqueType":"ReadRequest","Header":{"Url":"/virtualbutton"}}
Now trigger the first scene:
{"CommuniqueType":"CreateRequest","Header":{"Url":"/virtualbutton/1/commandprocessor"},"Body":{"Command":{"CommandType":"PressAndRelease"}}}
It would be great if these could be incorporated into Home Assistant somehow (virtualbutton service?). If you have a lot of Lutron lights it is easier to walk around the house and program with the Lutron app. Then you just need a service in HA to call them and you could tie them to any automation. It would set all your Lutron light levels in one shot.
Going further into the SSH (or LEAP interface as they call it), I found you can program the levels and fade time for every single Pico remote button and all 100 virtual buttons. This is more than you can do in Lutron’s own app which does not support fade time. The major caveat however, it that you can program the fade time on the buttons (real or virtual) and NOT on the light itself. So while this helps you to customize the behavior of your pico remotes and Lutron-generated scenes, there would be no way to turn on a light from HA with an arbitrary fade time without using the Telnet interface (which already supports arbitrary fade times).
To program the fade rate for a scene or pico button, you have to go through a bunch of steps to figure out the /programmingmodel/
, then the /preset/
number, then the /presetassignment/
number. If it is a non-virtual button you also need to go through /device/
-> /buttongroup/
-> /button/
to figure it out.
Here is the sequence that I went through for a virtual button:
{"CommuniqueType":"ReadRequest","Header":{"Url":"/virtualbutton/1"}}
{"CommuniqueType":"ReadRequest","Header":{"Url":"/preset/1"}}
{"CommuniqueType":"ReadRequest","Header":{"Url":"/presetassignment/13"}}
At this point I know my virtual button is /presetassignment/13
so I can set the level to 0 and fade to 2 minutes (120 seconds):
{"CommuniqueType":"UpdateRequest","Header":{"MessageBodyType":"OnePresetAssignmentDefinition","Url":"/presetassignment/13"},"Body":{"PresetAssignment": { "Level": 0, "Fade": 120 }}}
I found a few other neat tricks:
- Check if you are on a Pro model with a Telnet service (a.k.a. Lutron Integration Protocol (LIP) Server):
{"CommuniqueType":"ReadRequest","Header":{"Url":"/server"}}
- Enable the LIP server (Pro only):
{"CommuniqueType":"UpdateRequest","Header":{"MessageBodyType":"OneServerDefinition","Url":"/server/2"},"Body":{"Server":{"EnableState":"Enabled"}}}
- Get that pesky Integration Report for Pro models that they insist must be sent to you by email (why Lutron??) (Pro only):
{"CommuniqueType":"ReadRequest","Header":{"Url":"/server/2/id"}}
-
The Smart Bridge advertises itself on the network using MDNS (IP 224.0.0.251). I think that means is could be added to Home Assistant’s discovery component.
-
Here’s how to check out the high and low trim levels on a device:
{"CommuniqueType":"ReadRequest","Header":{"Url":"/zone/1/tuningsettings"}}
- Simulate pressing and holding a Pico raise/lower button:
{"CommuniqueType":"CreateRequest","Header":{"Url":"/button/122/commandprocessor"},"Body":{"Command":{"CommandType":"PressAndHold"}}}
-
I don’t have shades, but the CommandTypes should be "ShadeLimitRaise"
and "ShadeLimitLower"
with "Parameter":{"Type":"Action","Value":"Start"}
or "Parameter":{"Type":"Action","Value":"Stop"}
. This is to start a shade moving or to stop a moving shade. GoToLevel
also works on shades and is what’s used in Home Assistant.
-
The ordering of the buttons within a /buttongroup/#
in my system for a 3 button raise-lower (3BRL) pico was On, Favorite, Off, Raise, Lower. So if you want to program the fade on the favorite button, try the third entry.
If you have the non-pro bridge and are hell bent on keeping it, there are some possible work-arounds for the lack of pico remote button presses in Home Assistant (assuming Telnet is eventually integrated for the Smart Bridge Pro users). In theory, you could buy a plug-in dimmer, stick it in a closet with nothing pluggin into it and assign your pico to it. Then program each button on the pico to set a certain level and make a sensor in Home Assistant based on brightness. Trigger automations based on the brightness level changes. It requires mapping Lutron brightness levels 0-100 to HA brightness of 0 to 255 so could support about 85 buttons or 28 pico remotes (assuming 3 usable scene buttons per remote).
If anyone has any questions, let me know. I’m not finished investigating the SSH interface and there may be a few more bits and pieces to share.