KeyPadLinc buttons and openHAB

I’ve tried reading through the documentation and forum posts I can find, but I can’t seem get my Insteon keypadlinc buttons to work properly.

I’ve gone through the steps here to link my Insteon Hub to the buttons on the keypad using the Insteon Terminal

Blockquote
>>> listDevices()
KitchenTable 1D.F4.7F
Cabinet Lights 48.73.0E
Island 3B.40.DD
Sink 2C.9E.3B
Kitchen Ceiling 42.D0.39
modem 33.C8.A6
Hallway 45.DE.72

Blockquote
>>> modem.getdb()

0000 KitchenTable 1D.F4.7F RESP 10100010 group: 01 data: 00 00 00
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 03 data: 00 00 03
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 04 data: 00 00 04
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 05 data: 00 00 05
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 06 data: 00 00 06
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 07 data: 00 00 07
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 08 data: 00 00 08
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 09 data: 00 00 09
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 0a data: 00 00 0a
0000 KitchenTable 1D.F4.7F CTRL 11100010 group: 01 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11100010 group: 13 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 group: 00 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 group: 0d data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 group: 0f data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 group: 10 data: 01 1c 41

Modem Link DB complete
>>>

Blockquote
KitchenTable.getdb()
getting db, be patient!
sent db query msg, incoming records: 1 2 3 4 4 5 6 7 8 9 10 11 12 12 13 14 15dbbuilder.done() is called
0fff 3D.7F.4F 3D.7F.4F CTRL 11101010 group: 01 ON LVL: 3 RMPRT: 28 BUTTON: 1
0ff7 modem 33.C8.A6 RESP 10101010 group: 00 ON LVL: 0 RMPRT: 28 BUTTON: 1
0fef modem 33.C8.A6 CTRL 11110010 group: 01 ON LVL: 3 RMPRT: 28 BUTTON: 1
0fe7 Island 3B.40.DD CTRL 11101010 group: 08 ON LVL: 3 RMPRT: 28 BUTTON: 8
0fdf Kitchen Ceiling 42.D0.39 CTRL 11101010 group: 08 ON LVL: 3 RMPRT: 28 BUTTON: 8
0fd7 modem 33.C8.A6 RESP 10101010 group: 0d ON LVL: 255 RMPRT: 31 BUTTON: 1
0faf Kitchen Ceiling 42.D0.39 RESP 10101010 group: 01 ON LVL: 255 RMPRT: 28 BUTTON: 3
0fa7 Kitchen Ceiling 42.D0.39 CTRL 11101010 group: 03 ON LVL: 3 RMPRT: 28 BUTTON: 3
0f87 Cabinet Lights 48.73.0E RESP 10101010 group: 01 ON LVL: 255 RMPRT: 28 BUTTON: 4
0f7f Cabinet Lights 48.73.0E CTRL 11101010 group: 04 ON LVL: 3 RMPRT: 28 BUTTON: 4
0f77 modem 33.C8.A6 RESP 10101010 group: 13 ON LVL: 255 RMPRT: 28 BUTTON: 4
0f6f modem 33.C8.A6 RESP 10101010 group: 01 ON LVL: 255 RMPRT: 28 BUTTON: 1
0f67 modem 33.C8.A6 CTRL 11100010 group: 04 ON LVL: 3 RMPRT: 28 BUTTON: 4
0f5f modem 33.C8.A6 CTRL 11101010 group: 05 ON LVL: 3 RMPRT: 28 BUTTON: 5
0f57 00.00.00 00.00.00 (STOP) 00000000 group: 00 ON LVL: 0 RMPRT: 0 BUTTON: 0

And I have the items defined in my insteonplm.items file:

Dimmer KitchenTable "Kitchen Table" {insteonplm="1D.F4.7F:0x000051#loaddimmer"}
        Switch KitTableB    "Kitchen Table B[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonB,group=0x04"}
        Switch KitTableC    "Kitchen Table C[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonC,group=0x05"}
        Switch KitTableD    "Kitchen Table D[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonD,group=0x06"}
        Switch KitTableE    "Kitchen Table E[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonE,group=0x07"}
        Switch KitTableF    "Kitchen Table F[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonF,group=0x08"}
        Switch KitTableG    "Kitchen Table G[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonG,group=0x09"}
        Switch KitTableH    "Kitchen Table H[%d %%]"    {insteonplm="1D.F4.7F:0x000051#keypadbuttonH,group=0x0A"}

But OpenHAB and Insteon still aren’t talking. If I press the button physically, I get no notification on the OpenHAB side. And if I try to turn on the button from OpenHAB (i.e. using openhab-cli), OpenHAB reports that it was successful, but the button LED doesn’t come on.

Am I missing a trick here somewhere?

Thanks,

