InsteonPLM advanced feature (status LED brightness)

This is probably directed to @Bernd_Pfrommer, but anyone can reply.

One of the things that would greatly help the WAF for insteon devices would be the ability to set the status LED brightness of the switches and dimmers. ISY, the Insteon hub, Homelinc, etc are able to do this from software. Has this ever been looked into? What would it take?

Also, I did some searching and came across this:

Insteon Command LIst

I think I hacked this into the insteon terminal. Can you file this as an issue again the openhab github repository. Mark as feature request. Not sure when I will get to it.

done. Thank you. https://github.com/openhab/openhab/issues/4723

That could be cool. I’d like to change their brightnesses based on time of day.

I could not see how to do this with insteon terminal, I have 135 insteon devices and I am trying to get them to have a consistent settings:

Ramp Rate 0.5 Seconds
LED Brightness 50%
Beep on Button Press OFF
Local Programming Lock ON
Blink on Insteon Traffic OFF

I would do this with the lame iphone insteon app, but it keeps crashing on me.

Nathan,
There is a method setLEDBrightness() in the insteon terminal. Ramp rate on/off can also be set. Don’t think programming lock and blinking are implemented yet.
Will see if I can spare a few hours tonight to work on openhab. I have been pushing out the LED brightness feature request for quite a while now.

Wasted an hour trying to figure out how to get the LED brightness implemented for my switchlinc 2477S devices. Couldn’t find any developer documentation for them! The commands for the keypad seem to work, sort of.

What devices do you have? Maybe not all 135 have light level.

I got rid of some insteon devices and replaced them with z-wave. I am now down to two devices, 107 2477D and 10 2466SWs.

@Bernd_Pfrommer,

Are you working on implementing this into the PLM binding or the Terminal? I’d love to be able to change brightness of devices from within openHAB!

I want to implement it in both, eventually. Probably first InsteonTerminal.

Hi @Bernd_Pfrommer,

Wanted to let yo know, I conformed this morning that the “setLEDBrightness(level)” command from insteon-terminal worked to set the status led brightness on my 2477D dimmer.

I noted that from the help(myswitch) command the setLEDBrightness() command us supposed to take brightness levels from 0x11 -> 0x7f, but those min/max levels didn’t turn mine all fhe way off/bright. Mine accepted 0x00->0xFF.

Something seems to be working for my 2477S and 2477D.

If you have a look at the last commit to the “master” branch of my repo
https://github.com/berndpfrommer/openhab/tree/master, you can see that there are no changes to the source code necessary, just to the xml files.

Here is a jar file that has the changes. It should work as drop-in for OH2 and OH 1.8: https://drive.google.com/open?id=0B8OtzwATWQSWNjY2RlVDV2xucXM

This would be the necessary items file entry:

`Number kitchenChandelierLED           "kitchen chandelier led" {insteonplm="20.a4.43:F00.00.01#ledbrightness"}`

Then this into your sitemap file:

`Switch item=kitchenChandelierLED  label="led brightness " mappings=[ 0="OFF",  64="MID", 127="BRIGHT"]`

I haven’t quite figured out what numbers to feed in to get the right brightness. 255 gives me dark, I suspect the range is 0-127, but not sure.

Oh, and the response is not like when you flip a switch. It sometimes doesn’t work at all, the device simply doesn’t respond. Send a couple messages and hope the best, eventually it happens.

Note that the LED brightness is also polled, so over time it should give you the actual LED brightness level. Again, just like for setting brightness, the polling is very unreliable.

Hi @Bernd_Pfrommer

I put those newly defined devices and features into my more_devices.xml and more_features.xml files and confirm that they work for my 2477D switches!! For me it works every time with no failures - perfect!

On the addition of the ramp rate feature, does this set the local ramp rate of the device? Do you set it as a number like you do now for LED brightness?

