OH3: not recording/catching Insteon Montion 2 (2844-222) extended data

Just out of curiosity, what is the alternate heartbeat feature supposed to do for this device?

The MS2 supports sending out a group broadcast with status info for battery level, light level and temperature. If enabled, it’s sent about once a day and quickest is every 23 minutes. If enabled, you can configure the thing to not poll the device for these values, but rely in the broadcast message.

Gotcha,

Sounds similar to the hidden door sensor, except that the HDS only sends open/closed state on its heartbeat, and it is configurable in 5 min increments up to 24 hours.

Just as a note, the HDS gets linked as a controller to the modem on groups 1/2/3/4 and responder on group 1 (in order to use all the features). I would expect similar for the MS2.

>>> backdoorHDS.getdb()
getting db, be patient!
sent db query msg, incoming records: >>>  1 2 3 3 4 5 6
----- database -------
0fff modem                          44.30.B5  CTRL  11100010 group: 01 ON LVL:   3 RMPRT:  31 BUTTON:   4
0ff7 modem                          44.30.B5  RESP  10100010 group: 01 ON LVL:   3 RMPRT:  31 BUTTON:   4
0fef modem                          44.30.B5  CTRL  11100010 group: 02 ON LVL:   0 RMPRT:   0 BUTTON:   2
0fe7 modem                          44.30.B5  CTRL  11100010 group: 03 ON LVL:   0 RMPRT:   0 BUTTON:   3
0fdf modem                          44.30.B5  CTRL  11100010 group: 04 ON LVL:   0 RMPRT:   0 BUTTON:   4
0fd7 00.00.00                       00.00.00 (RESP) 00000000 group: 00 ON LVL:   0 RMPRT:   0 BUTTON:   0
----- end ------------

Are there developers notes available for the MS2, my quick google search didn’t show any, but I didn’t dig too deep.

I posted this above

Just to clarify, the other device (53.BF.99) is the PLM. OpenHab3 is discovering the already configured bridge and dropping it in the inbox and throwing the above error. If it’s just a nuisance msg then that’s fine but it seem strange to me that it’s trying to register the bridge as a device…

Good point about not setting the alt heartbeat, but that the configuration I first started with and also tested with yesterday before reapplying the alt heartbeat.

We’ll see how the current config work with Habian rather then the Centos7 rpm’s and go from there.

Cheers and thanks for the help on this,
Mike

The message you are seeing isn’t an error, it’s just a Insteon device that hasn’t been configured as a thing yet.

BTW, you could always configure it as the original motion sensor, the only difference is the extended message sent to the device to get the status.

Just wanted to follow on here and post that for my HDS example above my modem is also linked as a responder to groups 1/2/3/4 and controller on group 1

0000 backdoorHDS                    32.A0.4B  RESP  10100010 group: 01 data: 00 00 00
0000 backdoorHDS                    32.A0.4B  RESP  10100010 group: 02 data: 00 00 02
0000 backdoorHDS                    32.A0.4B  RESP  10100010 group: 03 data: 00 00 00
0000 backdoorHDS                    32.A0.4B  RESP  10100010 group: 04 data: 00 00 00
0000 backdoorHDS                    32.A0.4B  CTRL  11100010 group: 01 data: 10 11 45

So to summarize, The modem and the HDS are cross linked on group 1 and the HDS is also able to send group broad casts on groups 2/3/4 to the modem for the features. “Two Groups” uses group 2, “Low Bat” uses group 3, and “Heart Beat” uses group 4.

There is a lot to read in this thread and I’m not 100% sure I am following this completely, but if I am reading this correctly the original complaint is that you are not getting extended data from your MS2. Specifically you mention:

battery level, battery percent, tamper switch, temperature, LowBattery, lightLevelAboveBelowThreshold and light level.

It appears that you were using the ( {'heartbeatOnly': true}) option on the device, which appears (according to Rob’s post) to have the effect of telling OH to not poll the device after transmissions. So enabling this will result in not getting any of this data unless you have the alternate heartbeat working properly. So this makes sense that you would not be receiving this data this way.

Examining the Alternate heartbeat:

According to the dev docs, alt hb is transmitted on group 0x0b:

image

In a previous post you posted your link DBs fro both your modem and your MS2

In this I would have expected to see a controller link in the MS2 for group 0x0b and a responder link in the modem for 0x0b. I see neither of these. Without this link this there is no way for this device to send this heartbeat data to the modem. Further, if this is like my HDS, it won’t even bother sending the transmission unless there is a link to the appropriate group in its DB. So it makes sense that you are also not going to get this data this way either.

