Any Concord 4 alarm panel users out there?

Hi @grocco99, if you’re seeing a 404 error then something is not right with the URL you constructed. Make sure you replace in both places graph-xx.api.smartthings.com with your specific base URL from step 3.

It’s either a problem with the automation module or serial cable , can’t say which from the log. You could attach the serial cable directly to a computer to see if you get any response .

1 Like

@dwestall thank you! That was exactly it.

1 Like

Thanks Scott @sdozier for all the work in creating this. I’ve had this project on my “todo” list since I built my house 12 years ago. I ran a bunch of sensor wires during construction, purchased the Concord4 system, and then got distracted by life and never installed it! I’ve got some programming background, but zero smartthings, linux or concord4 experience. The learning curve was pretty steep, but I have the system working and everything seems to be talking to each other. A couple of tidbits to help anyone else who’s trying to implement this system:

1 - Not having any experience with SmartThings, i installed the new App, not the Classic App. It’s possible to get some limited functionality with the new App, and I struggled for several hours trying to figure out why I couldn’t get it to work. Eventually I found a comment here that mentioned “Classic”, which led me to investigate.

2 - I ran into the same issue that @Nivas described in post #179. For me, the issue was caused by a selection I made on the Concord 4 Integration smart app. When you make the selections from within the SmartThings app, the last one on the list is “Set for specific mode(s)” I had checked all 3 boxes (Away, Home and Night). When I deselected all 3 of them, the Smart Home Monitor options started working and changed the alarm state.

Thanks again Scott

Thank you for your comments to the community. I haven’t really been updating the app in a few years as it “just runs” and Ive never needed anything more from it. I agree that app is indeed a bit hard to setup, partially due to the requirement of having to purchase the automation module, raspberry pi, serial cable, etc…

Hey Scott @sdozier , one more question- After reading this thread;

it sounds like ST Classic is going to be decommissioned at some point. Will it be possible to update your program to work in the new app? I’d love to hear your thoughts.

Thx

1 Like

I finally got my setup working. I started with a Concord Express so I first purchased a used Concord 4 panel off eBay, which came with an ADT branded automation module but that didn’t work so I ended up buying a used Interlogix automation module as well. The good thing is I was able to use the ADT internal mounting bracket which I like. Also, the closet where my alarm is located doesn’t have a power outlet, so I’m using this step down converter to power the Pi from the panel, and this Serial-USB cable, and somehow managed to cram everything inside the cabinet.



Thanks again @sdozier, and everyone who contributed to this thread. I actually ready it all!

Wow! Very nice job. I like that you used a step down converter and managed to keep everything in the panel. Thanks for sharing.

Ill look into updating the program to use the new app, when i get a chance. I started using the new smartthings app myself, so its worthwhile, i just need to find some time to work on it.

Scott

Getting an issue here but I’m not sure what I’ve done wrong. I replaced my Superbus thinking that was the culprit but now I don’t believe it is. The cable is also brand new:

Concord 4 Automation Server v2.0
2020-01-27 18:44:05,749 [concordsvr.py:start_logger()] - INFO - Logging started [LEVEL: INFO]…
2020-01-27 18:44:05,757 [concordsvr.py:updateStateOnServer()] - INFO - Panel Information: panelState: connecting
2020-01-27 18:44:05,758 [concordsvr.py:refreshPanelState()] - INFO - Querying panel for state (Concord 4 panel device startup)
2020-01-27 18:44:05,758 [concordsvr.py:updateStateOnServer()] - INFO - Panel Information: state: exploring
2020-01-27 18:44:05,775 [concordsvr.py:logger()] - INFO - Listening for HTTP(S) connections on port: 8066
2020-01-27 18:44:06,262 [concordsvr.py:logger()] - INFO - TX → https://graph-na04-useast2.api.smartthings.com/api/smartapps/installations/[censoredthenumbershere]/concord/[censoredthenumbershere]/armstatus/disarmed
2020-01-27 18:44:06,264 [concordsvr.py:logger()] - INFO - ST TX Failed: 403 url:armstatus/disarmed
2020-01-27 18:44:06,286 [concord.py:send_message()] - WARNING - Resending message, attempt 2: ‘020204’
2020-01-27 18:44:07,796 [concordsvr.py:updateStateOnServer()] - INFO - Panel Information: state: active
2020-01-27 18:44:10,318 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 1 from TOUCHPAD message
2020-01-27 18:44:10,824 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 2 from TOUCHPAD message
2020-01-27 18:44:13,871 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 3 from TOUCHPAD message
2020-01-27 18:44:14,395 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 4 from TOUCHPAD message
2020-01-27 18:44:14,902 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 5 from TOUCHPAD message
2020-01-27 18:44:15,408 [concordsvr.py:panelMessageHandler()] - INFO - Learning new partition 6 from TOUCHPAD message