I tried adding in the same definition for my keypadLinc, but no love on the LED Brightness:

    <device productKey="F00.00.15">
     <model>2334-232</model>
     <description>Keypad Dimmer Switch, 6-Button </description>
     <feature name="loaddimmer">LoadDimmerButton</feature>
     <feature name="rampdimmer">LoadDimmerRamp</feature>
     <feature name="manualchange">ManualChange</feature>
     <feature name="fastonoff">LoadDimmerFastOnOff</feature>
     <feature_group name="button_group" type="KeyPadButtonGroup">
     	<feature name="keypadbuttonA">KeyPadButton3</feature>
     	<feature name="keypadbuttonB">KeyPadButton4</feature>
     	<feature name="keypadbuttonC">KeyPadButton5</feature>
     	<feature name="keypadbuttonD">KeyPadButton6</feature>
     </feature_group>
     <feature_group name="ext_group" type="ExtStatusGroup">
     	<feature name="ledbrightness">LEDBrightness</feature>
		<feature name="ramprate">RampRate</feature>
     </feature_group>
     <feature name="lastheardfrom">GenericLastTime</feature>
 </device>

Here is a bit of my log from right after I attempted to change the LED brightness on the keypad linc:

2017-04-30 09:26:36 INFO o.o.b.i.InsteonPLMActiveBinding[:121]- Item: masterBedLED got command 127
2017-04-30 09:26:36 DEBUG o.o.b.i.i.device.InsteonDevice[:241]- processing command 127 features: 13
2017-04-30 09:26:36 INFO o.o.b.i.i.d.CommandHandler[:771]- NumberCommandHandler: sent msg to change level to 127
2017-04-30 09:26:36 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: LEDBrightness(1:1:2) OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x07|userData3:0x7F|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0x4B|
2017-04-30 09:26:36 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 2000 msec, quiettime = 2000
2017-04-30 09:26:36 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x07|userData3:0x7F|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0x4B|
2017-04-30 09:26:37 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-04-30 09:26:37 DEBUG o.o.b.i.i.d.MessageDispatcher[:149]- 28.A4.22:LEDBrightness DIRECT_ACK: q:QUERY_PENDING cmd: 80
2017-04-30 09:26:37 DEBUG o.o.b.i.i.d.MessageDispatcher[:154]- changing key to 0x19 for msg IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-04-30 09:26:37 DEBUG o.o.b.i.i.d.MessageDispatcher[:176]- defdisp: 28.A4.22:LEDBrightness set status to: QUERY_ANSWERED
2017-04-30 09:26:37 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:37
2017-04-30 09:26:37 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x23=ACK_OF_DIRECT:3:0|command1:0x2E|command2:0x00|
2017-04-30 09:26:37 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:37

2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: KeyPadButtonGroup(0:0:0) OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x01|
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 2048 msec, quiettime = 500
2017-04-30 09:26:38 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x01|

