Alarmdecoder not updating items

I have an AD2USB connected to a RaspberryPi running ser2sock. I have openHAB running on my NAS and I have configured the alarmdecoder binding to connect over TCP/IP. Items are configured using copy/paste of the ones in the example.

The binding seems to be collecting the messages as I have enabled logging and I can see the messages from the keypad in the log file but the status of all of my items is “Uninitialized”

Looking at the binding, it specifies “KPM:00” in the item configuration. Is this the start of the message from alarmdecoder? When I look at the messages I’m logging, there is no 00 for example:

2015-11-21 22:07:46 DEBUG o.o.b.a.i.AlarmDecoderBinding[:315]- got msg: !KPM:[10000001000000003A–],000,[f7c300000000001c08020000000000],“ACE Security 21-11-15 22:20”

I tried removing the 00 from the item configuration but I got an “unable to parse” error.

I’m using alarmdecoder with an Ademco Galant panel and the behavior isn’t identical to a Vista so I’m wondering if the binding is expecting the 00 as part of the message.

Could you please post the raw ASCII stream you get from the socket. Maybe a couple of messages so I can compare to the vista 20p.

I think the 00 is just there to make the parsing of the item more regular.
The keypad messages are not gonna alter the state of the contacts. You need rfx and the other messages for that. The keypad messages are used for one thing though: if it signals “ready to arm”, all contacts are updated to" closed". But all of that is in the wiki.

Thanks for the response.

Here are a couple of messages:

!KPM:[10010001000000003A–],000,[f7c300000000001c08020000000000],“ACE Security 22-11-15 09:21”
!KPM:[10010001000000003A–],000,[f7c300000000001c08020000000000],“ACE Security 22-11-15 09:21”
!KPM:[10000001000000003A–],000,[f7c300000000001c08020000000000],“ACE Security 22-11-15 09:22”

Obviously I can switch off the !KPM prefix in the AD2 configuration but for the moment, I’m guessing prefixes are required so the binding can differentiate message types.

I’m aware of the limitations of the keypad messages but for the moment I only want to determine whether the system is armed and whether the alarm is sounding. I don’t have any RF sensors and AD2 doesn’t seem to be able to handle expanders on the Galant panel so I may be limited to keypad messages anyway. Even when I get the binding working I think the Galant uses the status bits differently so I might have to do a bit of experimenting.

If I can’t get it to work, I have the possibility to connect to the digital communicator using an Arduino but that’s a lot of extra hardware so I’m hoping it doesn’t come to that.

Edit: It looks like the forum removes the duplicated spaces. The message string is 32 characters long.

I’m a bit disappointed that you don’t get any error messages from the binding when it’s parsing this:

!KPM:[10010001000000003A--],000,[f7c300000000001c08020000000000],"ACE Security 22-11-15 09:21"

because it does not expect the !KPM in front of it. I didn’t even know you can switch such a prefix on in the alarmdecoder. Please try without any prefix and see what happens.

Without the prefix your messages line up o.k. with the messages I get from my device:

[10010001000000003A--],000,[f7c300000000001c08020000000000],"ACE Security 22-11-15 09:21"  <---- yours
[1000000100000000----],008,[f70000ff1008001c08020000000000],"X                 Ready to Arm  " <----- mine

The Wiki has an example of the kind of ascii stream it expects, but here another sample fresh from my alarmdecoder device:
[1000000100000000----],008,[f70000ff1008001c08020000000000],"X Ready to Arm "

Solved!

My mistake; because of the way the binding string uses !KPM, I assumed it was looking for the prefix. I’ve switched it off (in CONFIGBITS) and now it’s fine.

Just have to look at how the panel uses the bits now.

Thanks for the help.