Bruce
  • Platform information:
    • Hardware: Celron, 8GB RAM, several TB of storage space
    • OS:Ubuntu
    • Java Runtime Environment: zulu-8
    • openHAB version: 2.3.0

IIn insteon terminal what are your group numbers? I believe they start with f3 if you follow some examples?

You have a 6button or 8 button? I had this issue when I linked in the insteon app. But when following the terminal read me all worked. My groups though start with 0xf3.

The example in the main documentation for insteon-terminal (link in my original post) uses group number 1 for the main load, and group numbers 3-10 for the buttons. I followed that example.

This one is an 8-button. I’ve had Insteon for a while with a hub, so I did create some of the links between modules in the hub a while ago (e.g. button B on the keypad is controls a micro-dimmer module on the Kitchen Island lights). Do I have to blow all that away and start fresh? Is there an easy way to essentially factory reset everything at once?

Thanks,

Bruce

Try to remove the 0x in front of the group numbers. This may or may not work. I say this because I had a case where when created in the insteon app I needed to use the decima version for the group number in openHAB, but when I used the insteon terminal to create the group it seemed to be in hex.

@varneyb Sorry for my other short answers, I was not on my laptop till today. Can you look for this line in your openhab log file?

2018-08-13 20:36:40.738 [INFO ] [g.insteonplm.InsteonPLMActiveBinding] - device 35.4E.C4 found in the modem database and the modem controls groups [0x00,0x02,0x04] and responds to groups [0x01].
2018-08-13 20:36:40.746 [INFO ] [g.insteonplm.InsteonPLMActiveBinding] - device 4B.5C.74 found in the modem database and the modem controls groups [0xF3,0xF4,0xF5,0xF6,0x01] and responds to groups [0x01,0x03,0x04,0x05,0x06].
2018-08-13 20:36:40.766 [INFO ] [g.insteonplm.InsteonPLMActiveBinding] - device 35.3F.5F found in the modem database and the modem controls groups [0x00,0x02,0x04] and responds to groups [0x01].

For me my keypad device is xx.74 in the logs and it says it controls [0xF3,0xF4,0xF5,0xF6]]. These values are what match my items file seen below:

Switch Ins_6Button1_A       "All Lights BTN A" (gAll_Lights, gIns_Buttons) {insteonplm="4B.5C.74:F00.00.15#keypadbuttonA,group=0xf3"}
Switch Ins_6Button1_B       "Girls Room BTN B" (gIns_Buttons)  {insteonplm="4B.5C.74:F00.00.15#keypadbuttonB,group=0xf4"}
Switch Ins_6Button1_C       "Kitchen BTN C" (gIns_Buttons) {insteonplm="4B.5C.74:F00.00.15#keypadbuttonC,group=0xf5"}
Switch Ins_6Button1_D       "Living Room BTN D" (gIns_Buttons) {insteonplm="4B.5C.74:F00.00.15#keypadbuttonD,group=0xf6"}

Can you look for this in your log file and post ?

I looked at your modem and keypad dump from the insteon terminal. I believe you have something not programmed correctly. Or only programmed the controller side and not the responder. Here is the commands I used from the quick setup section:
Quick Setup

Looking at your database dump:

>>> modem.getdb()
…
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 01 data: 00 00 00
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 03 data: 00 00 03
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 04 data: 00 00 04
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 05 data: 00 00 05
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 06 data: 00 00 06
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 07 data: 00 00 07
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 08 data: 00 00 08
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 09 data: 00 00 09
0000 KitchenTable 1D.F4.7F RESP 10100010 group: 0a data: 00 00 0a
0000 KitchenTable 1D.F4.7F CTRL 11100010 group: 01 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11100010 group: 13 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 group: 00 data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 **group: 0d** data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 **group: 0f** data: 01 1c 41
0000 KitchenTable 1D.F4.7F CTRL 11101010 **group: 10** data: 01 1c 41

The groups above should match in the keypad and I don’t see them. You could try these groups in your items file and see if you get something that functions. But my understanding is this group should match a responder group from the keypad.

OK - I did “establish a keypad controller/modem responder relationship”, but I missed the second set of addresponder/addcontroller settings to “get the keypad buttons to respond to the modem”.

However, if I understand what’s going on here, that would only have kept the buttons from responding to OH, not the other way around (since I did the first set). Anyway, I’ll give this a try when I get home today and see if it works.

BTW, if I have multiple keypads, do I need to set them to different groups when I do the second set of addresponder/addcontroller settings? In the first??

Thanks,
Bruce

Yes all groups need to be unique. So just keep incrementing by 1.

OK - I tried it and no dice. When I try to do the addResponderForButton I get the following:

