Keypadlinc Help. Scene Controller created, no relays though.

I’m trying to get my keypadlinc working, but I must be a bit slow…

I’ve got an older version (subcat of 09).

Originally, all I could get it to do is show up as a dimmer. I read a thread (http://forum.micasaverde.com/index.php/topic,12352.0.html) that talked about the code only recognizing 05, 1B and 1C subcats. I followed those instructions and made the two edits in the I_InsteonPlm.xml file:
Changed:
if ((subcat == “05”) or (subcat == “1B”) or (subcat == “1C”)) then
To:
if ((subcat == “05”) or (subcat == “1B”) or (subcat == “1C”) or (subcat == 0x09)) then

and
if ((dsubcat == 0x05) or (dsubcat == 0x1B) or (dsubcat == 0x1C)) then
To:
if ((dsubcat == 0x05) or (dsubcat == 0x1B) or (dsubcat == 0x1C) or (dsubcat == 0x09)) then
This seamed to get me farther. I now get the Scene Controller created, and the radio button for “Buttons on KeypadLinc” checks properly at 6 buttons.

Now here’s where I can’t get farther. Maybe I’m just stupid, but there isn’t anything anywhere where I can set/toggle/check the status of the other 4 buttons on the keypad. The main dimmer shows up, but the scene controller has not buttons, and no other relays gets created. (see attached screen shot). I’ve reloaded and rebooted the vera a couple of times. I’ve also tried deleting the device several times, as well as adding it through the command line. I always get the same result.

I have noticed that when the device first gets created (before the scene controller gets created), the device_type shows as urn:geektaco-info:device:dimmer-kpl:1, but after the scene controller gets created, it changes to urn:geektaco-info:device:Dimmer:1. Not sure if that’s related or not…

Any help would be appreciated.

BTW, GREAT implementation of the Insteon protocol. This should be totally brought into the mainline of the vera.

Have you gone in to the Automation tab and created a new scene using the scene controller from your keypad? That is how you control with the buttons on the keypad. Here is a screenshot.

  1. Once you are in the tab, click trigger and select your keypad’s scene controller (should be right below the keypad).
  2. Select the type of trigger you want (scene is activate when the button is presses or vice versa).
  3. Give it a name
  4. Scene number: This correlates to which button (A is 1, B is 2, etc).

Let me know if you still need help.

Fyi, you can not directly control the scene buttons of the kpl. Only the on / off or the dimmer portion (the load buttons). You can only have the buttons act as a trigger for scenes. The above post describes it well on how to do it.

  • Garrett

OK, that makes sense why I couldn’t figure it out…

Bummer that I can’t trigger the light on the scene buttons to light up. My purpose was to light them if all of the doors in the house were locked. If I looked at it I could get status, and click it to lock all of them if necessary. Sounds like that is a no go… I’ll have to look for an alternative solution.

Thanks!

There may be work on this in the future, but this is currently not something that can be done.

  • Garrett

ebolam -

If subcat 0x09 is also a KPL, we need to add that both to the daemon code, as well as the LUA code in order to make everything work the way you want. I’ll see if I can get an update in place.

For lighting individual buttons, it looks like PurdueGuy is making some really good progress on that front. I know this is functionality a lot of people want, so once he has it all nailed down we will probably do another point release so that we can get it out there. (This is functionality I want myself.)

In the mean time, you could always hack up a bit of LUA that turns on the backlight if any lock is unlocked and turns it off when all locks are locked. It won’t give you the specific status of each light, but it might be a good first step. I currently use the backlight on my KPL to track if my garage is open or not, and it works pretty well.

Subcat 0x09 is a KPL (dimmer). It’s an older unit, pre-dual band. It would be great if you could update the daemon code.

How did you get the LUA code to light the buttons? What you are suggesting is exactly what I’m looking for. I’m fairly good with linux, but not a huge programmer. I’m more than willing to get my arms dirty though :). I tried running some of the set_button_led command from the cli, but it wouldn’t work. Maybe because the daemon isn’t updated?

I saw the post just now on the progress of PurdueGuy. I’m glad to see you’re getting some help :).

I had the 0x09 subcat in the daemon, but not in the LUA code. So, that is probably the issue you were seeing. I updated the code and pushed it in tonight so you should be able to grab the nightly tomorrow morning and give it a try.

For the lights on the KPL, there are actually two settings that change those. The backlight setting determines if there are any lights on at all, or if the keypad should be dark. You can see what I mean by using the “set_led_backlight on/off” command from the CLI. The other way they are controlled is with the “set_button_led” command. That command takes two parameters, the first one is ignored and should be set to 1, the second one is an 8 bit number where each of the bits sets the on/off state for one of the buttons. So, assuming I have an 8 button KPL, and I want button B and D to have their LEDs on, and all the rest to be “off”, I would set the second parameter to 10. In binary, the integer 10 is 00001010. The lowest order bit is button A. If you are using a 6 button KPL the bit mappings act as though you were using an 8 button kpl. The 2nd and 7th bits are ignored IIRC. So, on a 6 button KPL, if I wanted to turn on the LED for “On” and button B, I would use the integer 5. In binary, the integer 5 is 00000101. The “On” button is in the place of bit 1, but B is in bit 3 because if it were an 8 button KPL, you would actually be turning on button C. (Confused yet?)

If you decide you want to use the backlight for now, control of it is exposed through the web interface. When you set up an “Automation” you can go in to the advanced tab, select your KPL, and use the SetBacklightTarget setting to turn the backlight on (1) or off (0). When my garage door opens, I set it to 1, when it closes I set it to 0. This has worked quite well for me for a couple of years now.