2017-04-30 09:26:38 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x00|command2:0xC0|
2017-04-30 09:26:38 DEBUG o.o.b.i.i.d.MessageDispatcher[:214]- 28.A4.22:KeyPadButtonGroup qs:QUERY_PENDING cmd: 80
2017-04-30 09:26:38 DEBUG o.o.b.i.i.d.MessageDispatcher[:219]- changing key to 0x19 for msg IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x00|command2:0xC0|
2017-04-30 09:26:38 INFO o.o.b.i.i.d.MessageHandler[:510]- SwitchRequestReplyHandler: dev 28.A4.22 button 3 switched to OFF
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:KeyPadButton3 publishing: OFF
2017-04-30 09:26:38 INFO o.o.b.i.i.d.MessageHandler[:510]- SwitchRequestReplyHandler: dev 28.A4.22 button 4 switched to OFF
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:KeyPadButton4 publishing: OFF
2017-04-30 09:26:38 INFO o.o.b.i.i.d.MessageHandler[:510]- SwitchRequestReplyHandler: dev 28.A4.22 button 5 switched to OFF
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:KeyPadButton5 publishing: OFF
2017-04-30 09:26:38 INFO o.o.b.i.i.d.MessageHandler[:510]- SwitchRequestReplyHandler: dev 28.A4.22 button 6 switched to OFF
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:KeyPadButton6 publishing: OFF
2017-04-30 09:26:38 DEBUG o.o.b.i.i.d.MessageDispatcher[:244]- 28.A4.22:KeyPadButtonGroup set status to: QUERY_ANSWERED
2017-04-30 09:26:38 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:38
2017-04-30 09:26:40 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: LoadDimmerButton(1:2:8) OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x00|
2017-04-30 09:26:40 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 1499 msec, quiettime = 500
2017-04-30 09:26:40 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x00|
2017-04-30 09:26:40 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x00|command2:0x00|
2017-04-30 09:26:40 DEBUG o.o.b.i.i.d.MessageDispatcher[:149]- 28.A4.22:LoadDimmerButton DIRECT_ACK: q:QUERY_PENDING cmd: 80
2017-04-30 09:26:40 DEBUG o.o.b.i.i.d.MessageDispatcher[:154]- changing key to 0x19 for msg IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x00|command2:0x00|
2017-04-30 09:26:40 INFO o.o.b.i.i.d.MessageHandler[:578]- DimmerRequestReplyHandler: set device 28.A4.22 to level 0
2017-04-30 09:26:40 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:LoadDimmerButton publishing: 0
2017-04-30 09:26:40 DEBUG o.o.b.i.i.d.MessageDispatcher[:176]- defdisp: 28.A4.22:LoadDimmerButton set status to: QUERY_ANSWERED
2017-04-30 09:26:40 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:40
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: ExtStatusGroup(0:0:0) OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x9A|userData14:0x88|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 500 msec, quiettime = 500
2017-04-30 09:26:42 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:28.A4.22|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x9A|userData14:0x88|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.RequestQueueManager[:137]- device queue for 28.A4.22 is empty!
2017-04-30 09:26:42 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:269]- 28.A4.22:ExtStatusGroup got poll ACK
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:42
2017-04-30 09:26:42 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:KeyPadButton3->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:KeyPadButton6->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:KeyPadButton4->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:KeyPadButton5->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:LEDBrightness->NumberMsgHandler DIRECT
2017-04-30 09:26:42 ERROR o.o.b.i.i.d.MessageHandler[:998]- NumberMsgHandler handler misconfigured, missing low_byte!
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:LEDBrightness publishing: 0
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:234]- 28.A4.22:KeyPadButton3->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:234]- 28.A4.22:KeyPadButton4->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:234]- 28.A4.22:KeyPadButton5->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:234]- 28.A4.22:KeyPadButton6->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:LoadDimmerButton->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:LoadDimmerFastOnOff->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:RampRate->NumberMsgHandler DIRECT
2017-04-30 09:26:42 ERROR o.o.b.i.i.d.MessageHandler[:998]- NumberMsgHandler handler misconfigured, missing low_byte!
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:RampRate publishing: 0
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:ManualChange->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 28.A4.22:LoadDimmerRamp->DefaultMsgHandler DIRECT
2017-04-30 09:26:42 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:28.A4.22|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x12|userData7:0x1C|userData8:0xFF|userData9:0x7F|userData10:0x00|userData11:0xC0|userData12:0x00|userData13:0x24|userData14:0x00|
2017-04-30 09:26:42 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 28.A4.22:GenericLastTime publishing: 2017-04-30T09:26:42
2017-04-30 09:27:19 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: GenericDimmer(1:3:8) OUT:Cmd:0x62|toAddress:23.CA.EA|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x00|
2017-04-30 09:27:19 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 500 msec, quiettime = 500
2017-04-30 09:27:19 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:23.CA.EA|messageFlags:0x0F=DIRECT:3:3|command1:0x19|command2:0x00|

Also, here are the developers notes. I’m no expert on this, but as far as I can tell by reading, it is supposed to be the same (see page 13):