>>> KitchenTable.addResponderForButton("33.C8.A6",0xf3,3)
getting db, be patient!
sent db query msg, incoming records:  1 1 2 2 3 4 5 5 6 7 8 8 9 10 10 10 11 12 13 14 15 16 17 18 18 19 19 19 19 20 20 21 21 22dbbuilder.done() is called
0fff 3D.7F.4F                       3D.7F.4F  CTRL  11101010 group: 01 ON LVL:   3 RMPRT:  28 BUTTON:   1
0ff7 modem                          33.C8.A6  RESP  10101010 group: 00 ON LVL:   0 RMPRT:  28 BUTTON:   1
0fef modem                          33.C8.A6  CTRL  11110010 group: 01 ON LVL:   3 RMPRT:  28 BUTTON:   1
0fe7 Island                         3B.40.DD  CTRL  11101010 group: 08 ON LVL:   3 RMPRT:  28 BUTTON:   8
database complete, analyzing...
0fdf Kitchen Ceiling                42.D0.39  CTRL  11101010 group: 08 ON LVL:   3 RMPRT:  28 BUTTON:   8
0fd7 modem                          33.C8.A6  RESP  10101010 group: 0d ON LVL: 255 RMPRT:  31 BUTTON:   1
0fcf modem                          33.C8.A6  RESP  10101010 group: 0d ON LVL: 255 RMPRT:  28 BUTTON:   8
reusing inactive record:0f67 modem                          33.C8.A6 (RESP) 00000010 group: 04 ON LVL:   3 RMPRT:  28 BUTTON:   4
0fc7 Island                         3B.40.DD  CTRL  11101010 group: 02 ON LVL:   3 RMPRT:  28 BUTTON:   2
0fbf modem                          33.C8.A6  RESP  10101010 group: 0f ON LVL: 255 RMPRT:  28 BUTTON:   2
0fb7 Island                         3B.40.DD  RESP  10101010 group: 01 ON LVL: 255 RMPRT:  28 BUTTON:   2
0faf Kitchen Ceiling                42.D0.39  RESP  10101010 group: 01 ON LVL: 255 RMPRT:  28 BUTTON:   3
0fa7 Kitchen Ceiling                42.D0.39  CTRL  11101010 group: 03 ON LVL:   3 RMPRT:  28 BUTTON:   3
0f9f modem                          33.C8.A6  RESP  10101010 group: 10 ON LVL: 255 RMPRT:  28 BUTTON:   3
0f97 modem                          33.C8.A6  RESP  10101010 group: 0d ON LVL: 255 RMPRT:  28 BUTTON:   2
0f8f modem                          33.C8.A6  RESP  10101010 group: 0d ON LVL: 255 RMPRT:  28 BUTTON:   3
0f87 Cabinet Lights                 48.73.0E  RESP  10101010 group: 01 ON LVL: 255 RMPRT:  28 BUTTON:   4
sent msg: OUT:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x02|userData3:0x0F|userData4:0x67|userData5:0x08|userData6:0xA2|userData7:0xF3|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x03|userData14:0xF9|
0f7f Cabinet Lights                 48.73.0E  CTRL  11101010 group: 04 ON LVL:   3 RMPRT:  28 BUTTON:   4
0f77 modem                          33.C8.A6  RESP  10101010 group: 13 ON LVL: 255 RMPRT:  28 BUTTON:   4
0f6f modem                          33.C8.A6  RESP  10101010 group: 01 ON LVL: 255 RMPRT:  28 BUTTON:   1
0f67 modem                          33.C8.A6 (RESP) 00000010 group: 04 ON LVL:   3 RMPRT:  28 BUTTON:   4
0f5f modem                          33.C8.A6  CTRL  11101010 group: 05 ON LVL:   3 RMPRT:  28 BUTTON:   5
0f57 00.00.00                       00.00.00 (STOP) 00000000 group: 00 ON LVL:   0 RMPRT:   0 BUTTON:   0
got set record got no reply!
link record added!

As you can see, nothing listed is showing 0xf3 as the group. And I get a “sent msg” in the middle of the db output for some reason. I have debugging turned on, and here is what I see in the insteon-terminal log when I execute this command:

23:49:56.056 [Thread-6] DEBUG us.pfrommer.insteon.msg.IOPort - Msg written: OUT:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|
23:49:56.382 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|ACK/NACK:0x06|
23:49:57.387 [Thread-5] WARN  us.pfrommer.insteon.msg.MsgReader - got unknown command code 1D

The

