Command 0x50 for Insteon 2444 Micro Open/Close Module

Hello,

Very new user so apologies if I’m barking up the wrong tree here.

I have an Insteon 2444 Micro Open/Close Module configured as follows:

Switch dev03 "Garage Door" (garageDoor) {insteonplm="20.14.CE:F00.00.1B#switch"}

This sort-of works, as it responds to ON and OFF commands, but I really need to send open/close commands as the behaviour is slightly different (in the Insteon app, there are on/off buttons and separate up/down buttons).

When I press up in the Insteon app, insteonplm produces these debug messages:

19:05:03.643 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x17|command2:0x01|
19:05:03.643 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T19:05:03
19:05:03.970 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x18|command2:0x00|
19:05:03.972 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T19:05:03
19:05:04.385 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0xFF|
19:05:04.385 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T19:05:04
19:05:04.712 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0xFF|
19:05:04.712 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T19:05:04

Is there a way to send these commands (command code 0x50?) using the current version of insteonplm please? Thank you.

The command code of the message is always 0x50. That just says “message to modem”. The command1 and command2 values are what counts.

Here are the developer notes for the device:

the 0x19 command is status request, meaning the app was querying the device for status.
The 0x17 and 0x18 are start and stop manual change messages. I think that’s for dimmers when you start pressing, the another one when you let go of the button. I didn’t see any documentation for those in the developer notes for this device.

The developer docs only mention shutter open/open fast and close/close fast. For that the standard commands 11/12 and 13/14 are used. Note the error on page 6, where command 11 is listed for open fast instead of 12…

The question is now: how does the device really work. What do the “up/down” buttons in the app do that is different from the “on/off” buttons? Can you press first up/down and see what messages you get in the log, then on/off and examine the log again? We want to understand what the difference is.

Hi there, thanks for the quick reply and all your work on insteonplm!

Full debug logs below but in summary:

UP:
Command1 0x17 Command2 0x01
Command1 0x18 Command2 0x00
DOWN:
Command1 0x17 Command2 0x00
Command1 0x18 Command2 0x00
OFF:
Command1 0x13
ON:
Command1 0x11

Hopefully this is identical messaging to an already-supported dimming device?

When looking at the debug logs, bear in mind that the duration of the open and close output is user-configurable in the Insteon app, and I have set it extremely short (about 400ms by the look of it). Insteon’s idea is that you have a motor directly controlled by the 2444 module’s 240V outputs, which runs for the configured number of seconds when you open/close. All the blinds and powered doors in my house (and indeed all I’ve ever seen) have their own timing and sensor circuits which are triggered by a momentary switch. So I have connected the 2444 to a 240V relay which activates the momentary switch — too much explanation but that’s why the 0x17 and 0x18 commands are so close together!

Cheers,

Max

UP 
21:10:31.883 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x17|command2:0x01|
21:10:31.883 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:31
21:10:32.546 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x18|command2:0x00|
21:10:32.547 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:32
21:10:32.586 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0x49|
21:10:32.587 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:32
21:10:32.989 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0x49|
21:10:32.990 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:32

DOWN
21:10:35.254 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x17|command2:0x00|
21:10:35.255 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:35
21:10:35.638 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x18|command2:0x00|
21:10:35.639 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:35
21:10:36.036 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0x21|
21:10:36.037 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:36
21:10:36.368 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0x21|
21:10:36.369 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:36

OFF
21:10:39.463 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x13|command2:0x00|
21:10:39.464 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:39
21:10:39.829 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0x00|
21:10:39.829 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:39

ON
21:10:44.016 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x11|command2:0xFF|
21:10:44.016 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:44
21:10:44.345 [DEBUG] [.o.b.i.InsteonPLMActiveBinding:581  ] - got msg: IN:Cmd:0x50|fromAddress:20.14.CE|toAddress:26.01.C7|messageFlags:0x25=ACK_OF_DIRECT:1:1|command1:0x19|command2:0xFF|
21:10:44.346 [DEBUG] [o.o.b.i.i.device.DeviceFeature:264  ] - 20.14.CE:GenericLastTime publishing: 2016-05-02T21:10:44

That helped clear things up. Yes, in fact the manual change start/stop command (17/18) is supported for an ordinary dimmer like the the 2477D.
So in the items file, pretend your 2444 has product key F00.00.01, and put something like this in your items file:

Number manChange "main manual change" {insteonplm="xx.xx.xx:F00.00.01#manualchange"}

And this into your sitemap:

Switch item=manChange label="manual change" mappings=[ 0="DOWN", 1="STOP",  2="UP"]

And see if that works.

The “mappings” will give you 3 buttons (“DOWN”, “STOP”, “UP”) which will send 0, 1, or 2 to the binding when pressed.
The binding in turn will translate that into commands as follows:

command 0: 0x17 + 0x00 (corresponds to your “down” without “stop”)
command 1: 0x18 + 0x00 (plain stop)
command 2: 0x17 + 0x01 (corresponds to your “up” without “stop”)