So for these data items, it appears to me (and I could be wrong) that these are the sources of this data:

  • Motion - the one item you have working - is sent on group 0x01 - the only link you have in your DB.
  • battery level - Is available from 3 sources, post broadcast polling, the standard heartbeat on group 0x04 or alt heart beat on group 0x0b. You have none of these configured.
  • battery percent - is software calculated from value obtained by batterylevel above
  • tamper switch - appears to come from messages sent on group 0x10. You do not have this link configured.
  • temperature - Is available from 2 sources, post broadcast polling, or from alt heartbeat on group 0x0b, you do not have either of these configured.
  • LowBattery - comes from messages send on group 0x03. You do not have this link configured.
  • lightLevelAboveBelowThreshold - comes from messages sent on group 0x02. You do not have this link configured.
  • light level - Is available from 2 sources, post broadcast polling, or from alt heartbeat on group 0x0b, you do not have either of these configured.

So, again, I could be wrong, or misunderstand something, but it appears to me that you do not have any sources of the data you want configured correctly. Similar to what @ranielsen suggested, I’d start with removing the alt heartbeat and adding links to groups 2/3/4. Once you get that working, then add the link to group 0x0b and reconfigure both the device to send this and OH not to poll.

Ok, so I’ve validated that openhabian (both stable and main) has the same behaviour…this was more a sanity test for myself more then anything. As suggested I’ve also factory reset agian and have not touched the config on the MS2.

When I re-read the developer docs the other night I was curious about the groups bits and was going to ask but you beat me to it. Thanks for the examples that helped clarify a few things for me.

I’ve been able to using the insteon-terminal add the responder groups to the modem:

modem.getdb()
0000 testingMotion 55.87.FF RESP 10100010 group: 01 data: 00 00 00
0000 testingMotion 55.87.FF RESP 10100010 group: 02 data: 00 00 02
0000 testingMotion 55.87.FF RESP 10100010 group: 03 data: 00 00 03
0000 testingMotion 55.87.FF RESP 10100010 group: 04 data: 00 00 04
0000 testingMotion 55.87.FF CTRL 11100010 group: 01 data: 10 16 47

But when I try to add the controller groups to the MS2 the insteon terminal barfs:

testingMotion.addController(“53.BF.99”, 3)
getting db, be patient!
sent db query msg, incoming records: 1 2 3dbbuilder.done() is called
database incomplete, reload() and retry!
00ff modem 53.BF.99 CTRL 11100010 group: 01 ON LVL: 3 RMPRT: 0 BUTTON: 0
00f7 modem 53.BF.99 RESP 10100010 group: 01 ON LVL: 3 RMPRT: 0 BUTTON: 0
00ef 00.00.00 00.00.00 (STOP) 00000000 group: 00 ON LVL: 0 RMPRT: 0 BUTTON: 0

I’ve tried this on a different PC as well just to rule out any incompatibility issues with java (openjdk vs zulu), am I missing something here? Or have either of you seen the above ‘database incomplete’ msg when adding the controller groups?

In Insteon-Terminal it first downloads a DB then sends the commands to add/delete new DB links. It looks like it isn’t getting the while db downloaded so it just stops. This is a typical communication issue. Obviously the MS2 is RF only (No powerline coms) and if it is far away from your PLM, you may have communication issues.

I don’t think this is related, but when using insteon-terminal I always specify groups in the hex format. Like for Group 3 I’d use 0x03 just to make 100% sure I know what I’m getting. While 3 dec and 3 hex are the same higher value numbers are not.

You do not need to link to group 0x0b or any other groups with the motion sensor. Mine is configured as:

54.69.D5: plm controls groups (254) and responds to groups (1)

And the alternate heartbeat and tamper work just fine. Again, I recommend factory resetting the device, and only set up as a controller and responder using different groups. You could even try setting it up as the original motion sensor.

Yeah, it’s strange, getdb works everytime without fail it only fails when trying to muck with the addController call. hex or dec doesn’t seem to make a difference and to rule out any distance issues (and to make it easier to work on) both devices are on my desk.

I’ve started a thread over at the insteon terminal google group as well to see if they have any thoughts (git shows some recent commits relating to database broker, looking at the traffic with trace enable it almost looks like a race condition).

Cheers,
Mike

Hi Rob,

I’ve tried that a few times and still get the same results, but I’ll try it again later this aft once I get out of meetings.

Cheers,
Mike

@mlindsay, I’ll create a debug version of the binding that will print out more debug info. Hopefully that will help you track what the issue is.

@ranielsen

What is in your MS2’s link DB?

@mlindsay, try out the binding at https://drive.google.com/file/d/1C5PocZ9sc834VOkjUcIwupoIgVtXNMYQ/view?usp=sharing.

You will need to log into the openhab console and uninstall the Insteon binding:

openhab> bundle:list | grep steon
219 x Active x  80 x 3.0.1                   x openHAB Add-ons :: Bundles :: Insteon Binding
openhab> bundle:uninstall 219