0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 01 data: 00 00 00
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 03 data: 00 00 03
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 04 data: 00 00 04
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 05 data: 00 00 05
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 06 data: 00 00 06
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 07 data: 00 00 07
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 08 data: 00 00 08
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 09 data: 00 00 09
0000 KitchenTable                   1D.F4.7F  RESP  10100010 group: 0a data: 00 00 0a
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: 01 data: 01 1c 41
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f3 data: 00 00 f3
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f4 data: 00 00 f4
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f5 data: 00 00 f5
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f6 data: 00 00 f6
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f7 data: 00 00 f7
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f8 data: 00 00 f8
0000 KitchenTable                   1D.F4.7F  CTRL  11100010 group: f9 data: 00 00 f9
0000 KitchenTable                   1D.F4.7F  CTRL  11101010 group: 0d data: 01 1c 41
0000 KitchenTable                   1D.F4.7F  CTRL  11101010 group: 0f data: 01 1c 41
0000 KitchenTable                   1D.F4.7F  CTRL  11101010 group: 10 data: 01 1c 41
0000 KitchenTable                   1D.F4.7F  CTRL  11101010 group: 13 data: 01 1c 41
0000 KitchenTable                   1D.F4.7F  CTRL  11101011 group: 00 data: 01 1c 41

So the modem is acting as a controller for groups 0xf3 through 0xf9 (the groups the buttons are supposed to respond to if only the AddResponderForButton commands were working) and a responder for groups 1-9 (also for group 10 i.e. a0 - not sure if that’s an issue). Note the other groups in the keypads db are for other scenes programmed into the keypad in the past.

Also note that every once in a while I get something like this:

KitchenTable.addResponderForButton("33.C8.A6",0xf3,3)
getting db, be patient!
sent db query msg, incoming records:  did not get full database, giving up!
database incomplete, reload() and retry!

If I do a KitchenTable.readdb() this seems to fix this problem for a while, but it will come back.

Oh and as far as OpenHAB’s log goes, here is what I get for the keypad in question when it starts up (or re-reads the insteonplm.items file):

device 1D.F4.7F found in the modem database and the modem controls groups [0x00,0x0D,0x0F,0x10] and responds to groups [0x01].

Any thoughts?

Thanks,
Bruce

Yikes!

I just tried to do KitchenTable.addResponderForButton("33.C8.A6",0xf7,7) thinking it might work better for a button that wasn’t already linked to a scene. I got the same result in the terminal window, but the debug log went nuts:

