Bug Report: Lutron RA2 Main Repeater not reporting LED status correctly

Please see this screenshot from logs:
Screen Shot 2021-01-28 at 12.58.00 PM

dev: 137 is the RA2 Lutron Main Repeater keypad device
dev: 1 is the RA2 Lutron Telnet device

As you can see, it's reporting all phantom button LED changes as LED 1, although it's showing 111 on the telnet.

I think it's using the normal keypad logic for parsing the output from telnet, but main repeater will need special handling. There's currently no device type for main repeater nor there's a setting for keypad to tell it that it's actually the main repeater. Changing the number of buttons to 100 didn't seem to help. This is my RA2 repeater device setting as keypad:

Feel free to change this to a feature request, b/c main repeater is not really a keypad but it functions like a keypad as far as integration is concerned.

HE version: 2.2.4. I don't see anything mentioned in the 2.2.5 release note about this, so I'm assuming that's not fixed in 2.2.5.

I'll talk to @bravenel and see what he wants to do, but guessing a new device type would be in order.

Are you trying to use the LED events for something?

Help for what?

Are you trying to use the LED events for something?

Yes, I'm setting rules based on LED status. This is because Lutron's scene control is pretty sophisticated. I want to be able to use it in Hubitat.

Help for what?

In the device setting page for Lutron keypad, there's a parameter to set the number of buttons. Setting it to 100 doesn't help mapping the LED status correctly for the main repeater.

OK. The LED number is being cut off, which can be fixed. There are some very odd LED to button number mappings in RA2. For a keypad, the numbers are 81 to 86 (or 85, depending on keypad, etc). For main repeater they are 101 to 200. What the driver was doing was pulling the low order single digit, which works for keypads, but obviously not for main repeater. For GrafikEye controllers led numbers are just weird: 174, 175, 211, 183, 184, 220 etc.

So there are some options for what we could do. One option would be to just report Lutron's number from the telnet string. This would not be backwards compatible as to keypads, as people may be relying on the way they work now (1..6). Another option would be to map main repeater LED numbers to the button number by just subtracting 100. That wouldn't solve the case for GrafikEye, but then I doubt many people use GrafikEye as a keypad.

There are some other minor fixes I want to make to the Lutron Keypad driver, and doing this is very easy. I don't see any need for a main repeater to be anything other than a 100 button keypad. My inclination would be the second option above, just subtract 100 for reported LED numbers greater than 100. If someone shows up just hankering for GrafikEye keypad LED support, that could be handled with a preference that handles those numbers in some way.

Your thoughts?

From https://www.lutron.com/TechnicalDocumentLibrary/040249.pdf, main repeater supports DEVICE / GROUP / MONITORING / TIMECLOCK commands. IMO, only the DEVICE command is useful for accessing the phantom buttons. The other stuff you can do better with HE already, so agreeing with you there to just treat main repeater as a keypad.

Regarding Keypad button / led mapping:

Here is a list of common devices:
Main Repeater:
button: 1-100
led: 101-200

SeeTouch Keypad / Hybrid Keypad:
button: 1-7
Button Top Lower 16
Button Top Raise 17
Button Bottom Lower 18
Button Bottom Raise 19
led: 81-87

Tabletop SeeTouch Keypad:
button: 1-17
Column 1: Lower 20
Column 1: Raise 21
Column 2: Lower 22
Column 2: Raise 23
Column 3: Lower 24
Column 3: Raise 25
LED:81-95

GRAFIK Eye is too complicated. It probably deserves to be its own device. Also I doubt many people actually have it. Maybe not worry too much about it.

I actually prefer your option 1, because it exposes exactly what Lutron exposes as-is. However, that's a backwards incompatible change and not very intuitive for user who don't understand the Lutron telnet protocol. It will probably piss some people off, but it's the most generic solution to expose everything and the least amount of work for you.

For option 2, if we really want to do this right, I would add a type parameter for Lutron keypads which supports 3 types: Main Repeater, SeeTouch Keypad / hybrid keypad and Tabletop SeeTouch Keypad. Then implement the mapping differently for 3 different types. The logic could be as simple as:

if type == MAIN_REPEATER
    led = led - 100
else 
    led = led - 80

If you want to put in more time, preset the number of buttons differently for the 3 types. Not a big deal if you don't.

Hope this helps. On a different note, I'm really hoping HE can open source the built-in drivers and apps. Instead of talking about it here, I'll just send you a pull request.

Did we decide on how to go about this?

Not yet. We're going to do some major upgrades to the Lutron integration for next release. We will address this issue.

It appears that your suggestion about subtracting 80 for LED numbers less than 100 and subtracting 100 from those above 100 will work with the outcome of LED number being the same as button number.

2 Likes

This fix will be in upcoming 2.2.6 release. For main repeaters / SmartBridge PRO the led number will be the same as the button number (mapping Lutron led numbers appropriately).

3 Likes

I was just trying to figure out how to see LED status on the Lutron phantom buttons and stumbled into this thread. I have my main repeater set as a keypad (k,1,Virtual Buttons) and I'm running v 2.2.6.140. Is there something else I need to to do to see the LED status? My keypad object it set to 100 buttons. This is what I see in the device. I'm still new around here so still getting used to everything.

There is an initialization bug in the Lutron Telnet driver (will be fixed next release). Open Lutron Telnet device, turn the Enable LED Events preference off then back on, and hit Save Preferences. Then those events will start showing up for you.

1 Like

Excellent! It's working now for me. So many plans on how I'm going to use this! :smile:

1 Like