Integrating GE Concord alarm system

are you imputing like this

concord232_client command --keys 5,2

Have you tried sending hex codes instead. https://stackoverflow.com/questions/11865490/sending-hex-data

The Client changes the command to that http link I showed In my post.

Yes, but I can’t get it to work. How do I format a URL string with the Hex numbers? The ways i have tried it weren’t successful

Are you using the RESTful service in HA

I’m not near my server but using the hex code for Police Panic and converting to decimal 12 can you pass this number to the server

No. As of now I’m just talking directly to the Concord232 server by posting URLs. That’s how the Client does it too

It treats it as a 1 and as 2, so it thinks you want to disarm and treats 2 as the code. So for example if 1234 is your code, sending 11234 would disarm it.

From memory only single keys pressed are supported

0-9 A,B,C,D,*,#

so I imagine you would need to define the hex code on the server side.

I’m looking to see what options are available to trigger an alarm remotely. I’ll report back if I find any.

Yes, I agree from my look at the code.
I tried to include an extra option - alarm and made that send the keyfob code:
0x24: ‘Keyfob Arm/Disarm’ (Supposed to fire Panic Alarm and does when I press those two buttons on my keyfob.,
That didn’t work.
If I use other codes like 0x21 - Keyfob Arm and 0x20 - Keyfob Disarm it works fine. So for some reason it won’t let me fire the alarm over the Suberbus.

If you want to really start from bare metal and work up, you can send hex codes directly to the serial port using stty and echo from the command line. Then you’ll know what your alarm panel can really respond to vs what isn’t being sent correctly through the various layers of code.

That would be better, but beyond my expertise :slight_smile:
Only thing I wanted to implement was a way to trigger the alarm. Just can’t figure out why sending 0x20 - Arm and 0x21 Disarm works fine, but 0x24 Arm/Disarm doesn’t.

I added:

concord.py

def soundalarm(self):
        self.send_keypress([0x24])  

changed api.py

@app.route('/command')
def command():
    args = flask.request.args
    if args.get('cmd') == 'arm':
        option = args.get('option')
        if args.get('level') == 'stay':
            CONTROLLER.arm_stay(option)
        elif args.get('level') == 'away':
            CONTROLLER.arm_away(option)
    elif args.get('cmd') == 'disarm':
        CONTROLLER.disarm(args.get('master_pin'))
    elif args.get('cmd') == 'keys':
        CONTROLLER.send_keys(args.get('keys'),args.get('group'))
    elif args.get('cmd') == 'alarm':
        CONTROLLER.soundalarm()
    return flask.Response()

and trigger it by:

http://127.0.0.1:5007/command?cmd=alarm

Do you have the wireless keypad as well as the key fob https://www.google.ie/search?q=ge+concord+wireless+keypad&safe=off&client=safari&hl=en-ie&prmd=sivn&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiH6e3Nl5LkAhWGRBUIHSCXBPIQ_AUoAnoECA0QAg&biw=320&bih=454#imgrc=WIaYEShuo3hKgM

If so did you try read any of the codes from it.

No. Only hardwired and keyfob

This server already lets you do that. It’s a lot more useful than the one currently used in HA https://github.com/darconeous/concordd

I only have the arm/disarm keyfob myself.

I’m still looking into a solution. I remember something written in VB that could be adapted for Python but it will take time if it’s possible

I know that Panic options can be enabled/disabled on the Touchpads. Do you think the same is true for the Superbus module?

From what I can see that would have to be defined at the server end. I’m assuming you’re modifying at the client end.

The route of client->server->AM->panel makes things a little messy. I’ll see if my research throws up something new.

I am modifying the server in order to send the codes correctly.
I was just wondering if some settings had to be changed on the Concord System itself in order to allow the Superbus module to activate a panic. Just like you can enable/disable a keypanel to do it.

I found the problem. The codes are wrong.

 0x0c: 'Police Panic',
 0x0d: 'Aux. Panic',
 0x0e: 'Fire Panic',

Needs to be:

 0x4c: 'Police Panic',
 0x4d: 'Aux. Panic',
 0x4e: 'Fire Panic',
1 Like