23:49:56.056 [Thread-6] DEBUG us.pfrommer.insteon.msg.IOPort - Msg written: OUT:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|
23:49:56.382 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|ACK/NACK:0x06|
23:49:57.387 [Thread-5] WARN  us.pfrommer.insteon.msg.MsgReader - got unknown command code 1D
23:57:13.962 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x7F|Command2:0x02|ACK/NACK:0x06|
23:57:25.483 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x7F|Command2:0x00|ACK/NACK:0x06|
23:58:39.614 [Thread-6] DEBUG us.pfrommer.insteon.msg.IOPort - Msg written: OUT:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|
23:58:39.740 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0xD1|ACK/NACK:0x06|
23:58:40.745 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x50|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x2B=ACK_OF_DIRECT:3:2|command1:0x2F|command2:0x00|
23:58:40.746 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xFF|userData5:0x00|userData6:0xEA|userData7:0x01|userData8:0x3D|userData9:0x7F|userData10:0x4F|userData11:0x03|userData12:0x1C|userData13:0x01|userData14:0xAC|
23:58:41.768 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xF7|userData5:0x00|userData6:0xAA|userData7:0x00|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x00|userData12:0x1C|userData13:0x01|userData14:0x62|
23:58:41.778 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xEF|userData5:0x00|userData6:0xF2|userData7:0x01|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x01|userData14:0x1E|
23:58:41.789 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xE7|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x69|
23:58:42.752 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xE7|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x69|
23:58:43.956 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xE7|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x69|
23:58:44.962 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xE7|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x69|
23:58:45.967 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xE7|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x69|
23:58:46.970 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xDF|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x42|userData9:0xD0|userData10:0x39|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x7E|
23:58:47.973 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xDF|userData5:0x00|userData6:0xEA|userData7:0x08|userData8:0x42|userData9:0xD0|userData10:0x39|userData11:0x03|userData12:0x1C|userData13:0x08|userData14:0x7E|
23:58:47.977 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xD7|userData5:0x00|userData6:0xAA|userData7:0x0D|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1F|userData13:0x01|userData14:0x73|
23:58:49.980 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xCF|userData5:0x00|userData6:0xAA|userData7:0x0D|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x08|userData14:0x77|
23:58:50.983 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xCF|userData5:0x00|userData6:0xAA|userData7:0x0D|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x08|userData14:0x77|
23:58:50.988 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xC7|userData5:0x00|userData6:0xEA|userData7:0x02|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x02|userData14:0x95|
23:58:51.986 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xC7|userData5:0x00|userData6:0xEA|userData7:0x02|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x02|userData14:0x95|
23:58:53.193 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xC7|userData5:0x00|userData6:0xEA|userData7:0x02|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0x03|userData12:0x1C|userData13:0x02|userData14:0x95|
23:58:54.196 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xBF|userData5:0x00|userData6:0xAA|userData7:0x0F|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x02|userData14:0x8B|
23:58:55.199 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xBF|userData5:0x00|userData6:0xAA|userData7:0x0F|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x02|userData14:0x8B|
23:58:56.202 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xBF|userData5:0x00|userData6:0xAA|userData7:0x0F|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x02|userData14:0x8B|
23:58:56.205 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xB7|userData5:0x00|userData6:0xAA|userData7:0x01|userData8:0x3B|userData9:0x40|userData10:0xDD|userData11:0xFF|userData12:0x1C|userData13:0x02|userData14:0xEA|
23:58:57.205 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xAF|userData5:0x00|userData6:0xAA|userData7:0x01|userData8:0x42|userData9:0xD0|userData10:0x39|userData11:0xFF|userData12:0x1C|userData13:0x03|userData14:0xFE|
23:58:57.211 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xA7|userData5:0x00|userData6:0xEA|userData7:0x03|userData8:0x42|userData9:0xD0|userData10:0x39|userData11:0x03|userData12:0x1C|userData13:0x03|userData14:0xC0|
23:58:58.209 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0xA7|userData5:0x00|userData6:0xEA|userData7:0x03|userData8:0x42|userData9:0xD0|userData10:0x39|userData11:0x03|userData12:0x1C|userData13:0x03|userData14:0xC0|
23:58:59.213 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x9F|userData5:0x00|userData6:0xAA|userData7:0x10|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x03|userData14:0xA9|
23:59:00.216 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x9F|userData5:0x00|userData6:0xAA|userData7:0x10|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x03|userData14:0xA9|
23:59:01.219 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x9F|userData5:0x00|userData6:0xAA|userData7:0x10|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x03|userData14:0xA9|
23:59:02.223 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x97|userData5:0x00|userData6:0xAA|userData7:0x0D|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x02|userData14:0xB5|
23:59:02.231 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x8F|userData5:0x00|userData6:0xAA|userData7:0x0D|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x03|userData14:0xBC|
23:59:03.226 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x87|userData5:0x00|userData6:0xAA|userData7:0x01|userData8:0x48|userData9:0x73|userData10:0x0E|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xA7|
23:59:03.229 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x7F|userData5:0x00|userData6:0xEA|userData7:0x04|userData8:0x48|userData9:0x73|userData10:0x0E|userData11:0x03|userData12:0x1C|userData13:0x04|userData14:0x68|
23:59:04.232 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x7F|userData5:0x00|userData6:0xEA|userData7:0x04|userData8:0x48|userData9:0x73|userData10:0x0E|userData11:0x03|userData12:0x1C|userData13:0x04|userData14:0x68|
23:59:04.235 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x77|userData5:0x00|userData6:0xAA|userData7:0x13|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xCD|
23:59:05.235 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x77|userData5:0x00|userData6:0xAA|userData7:0x13|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xCD|
23:59:06.240 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x77|userData5:0x00|userData6:0xAA|userData7:0x13|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xCD|
23:59:07.244 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x77|userData5:0x00|userData6:0xAA|userData7:0x13|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xCD|
23:59:08.449 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x77|userData5:0x00|userData6:0xAA|userData7:0x13|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x04|userData14:0xCD|
23:59:09.452 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x6F|userData5:0x00|userData6:0xAA|userData7:0x01|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x01|userData14:0xEA|
23:59:10.657 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x6F|userData5:0x00|userData6:0xAA|userData7:0x01|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0xFF|userData12:0x1C|userData13:0x01|userData14:0xEA|
23:59:10.661 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x67|userData5:0x00|userData6:0x02|userData7:0x04|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x04|userData14:0x90|
23:59:11.660 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x67|userData5:0x00|userData6:0x02|userData7:0x04|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x04|userData14:0x90|
23:59:12.668 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x17=DIRECT:3:1|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x67|userData5:0x00|userData6:0x02|userData7:0x04|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x04|userData14:0x90|
23:59:13.672 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x11=DIRECT:1:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x5F|userData5:0x00|userData6:0xEA|userData7:0x05|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x05|userData14:0xAE|
23:59:14.676 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x51|fromAddress:1D.F4.7F|toAddress:33.C8.A6|messageFlags:0x12=DIRECT:2:0|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x01|userData3:0x0F|userData4:0x5F|userData5:0x00|userData6:0xEA|userData7:0x05|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x05|userData14:0xAE|

... (had to delete some becuase the message was too long)...