and it just sorta repeats from there with 403 errors.

Update! Had to remove the old superbus from my system’s memory using the programming menu- now there is still an error but it’s very different.

2020-01-28 11:47:54,398 [concordsvr.py:logger()] - INFO - Listening for HTTP(S) connections on port: 8066
2020-01-28 11:47:54,406 [concord.py:message_loop()] - ERROR - BadEncoding(“Invalid message encoding: [‘1’, ‘D’, ‘2’, ‘2’, ‘0’, ‘9’, ‘0’, ‘6’, ‘0’, ‘0’, ‘0’, ‘1’, ‘2’, ‘4’, ‘2’, ‘5’, ‘1’, ‘5’, ‘2’, ‘B’, ‘1’, ‘A’, ‘1’, ‘1’, ‘1’, ‘E’, ‘2’, ‘B’, ‘0’, ‘2’, ‘0’, ‘8’, ‘F’, ‘B’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘D’, ‘0’, ‘4’, ‘0’, ‘2’, ‘2’, ‘B’, ‘\x00’, ‘1’, ‘1’, ‘1’, ‘D’, ‘2’, ‘B’, ‘2’, ‘0’, ‘0’, ‘6’, ‘F’, ‘B’, ‘0’]”,)
2020-01-28 11:47:54,417 [concord.py:message_loop()] - ERROR - BadEncoding(“Invalid message encoding: [‘1’, ‘D’, ‘2’, ‘2’, ‘0’, ‘9’, ‘0’, ‘6’, ‘0’, ‘0’, ‘0’, ‘1’, ‘2’, ‘4’, ‘2’, ‘5’, ‘1’, ‘5’, ‘2’, ‘B’, ‘1’, ‘A’, ‘1’, ‘1’, ‘1’, ‘E’, ‘2’, ‘B’, ‘0’, ‘2’, ‘0’, ‘8’, ‘F’, ‘B’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘D’, ‘0’, ‘4’, ‘0’, ‘2’, ‘2’, ‘B’, ‘1’, ‘\x00’, ‘1’, ‘1’, ‘D’, ‘2’, ‘B’, ‘2’, ‘0’, ‘0’, ‘6’, ‘F’, ‘B’, ‘0’]”,)
2020-01-28 11:47:54,423 [concord.py:message_loop()] - ERROR - BadEncoding(“Invalid message encoding: [‘1’, ‘D’, ‘2’, ‘2’, ‘0’, ‘9’, ‘0’, ‘6’, ‘0’, ‘0’, ‘0’, ‘1’, ‘2’, ‘4’, ‘2’, ‘5’, ‘1’, ‘5’, ‘2’, ‘B’, ‘1’, ‘A’, ‘1’, ‘1’, ‘1’, ‘E’, ‘2’, ‘B’, ‘0’, ‘2’, ‘0’, ‘8’, ‘F’, ‘B’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘D’, ‘0’, ‘4’, ‘0’, ‘2’, ‘2’, ‘B’, ‘1’, ‘1’, ‘\x00’, ‘1’, ‘D’, ‘2’, ‘B’, ‘2’, ‘0’, ‘0’, ‘6’, ‘F’, ‘B’, ‘0’]”,)
2020-01-28 11:47:54,427 [concord.py:message_loop()] - ERROR - BadEncoding(“Invalid message encoding: [‘1’, ‘D’, ‘2’, ‘2’, ‘0’, ‘9’, ‘0’, ‘6’, ‘0’, ‘0’, ‘0’, ‘1’, ‘2’, ‘4’, ‘2’, ‘5’, ‘1’, ‘5’, ‘2’, ‘B’, ‘1’, ‘A’, ‘1’, ‘1’, ‘1’, ‘E’, ‘2’, ‘B’, ‘0’, ‘2’, ‘0’, ‘8’, ‘F’, ‘B’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘D’, ‘0’, ‘4’, ‘0’, ‘2’, ‘2’, ‘B’, ‘1’, ‘1’, ‘1’, ‘\x00’, ‘D’, ‘2’, ‘B’, ‘2’, ‘0’, ‘0’, ‘6’, ‘F’, ‘A’, ‘\n’]”,)
2020-01-28 11:47:54,851 [concordsvr.py:logger()] - INFO - TX → https://graph-na04-useast2.api.smartthings.com/api/smartapps/installations/[censorednumbers]/concord/[censorednumbers]/armstatus/disarmed
2020-01-28 11:47:54,853 [concordsvr.py:logger()] - INFO - ST TX Failed: 403 url:armstatus/disarmed
2020-01-28 11:47:54,948 [concordsvr.py:refreshPanelState()] - INFO - Querying panel for state (Reacting to EVENT_LOST message)
2020-01-28 11:47:54,949 [concordsvr.py:updateStateOnServer()] - INFO - Panel Information: state: exploring