Replace 219 with what eve is returned from bundle.list. Then copy org.openhab.binding.insteon-3.1.0-SNAPSHOT.jar to the addons directory.

I’ve added some ERROR logging when open/close events are received, querying the device (or not), responses to queries are received, along with receiving alternate heartbeat group message.

Ok, making some progress, with alt heart beat enabled, heartbeat not set (default), on the testing branch of open habian, and the modem and MS2 configured as below it work-ish. I’m just working through a testing matrix to see what has actually made it work…but setting the modem as a responder to group 0x0b seemed to be a key bit. I’ll post a follow up later today or tomorrow with what I’ve found.

modem.getdb()
0000 testingMotion                  55.87.FF  RESP  10100010 group: 01 data: 00 00 01
0000 testingMotion                  55.87.FF  RESP  10100010 group: 02 data: 00 00 02
0000 testingMotion                  55.87.FF  RESP  10100010 group: 03 data: 00 00 03
0000 testingMotion                  55.87.FF  RESP  10100010 group: 04 data: 00 00 04
0000 testingMotion                  55.87.FF  RESP  10100010 group: 0b data: 00 00 0b
0000 testingMotion                  55.87.FF  CTRL  11100010 group: fe data: 00 00 fe
Modem Link DB complete

testingMotion.getdb()
getting db, be patient!
sent db query msg, incoming records:  1 2 3dbbuilder.done() is called
00ff modem                          53.BF.99  CTRL  11100010 group: 01 ON LVL:   3 RMPRT:   0 BUTTON:   0
00f7 modem                          53.BF.99  RESP  10100010 group: 01 ON LVL:   3 RMPRT:   0 BUTTON:   0
00ef 00.00.00                       00.00.00 (STOP) 00000000 group: 00 ON LVL:   0 RMPRT:   0 BUTTON:   0


------------------------------
result:  working, light, temp, battery
openhabian on testing release
alt heartbeat enabled
on battery
-------------------------------
result: working, light, temp, battery
openhabian on testing release
alt heartbeat enabled
on usb tether
-----------------------------

That’s really odd. Here’s my motion sensor database:

And the plm database:

As you can see the motion sensor controls the plm with group 1, and the plm controls the motion sensor with group 254.

Ok, so they are mostly working now.

Temp, light levels, battery % and level, and tamper are all working with the alternative heartbeat. But are not being updated when motion is triggered, tamper does fire when the cover is opened and Sun rise/set is still not updating either. But I’m pretty confident that once I find a way to update the MS2 db (neither the insteon-terminal or Insteon’s HomeLic sw seems to like the MS2) to build a control link to the modem those will work as well (I hope, I’m going to hooked a logic analyzer to the output stage of the micro to watch the data stream leaving the micro before it hits the RF section). The low battery flag also works, but once it sets it doesn’t clear from the persistence DB…again I think this is due to no link from MS2 to the modem to reset the flag…I think…I’m totally guessing here, but it fits with the testing I was doing ;p

So far the magic combination is (replace):

  • enable alt heartbeat, with a 69min interval (or whatever interval you want)
    openhab:insteon send_extended_message AA.BB.CC 15 20 0A
    openhab:insteon send_extended_message AA.BB.CC 0F 2E 00 00 09 85 03

  • enable low battery group
    openhab:insteon send_extended_message AA.BB.CC 15 20 06

  • enable heartbeat
    openhab:insteon send_extended_message AA.BB.CC 15 20 08

make mode responder links for alt hb, tamper, low bat, etc

modem.getdb()
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 01 data: 00 00 01
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 02 data: 00 00 02
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 03 data: 00 00 03
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 04 data: 00 00 04
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 0b data: 00 00 0b
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 10 data: 00 00 10
0000 testingMotion                  AA.BB.CC  CTRL  11100010 group: fe data: 00 00 fe

testingMotion.getdb()
0000 testingMotion                  AA.BB.CC  RESP  10100010 group: 01 data: 00 00 01
0000 testingMotion                  AA.BB.CC  CTRL  11100010 group: 01 data: 00 00 01

One thing of interest is, in my case setting the modem to respond on group 254 rather than group 1 didn’t make any difference, but just in case I left it as 254 and will update the MS2 db to reflect once I can.

Thanks to both of you for the help. I’ll update this thread once I figure out how to update the DB on the MS2 (insteon-terminal throw a db incomplete msg everytime I try to update it, but not on a getdb, and HomeLic says it’s an unknown device…I need to look at it more this weekend to see if I’m missing something obvious) and get the last of the channels populating.

Cheers,
Mike

The MS2 is only responding to group 01, and the modem is using 254 to try and control it. That could explain why you are not getting a response when motion is detected.

Again, you shouldn’t need all the other groups, just group 1.