00:01:43.670 [Thread-5] DEBUG us.pfrommer.insteon.msg.IOPort - Msg received: IN:Cmd:0x62|toAddress:1D.F4.7F|messageFlags:0x1F=DIRECT:3:3|command1:0x2F|command2:0x00|userData1:0x00|userData2:0x02|userData3:0x0F|userData4:0x67|userData5:0x08|userData6:0xA2|userData7:0xF7|userData8:0x33|userData9:0xC8|userData10:0xA6|userData11:0x03|userData12:0x1C|userData13:0x07|userData14:0xF1|ACK/NACK:0x06|
00:01:43.687 [Thread-5] WARN  us.pfrommer.insteon.msg.MsgReader - got unknown command code 1D

Yikes!

Bruce

Seeing this tells me it’s programmed incorrect, assuming the other groups are f3-f 9.

I believe now is the time to reset the keypad and start ove r. I would reset the modem also if it were me.

Once reset then follow the commands in the quick setup. I pasted them into a text editor and did a replace on the addresses to mine.

One last tip, shutdown openhab w hen using insteo n terminal. I read this somewhere as a best pra ctice.

I would also not use the insteo n app for programming and/or pairing of you are using terminal. I had some intermittent troubles with the app and openhab. These are lesson learned. After things are working with terminal you can work with ap p if you like.

OK - if I reset the keypad and modem, I’ll need to reset the other insteon devices that are used as responders and/or controllers in the system as well right? Should I reset with the insteon terminal (nukeDB()) or should I do a hard factory reset on everything using the buttons?

Once I do this, should I do all of my scenes through openHAB, or should I program them using insteon terminal? For example, button B on the keypad now turns on the lights over the kitchen Island. Can I accomplish that through insteon terminal, or should I have openHAB do it? In either case, how can I set different ramp rates for scenes?

Thanks for the help,

Bruce

Something just came to mind even for a problem I had. When you use scenes created in the app you have to use the broadcastonoff command.

Switch  BlackLamp_broadcastOnOff "Living Room Group on/off" { insteonplm="3C.14.EF:0x000045#broadcastonoff,group=2"}

This was in the other thread I sent you. As far as how to create scenes in the terminal that is also in the thread. I believe as long as you use the broadcast on off command creating scenes in the app is ok. I have not figured out how to get the status of the keypad except to use insteon terminal and create the groups.

I am not sure if yo have to factory reset other items. I know if you factory reset the modem, the others will be gone anyway. So you will definitely have some type of re-pairing to do. I don’t think it matters if yo use nukedb or factory reset, I believe the result is still the same. It seemed to be for me.

So summarizing. If you create a scene in the insteon app and link it to a button. This should function, however if you want to control that scene with openhab you need to control with the boardcastonoff command. Doing this would not allow you to track the keypad button status as far as I know though. That is unless someone on the forum has a trick up their sleeve.

ok - I’ll try that as a short term fix, but it sounds like I still will need to melt and re-pour if I want the buttons to be tracked, etc.

I don’t see any thread that you sent me - just a link to the github page on insteon-terminal. Could you send me a link to the thread you’re thinking about?

Thanks,

Bruce

Here you go. Sorry thought I attached: Insteon Hub slow? Your thoughts

OK - maybe getting closer, but not all the way there. I switched to a different keypad that I was OK factory resetting. I went through all the instructions and have:

>>> TheaterKeypad.getdb()
getting db, be patient!
sent db query msg, incoming records:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17dbbuilder.done() is called
0fff modem                          33.C8.A6  RESP  10101010 group: 01 ON LVL: 254 RMPRT:  28 BUTTON:   1
0ff7 modem                          33.C8.A6  CTRL  11100010 group: 01 ON LVL:   3 RMPRT:  28 BUTTON:   1
0fef modem                          33.C8.A6  CTRL  11100010 group: 03 ON LVL:   3 RMPRT:  28 BUTTON:   3
0fe7 modem                          33.C8.A6  CTRL  11100010 group: 04 ON LVL:   3 RMPRT:  28 BUTTON:   4
0fdf modem                          33.C8.A6  CTRL  11100010 group: 05 ON LVL:   3 RMPRT:  28 BUTTON:   5
0fd7 modem                          33.C8.A6  CTRL  11100010 group: 06 ON LVL:   3 RMPRT:  28 BUTTON:   6
0fcf modem                          33.C8.A6  CTRL  11100010 group: 07 ON LVL:   3 RMPRT:  28 BUTTON:   7
0fc7 modem                          33.C8.A6  CTRL  11100010 group: 08 ON LVL:   3 RMPRT:  28 BUTTON:   8
0fbf modem                          33.C8.A6  RESP  10100010 group: a2 ON LVL:   3 RMPRT:  28 BUTTON:   2
0fb7 modem                          33.C8.A6  CTRL  11100010 group: 02 ON LVL:   3 RMPRT:  28 BUTTON:   2
0faf modem                          33.C8.A6  RESP  10100010 group: a3 ON LVL:   3 RMPRT:  28 BUTTON:   3
0fa7 modem                          33.C8.A6  RESP  10100010 group: a4 ON LVL:   3 RMPRT:  28 BUTTON:   4
0f9f modem                          33.C8.A6  RESP  10100010 group: a5 ON LVL:   3 RMPRT:  28 BUTTON:   5
0f97 modem                          33.C8.A6  RESP  10100010 group: a6 ON LVL:   3 RMPRT:  28 BUTTON:   6
0f8f modem                          33.C8.A6  RESP  10100010 group: a7 ON LVL:   3 RMPRT:  28 BUTTON:   7
0f87 modem                          33.C8.A6  RESP  10100010 group: a8 ON LVL:   3 RMPRT:  28 BUTTON:   8
0f7f 00.00.00                       00.00.00 (STOP) 00000000 group: 00 ON LVL:   0 RMPRT:   0 BUTTON:   0
>>> modem.getdb()
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 01 data: 00 00 00
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 02 data: 00 00 02
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 03 data: 00 00 03
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 04 data: 00 00 04
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 05 data: 00 00 05
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 06 data: 00 00 06
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 07 data: 00 00 07
0000 TheaterKeypad                  3D.7F.4F  RESP  10100010 group: 08 data: 00 00 08
**0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: 00 data: 01 41 45**
**0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: 01 data: 01 41 45**
**0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: 03 data: 01 41 45**
**0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: 08 data: 01 41 45**
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a2 data: 00 00 a2
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a3 data: 00 00 a3
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a4 data: 00 00 a4
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a5 data: 00 00 a5
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a6 data: 00 00 a6
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a7 data: 00 00 a7
0000 TheaterKeypad                  3D.7F.4F  CTRL  11100010 group: a8 data: 00 00 a8

