When adding responder, button number takes on identity of group number

55 views
Skip to first unread message

Dale Sheehan

unread,
Jan 19, 2020, 12:10:47 AM1/19/20
to insteon-terminal
Hello!

I fear I am missing something obvious, but I am at a loss here. Couldn't manage to find an explanation here or on the OpenHAB forum.

I am working on setting up a number of devices to be responders to a single group, so that with the USB PLM (via OpenHAB) I can control them all as a group. In its simplest application, this would be at All-Off application, but obviously has many uses to streamline control of groups of devices by the modem.
I am actually working with a little dev setup right now as a way of learning how to master the insteon terminal and openHAB control before rolling this out to my entire house. so the number of devices at play here are much less than the intended final product.

init.py
modem = Modem2413U("modem", "48.EE.D7")
kp8
= Keypad2487S("kp8", "4C.7D.B6")
kp6
= Keypad2487S("kp6", "49.f3.79")
switch = Dimmer2477D("switch", "52.80.36")
plug1
= Dimmer2477D("plug1", "3A.76.6D")
plug2
= Dimmer2477D("plug2", "47.30.00")


In my test, I am trying to make the main load of all 5 dimmer devices responders to the modem on group 101 (0x65) . To do this I used the following commands
kp8.addResponderForButton("48.EE.D7", 0x65, 1)
kp6
.addResponderForButton("48.EE.D7",  0x65, 1)
switch.addResponder("48.EE.D7", 0x65)
plug1
.addResponder("48.EE.D7", 0x65)
plug2
.addResponder("48.EE.D7", 0x65)


This works as expected on the keypads. I get the following in their dbs and they respond as expected with the "modem.sendOn(101)" command.
kp8:
0f3f modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL:   3 RMPRT:  28 BUTTON:   1
kp6:
0f97 modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL:   3 RMPRT:  28 BUTTON:   1


However, the dimmer switch and the two plug in dimmers do not respond, and upon looking at their dbs, I see the following:
switch:
0f0fdf modem                          48.EE.D7 (RESP) 00100010 group: 65 ON LVL:   0 RMPRT:   0 BUTTON: 101
plug1:        
0fcf modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL:   0 RMPRT:   0 BUTTON: 101
plug2:
0fcf modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL:   0 RMPRT:   0 BUTTON: 101

Note that each added the responder to group 0x65, but that entry also assigned it to BUTTON: 101
Furthermore, when when I try to remove this, such as with "switch.removeResponder("48.EE.D7", 0x65)", it returns: "no matching found record, no action taken!"


I read here that the link data part of "addController(addr, group[, data])" is not related to button number and has default values assigned already.

What am I doing wrong here?

Thank you kindly for any wisdome anyone can lend.

Dale

Dale Sheehan

unread,
Jan 19, 2020, 2:18:38 PM1/19/20
to insteon-terminal
Woke up this morning determined to figure this out as the master plan for the house depends on it, and it seems to be basic Insteon group strategy. I must be doing it wrong...
Well, happily, I found a work around, but it begs a question (at the end).

First, I used ".removeLastRecord()" to get rid of the erroneous entries that wouldnt go away with ".removeResponder".

WORK AROUND:
Then, I changed switch to a keypad device in init.py
switch = Keypad2487S("switch", "52.80.36")

Then sent this command
switch.addResponderForButton("48.EE.D7", 0x65, 1)

This worked and resulted in:
0fdf modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL:   3 RMPRT:  28 BUTTON:   1
It now responds to the modem with the rest of the group. But as you can see the Lvl is set to 3. Actually, I now realize that even the keypad loads were set to Lvl 3. (This is the trouble with working with a dev devices that are not connected to loads.)

To remedy this I simply used
device.setOnLevelResponder("48.EE.D7", 0x65, 255, ramprate = 28, button = 1)