Thanks!

I added ramp rate because the rr is returned in the reply when polling for
led brightness. I have not tested it, and won’t have time to do so.
Somebody else can pick up from here and make it work.

Hi @Bernd_Pfrommer,

You do so much to support this plugin and I really appreciate your help. My plan is to use this addition as sort of a tutorial on how to implement new things like this - so I don’t have to ask for your help all of the time. Over the last week or two I’ve spent several hours trying to figure out if I could implement the LED feature myself, so then I got to compare this to how you actually did it (mine was way different - haha). I’ve been learning a ton and enjoying it. I plan to try to test out this ramp rate and then try to implement a few other features if possible.

Enjoying this discussion and very interested in the features being discussed, so please don’t let this off-topic post derail the conversation -

But I too have been trying to figure out how to get more of the possible features implemented, (without being able to get any of the OH code to build grrrr!), anyway, I managed to get the Beep feature working by just adding a new feature:

<feature name="Beep">
<message-dispatcher>DefaultDispatcher</message-dispatcher>
<message-handler cmd="0x19">SwitchRequestReplyHandler</message-handler>
<command-handler command="OnOffType" off="0x30" on="0x30">RampOnOffCommandHandler</command-handler>
<poll-handler>NoPollHandler</poll-handler>
</feature>

When this feature is added to a device and then enabled on an item, changing the switch either to ON or OFF will send a single ‘beep’ command to the device.
It may be better to only beep when setting to ON, but I haven’t had time to experiment with this yet.

If there is a larger effort underway to add new features and devices (I’m currently working on implementing the Synchrolinc) then please feel free to add my contributions to an overall update of the binding.

1 Like

Hi @Bernd_Pfrommer,

So I’ve been playing with this for a couple days now and the functionality seems to work perfectly for my 2477D dimmers. What I have noticed though is that it seems that the polling isn’t working correctly for both LED status and ramp rate. I set all of my dimmer to a value of 32. However once this gets polled, the value gets reported back to OH as 0. Ramp rate is set on these dimmers (outside of OH for now) as 0.5 seconds (which I believe is a value of like 2 or 3 or something like that), but it is also being reported as 0.

Here is a bit of my log starting with changing a dimmer to 64 LED brightness:

2017-05-02 18:11:33 INFO o.o.b.i.InsteonPLMActiveBinding[:121]- Item: computerRoomLED got command 64
2017-05-02 18:11:33 DEBUG o.o.b.i.i.device.InsteonDevice[:241]- processing command 64 features: 9
2017-05-02 18:11:33 INFO o.o.b.i.i.d.CommandHandler[:771]- NumberCommandHandler: sent msg to change level to 64
2017-05-02 18:11:33 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: LEDBrightness(1:1:2) OUT:Cmd:0x62|toAddress:3D.F7.A1|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x07|userData3:0x40|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0x8A|
2017-05-02 18:11:33 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 2000 msec, quiettime = 2000
2017-05-02 18:11:33 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:3D.F7.A1|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x07|userData3:0x40|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x00|userData14:0x8A|
2017-05-02 18:11:34 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-05-02 18:11:34 DEBUG o.o.b.i.i.d.MessageDispatcher[:149]- 3D.F7.A1:LEDBrightness DIRECT_ACK: q:QUERY_PENDING cmd: 80
2017-05-02 18:11:34 DEBUG o.o.b.i.i.d.MessageDispatcher[:154]- changing key to 0x19 for msg IN:Cmd:0x50|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-05-02 18:11:34 DEBUG o.o.b.i.i.d.MessageDispatcher[:176]- defdisp: 3D.F7.A1:LEDBrightness set status to: QUERY_ANSWERED
2017-05-02 18:11:34 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 3D.F7.A1:GenericLastTime publishing: 2017-05-02T18:11:34
2017-05-02 18:11:35 DEBUG o.o.b.i.i.device.InsteonDevice[:459]- qe taken off direct: ExtStatusGroup(0:0:0) OUT:Cmd:0x62|toAddress:3D.F7.A1|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x9A|userData14:0x88|
2017-05-02 18:11:35 DEBUG o.o.b.i.i.device.InsteonDevice[:479]- next request queue processed in 2050 msec, quiettime = 500
2017-05-02 18:11:35 DEBUG o.o.b.i.internal.driver.Port[:415]- writing (500): OUT:Cmd:0x62|toAddress:3D.F7.A1|messageFlags:0x1F=DIRECT:3:3|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x00|userData3:0x00|userData4:0x00|userData5:0x00|userData6:0x00|userData7:0x00|userData8:0x00|userData9:0x00|userData10:0x00|userData11:0x00|userData12:0x00|userData13:0x9A|userData14:0x88|
2017-05-02 18:11:36 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x50|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x2F=ACK_OF_DIRECT:3:3|command1:0x2E|command2:0x00|
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageDispatcher[:269]- 3D.F7.A1:ExtStatusGroup got poll ACK
2017-05-02 18:11:36 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 3D.F7.A1:GenericLastTime publishing: 2017-05-02T18:11:36
2017-05-02 18:11:36 DEBUG o.o.b.i.InsteonPLMActiveBinding[:591]- got msg: IN:Cmd:0x51|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x20|userData7:0x1C|userData8:0xFF|userData9:0x40|userData10:0x00|userData11:0x01|userData12:0x00|userData13:0x00|userData14:0x00|
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 3D.F7.A1:FastOnOff->DefaultMsgHandler DIRECT
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x20|userData7:0x1C|userData8:0xFF|userData9:0x40|userData10:0x00|userData11:0x01|userData12:0x00|userData13:0x00|userData14:0x00|
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 3D.F7.A1:Beep->DefaultMsgHandler DIRECT
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageHandler[:338]- DefaultMsgHandler drop unimpl message 0x2E: IN:Cmd:0x51|fromAddress:3D.F7.A1|toAddress:40.D1.6E|messageFlags:0x15=DIRECT:1:1|command1:0x2E|command2:0x00|userData1:0x01|userData2:0x01|userData3:0x00|userData4:0x00|userData5:0x20|userData6:0x20|userData7:0x1C|userData8:0xFF|userData9:0x40|userData10:0x00|userData11:0x01|userData12:0x00|userData13:0x00|userData14:0x00|
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 3D.F7.A1:RampRate->NumberMsgHandler DIRECT
2017-05-02 18:11:36 ERROR o.o.b.i.i.d.MessageHandler[:998]- NumberMsgHandler handler misconfigured, missing low_byte!
2017-05-02 18:11:36 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 3D.F7.A1:RampRate publishing: 0
2017-05-02 18:11:36 DEBUG o.o.b.i.i.d.MessageDispatcher[:168]- 3D.F7.A1:LEDBrightness->NumberMsgHandler DIRECT
2017-05-02 18:11:36 ERROR o.o.b.i.i.d.MessageHandler[:998]- NumberMsgHandler handler misconfigured, missing low_byte!
2017-05-02 18:11:36 DEBUG o.o.b.i.i.device.DeviceFeature[:321]- 3D.F7.A1:LEDBrightness publishing: 0

I see userdate9 comtaining 0x40 (64 in hex) correctly, but NumberMsgHandler is complaining that its missing “low_byte” and publishing as 0.

Not sure how to debug form here.

Why does it say NumberMsgHandler is misconfigured? The low_byte field is definitely set in the handler:

<message-handler cmd="0x2e" ext="1" match_cmd1="0x2e" match_cmd2="0x00" match_d2="0x01" low_byte="userData9">NumberMsgHandler</message-handler>

No idea what’s going on there.

Do you have the ability to compile the code from source and investigate by putting more print statements in there?

Hi @Bernd_Pfrommer,

That’s where I’m stuck too. Yes, I have an IDE setup and can compile. LMK what/where to add.