The lines with the ** at the start are related to scenes that were pre-defined in the hub before I factory reset the keypad - they are still there…

I have two sets of definitions in my items file (one for the button “state” and one for the button broadcast group).

// Theater
Dimmer TheaterKeypad "Theater Sconces" {insteonplm="3D.7F.4F:F00.00.16#loaddimmer"}

        Switch TheaterKeypadB    "Theater Keypad B[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonB,group=0x02"}
        Switch TheaterKeypadC    "Theater Keypad C[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonC,group=0x03"}
        Switch TheaterKeypadD    "Theater Keypad D[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonD,group=0x04"}
        Switch TheaterKeypadE    "Theater Keypad E[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonE,group=0x05"}
        Switch TheaterKeypadF    "Theater Keypad F[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonF,group=0x06"}
        Switch TheaterKeypadG    "Theater Keypad G[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonG,group=0x07"}
        Switch TheaterKeypadH    "Theater Keypad H[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonH,group=0x08"}

        Switch TheaterKeypadBset    "Theater Keypad B[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonB,group=0xa2"}
        Switch TheaterKeypadCset    "Theater Keypad C[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonC,group=0xa3"}
        Switch TheaterKeypadDset    "Theater Keypad D[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonD,group=0xa4"}
        Switch TheaterKeypadEset    "Theater Keypad E[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonE,group=0xa5"}
        Switch TheaterKeypadFset    "Theater Keypad F[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonF,group=0xa6"}
        Switch TheaterKeypadGset    "Theater Keypad G[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonG,group=0xa7"}
        Switch TheaterKeypadHset    "Theater Keypad H[%d %%]"    {insteonplm="1D.F4.7F:F00.00.16#keypadbuttonH,group=0xa8"}

If I use the “set” versions, I can programatically turn the buttons on and off via OpenHAB. However, if I set up a rule to catch a change to one of the buttons (using either the standard or the “set” version of the item), it never executes. Interestingly enough, if I turn on the main load at the keypad, OpenHAB does see that and can spawn a rule. Here are the examples for my rules:

rule "Theater Keypad Button D set"
    when Item TheaterKeypadDset received update
then
        logWarn("myLog", "TheaterKeypadDset pressed")
        Echo_BasementFR_TTS.sendCommand('You set Movie Keypad button D')
end
rule "Theater Keypad Button D"
    when Item TheaterKeypadD received update
then
        logWarn("myLog", "TheaterKeypadD pressed")
        Echo_BasementFR_TTS.sendCommand('You pressed Movie Keypad button D')
end
rule "Theater Sconces"
    when Item TheaterKeypad received update
then
        logWarn("myLog", "Theater Sconces turned off or no")
        Echo_BasementFR_TTS.sendCommand('You just turned the movie sconces on or off')
end

I can’t figure out why it isn’t seeing the press of the other buttons. Any thoughts?

Thanks for the help so far - we’ve made significant progress…

Bruce

Try seeing if the rules fire with “when button changed”. Vs received update. That works for me.

On your two sets of items one has groups 02-08 the other a2 - a8? Is one set the app and the other insteon terminal ?