final switch db entry in the switch:
0fdf modem                          48.EE.D7  RESP  10100010 group: 65 ON LVL: 255 RMPRT:  28 BUTTON:   1


So, while this nifty work around works just fine, I am curious.
1. Am I using Insteon Terminal incorrectly when I have the dimmer configured as a Dimmer2477D?
2. Or, is there an issue in how this is being handled by Insteon Terminal?

Sadly I am not savvy enough to figure this out on my own.

:-)

Dale

Bernd Pfrommer

unread,
Jan 20, 2020, 5:04:23 PM1/20/20
to insteon-terminal
Dale,
I'm not quite sure what went wrong when you did the "addResponder" on the switch, but something is amiss:

0f0fdf modem                          48.EE.D7 (RESP) 00100010 group: 65 ON LVL:   0 RMPRT:   0 BUTTON: 101


The fact that it says (RESP) and not RESP means that the record entry is there, but it's marked as deleted. That's how the device databases work: rather than moving all following entries by one slot upon delete, the line is marked invalid. Next time you add a device, it will grab the slot marked as "deleted". So much about that.

The other issue of "doesn't respond" (for the plugs): could it be the level set to zero? In that case the devices will respond to a group message... by setting the load to zero. Probably not what you want. But your second post indicates that you probably already figured that one out.


Dale Sheehan

unread,
Jan 20, 2020, 5:20:53 PM1/20/20
to insteon-terminal
ah, good to know what the () around RESP mean.
Actually, it seems I copied the wrong line out of my terminal when creating this post. It was a proper RESP entry until I tried to remove the entry with removeResponder. That is when the db entry became (RESP). So I guess it did delete after all, I just didn't know what the () meant.
Sorry for the confusion.

the plugs and paddle switch would not respond at all until I fixed the button 101 issue by treating them like keypads to use the addResponderForButton command so that the RESP was assigned to Button 1.

another data point:
after I had this inital issue, I moved my modem over from my RasPi to my Macbook pro on a fresh install of Insteon Terminal and verified that the addResponder function was creating records for Button 101 there too.
I didn't try any other group numbers though. only 0x65 / 101

Dale

Dale Sheehan

unread,
Jan 20, 2020, 10:09:09 PM1/20/20
to insteon-terminal
Eureka! 

Bernd, I didn't look close enough after your reply. as you said, the level was set to 0, not to 3 at it was when adding to the keypads.
So, to test your theory, I again used addResponder to add switch to group 102. result:
0fcf modem                          48.EE.D7  RESP  10100010 group: 66 ON LVL:   0 RMPRT:   0 BUTTON: 102

Again, it results in the button assignment matching the group. but, ignoring that, I sent:
switch.setOnLevelResponder("48.EE.D7", 0x66, 255, ramprate = 28, button = 1)

remarkably, the result in the switch db is:
0fcf modem                          48.EE.D7  RESP  10100010 group: 66 ON LVL: 255 RMPRT:  28 BUTTON:   1
The button number is now shown as 1, and it responds to the group commands!

Maybe Insteon Terminal showing the button number same as the group is a bug in the terminal?

so I tested this on plug1:
cmd:
>>> plug1.addResponder("48.EE.D7", 0x66)
result:
0fbf modem                          48.EE.D7  RESP  10100010 group: 66 ON LVL:   0 RMPRT:   0 BUTTON: 102
cmd:
>>> plug1.setOnLevelResponder("48.EE.D7", 0x66, 255, ramprate = 28, button = 102)
result:
0fbf modem                          48.EE.D7  RESP  10100010 group: 66 ON LVL: 255 RMPRT:  28 BUTTON: 102

The button remains listed as 102. HOWEVER, the plug still responds correctly to the group 102 commands.

CONCLUSION: It seems that the button being listed as the same number as the group is at most a superfluous error in the database, and has no impact on function.

Thank you Bernd for pointing our the obvious issue :-)
I needed that

Dale
Reply all
Reply to author
Forward
0 new messages