Edit: Rebooted my system and now we’re back to just the “020204” and 403 issues, hmm…

@sdozier and @dwestall I am back to working on this and determined to finish. I have gotten everything working and communicating between the pi and the automation module but I am not able to get anything in the smartthings app (I am not too familiar with smartthings). I have gone over the instructions in the readme 100 times at least and can’t find what I’m doing wrong. Do I need to configure anything else in the smartapp? Any advice you can offer?

Well, assuming you followed the instructions correctly, first make sure you’re using the SmartThings classic app on your mobile device, then go to the “concord 4 integration” smartapp settings and at the top where it says “Which?" make sure you have your Concord 4 Alarm Panel device selected. Then in the Concord 4 Alarm Panel device, click the settings gear icon and make sure IP is the address of your Pi and make sure API password matches what’s in concordsvr.conf

Also, try restarting everything: Power on the alarm panel first and immediately set the Time/Date on the keypad to get rid of the startup error, then power-on the Pi and start python concordsvr.py. You’ll want to do all this fairly quickly, before you get a bus failure because without the Pi/program running, the alarm can’t talk to the automation module and will error out. Then, let the system learn everything. I’m not sure how long it takes, but it’s not instant. After about 10 min or so, open the mobile app and test one of your alarm contacts to see if it updates open/close status.

Ok so I figured out what was wrong about my setup and got Smartthings connected to the Concord 4! Tricky thing is, I’m running into a few more issues:

-The first is that while it does reflect the status of motion sensors/contact sensors/smoke detectors/the alarm system, it seems to do it very delayed. I opened up one of the doors and got the notification about it 45 minutes later. Is that normal?

-Second is that I can’t seem to arm or disarm the alarm system from the smartthings app. It just says “Arming…” and then eventually returns back to "Disarmed’. Same if the system has been manually armed and I try to disarm it via ST.

-Third is kind of a weird one and may not be a problem with the integration, not sure. It seems to think the Smoke Detector has detected something at all times. It doesn’t reflect that in the ST Classic app, but does in both new ST and in Homekit when I use the Smartthings homebridge extension. Everything else reflects in both properly.

The first two issues are likely caused by the same problem, either the PI IP address in the app is wrong, or the API password in the app doesn’t match the config file. I recently switched out my router which caused the IP of my PI to change and I forgot to update it in the app. The alarm panel status would not update even though the contacts appeared to work. Once I corrected the IP in the app everything started working again.

I’m not sure if the Concord 4 Device Hander/SmartApp is compatible with the new Smartthings app, so that may be the problem with the smoke detector.

1 Like

Tbh you might be right about those- should the IP address be my Pi’s local one (10.0.1.128 for example), or my external one (71.294.261.294 for example)? Wondering if maybe that’s the issue with the alarm not setting properly

Should be the local one.

Ahh ok, it is set to the local one. Do I need a Smartthings Hub for it to work?

Thanks Scott and Others, this setup has been working great for past couple of years for me.
Recently updated Raspian and see these errors in concordsrv.log

2020-06-08 16:50:15,656 [concordsvr.py:logger()] - INFO - ST TX Exception: (“bad handshake: Error([(’’, ‘osrandom_rand_bytes’, ‘getrandom() initialization failed.’)],)”,)url:zone5/closed

The alarm smartapp in ST is stuck at arming. In past this would clear after a reboot by disarming the alarm from panel by code a couple of times, no dice this time.
Thanks much for all the help.

Got the ST huh and notifications are coming in perfectly in sync now! Sweet!

Just two issues left, it seems-

First is that it’s still not arming when I go to “lock” the alarm in the app. Is there anything special I’m supposed to do? I’ve triple checked to make sure the ip setting is pointing toward the local IP for my Pi.

Second is that the smoke detector still perpetually reads “detected” in SmartThings. Notably, it doesn’t do this in the SmartThings classic app, but absolutely shows detected as the status in the graph webpage.