Interestingly enough, the buttons on the other keypad that I started with began responding this morning: when my wife went down and turned on a light, my echo said “You have pressed button D”, which is in my rules for that keypad. But the new keypad still doesn’t respond. I’m confused, but I’ll try changing the rule to changed instead of update.

That’s straight from the insteon terminal documentation - one set of links so that the modem knows the button was pressed (2-8) , and one set so that the modem can turn the buttons on and off (a2-a8). Note it took me a while to realize that the reason the instructions started with 0x03 was that it was a 6-button remote and so the top (“on”) button is really the first 2 buttons, so on the 8-button keypad, B is 0x02 as expected.

I’ll let you know what happens.

Thanks for all the help!

Bruce

Thanks Bruce, I looked and I had those groups in mine also. The 02-06, I forgot because I don’t use them for anything. I only use the f3-f6 in items files.

I believe your address may be incorrect. Theater keypad is 3D.7F.4F correct? I get a little confused by the database dumps sometime, but I believe so.

It is interesting you had a rule fire, but the unexpected one. I had some of those issues when I first started. I realized, there is lots of info going in and out. I had to just slow down! On my first contact switch my items file didnt work, I factory reset the world. Only to come back to the same exact items file I originally had. So something was not setup properly in the app or ins terminal.

Lesson Learned for me: Put all the terminal commands in notepad, slow down, focus on only one device at a time. Do not use the insteon app until things work in openhab. This was my plan and it worked. Your path may be different as far as the app vs terminal. I do plan on spending a day and factory reset my devices and try using just the app to configure. I would like to see if its possible as the terminal is lots of typing and one typo can cause everything to be broken.

Lastly!! I clear my cache and restart with every change of my items file or rules file. I don’t care if it is necessary, I do it. I just don’t want to keep track of when yo u need to do this and when you don’t. To make it easy I put a file in my /bin folder with this line:

ostop  &&  rm -rf $OPENHAB_USERDATA/tmp/* && rm -rf $OPENHAB_USERDATA/cache/* && ostart && tail -f /var/log/openhab2/openhab.log

This restarts openhab, clears cache, and tails the log file after. (ostop and ostart are also files with the systemctl command to start and stop)

Wow! That was it - I copied over the settings from the kitchen keypad and forgot to change the address!

It looks like it’s all working now.

Thanks for the help!

Bruce

1 Like

OK - it all “works”, but the latency isn’t what I was hoping. I’m using the following rules:

var FrontTableUpdate = now
var latency = 15

rule "Front Table Lamp Changed to ON"
    when Item EntryKeypadD changed from OFF to ON
then
	if(FrontTableUpdate.isBefore(now.minusSeconds(latency))) {
		logInfo("KeypadRules", "Entry Keypad D Changed from OFF to ON")
		FrontTableUpdate=now
		FrontTableLamp_Brightness.sendCommand(100)
	} else {
		logInfo("KeypadRules", "Entry Keypad D Changed, but update was recent")
	}
end

rule "Front Table Lamp Chagned to OFF"
    when Item EntryKeypadD changed from ON to OFF
then
	if(FrontTableUpdate.isBefore(now.minusSeconds(latency))) {
		logInfo("KeypadRules", "Entry Keypad D Changed from ON to OFF")
		FrontTableUpdate=now
		FrontTableLamp_Brightness.sendCommand(0)
	} else {
		logInfo("KeypadRules", "Entry Keypad D Changed, but update was recent")
	}
end


rule "Front Table Lamp Button (Change from 0)"
	when Item FrontTableLamp_Brightness changed from 0
then
	if(FrontTableUpdate.isBefore(now.minusSeconds(latency))) {
        	logInfo("KeypadRules", "Front Table Lamp just turned on - turning on button too")
		FrontTableUpdate=now
		EntryKeypadDset.sendCommand(ON)
	} else {
		logInfo("KeypadRules", "Front Table Lamp changed, but update was recent")
	}
end


rule "Front Table Lamp Button (Change to 0)"
	when Item FrontTableLamp_Brightness changed to 0
then
	if(FrontTableUpdate.isBefore(now.minusSeconds(latency))) {
        	logInfo("KeypadRules", "Front Table Lamp just turned off - turning off button too")
		FrontTableUpdate=now
		EntryKeypadDset.sendCommand(OFF)
	} else {
		logInfo("KeypadRules", "Front Table Lamp changed, but update was recent")
	}
end

I’ve had to add a 15 second “wait” so that the opposing rule wouldn’t fire. However, it can take quite a long time for things to change (i.e. I can press the button and the light might not come on for another 10 seconds, or I can turn on the light and the button might not light up for another 10 seconds). Is there any way to speed this up, or is this just a result of the polling interval for both the hue bridge and the insteon hub?

Thanks,

Bruce