Integrating GE Concord alarm system

Ok, so I take it that it discovers the attached sensors automatically?

Yes no need to config those…you get all the zones in your alarm set as sensors.

Still having issues getting the Concord232 server working. I can see all my zones properly, but I cannot enable or disable the alarm. I can send the command using the concord232 client, but all my panel does is switch to enter code for about 3 seconds then disappears.

I’ll give a try when I’m home.

1 Like

When I look at concord.py lines 581 & 589 I see a silent option. Does that part of the code not work correctly?

That part of the code works fine. It’s home assistant that doesn’t know how to call it.

Ok, that makes sense. Is there a place to see the code that was rejected?

Deleted since I realized my error

I run the server on a separate Pi than Home Assistant. If I create a client on the Same server I can connect fine, but for some reason I can’t get Hass.io to connect to my raspberry pi running the server.
Connecting Locally I get:

pi@raspberrypi:~ $ concord232_client summary --host xxx.xxx.xxx.xxx:5007
+------+------+---------+---------+-------------+
| Zone | Name |  Bypass |  Status |     Type    |
+------+------+---------+---------+-------------+
|  1   |      |  Normal |  Normal |  Hardwired  |
|  2   |      | Tripped | Tripped |  Hardwired  |
|  3   |      |  Normal |  Normal |  Hardwired  |
|  4   |      | Tripped | Tripped |  Hardwired  |
|  5   |      | Tripped | Tripped |  Hardwired  |
|  6   |      | Tripped | Tripped |  Hardwired  |
|  7   |      |  Normal |  Normal |  Hardwired  |
|  8   |      |  Normal |  Normal |  Hardwired  |
|  9   |      |  Normal |  Normal |      RF     |
|  10  |      |  Normal |  Normal |      RF     |
|  11  |      |  Normal |  Normal |      RF     |
|  12  |      |  Normal |  Normal |      RF     |
|  13  |      |  Normal |  Normal | RF Touchpad |
|  14  |      |  Normal |  Normal | RF Touchpad |
|  15  |      |  Normal |  Normal |      RF     |
|  16  |      |  Normal |  Normal | RF Touchpad |
+------+------+---------+---------+-------------+
+-----------+-------+----------+-------+
| Partition | Zones |  Status  | Level |
+-----------+-------+----------+-------+
|     1     |   16  | Disarmed |  Off  |
+-----------+-------+----------+-------+

If I try with Hass.io on other Pi, I get:

Unable to connect to Concord232: HTTPConnectionPool(host='xxx.xxx.xxx.xxx', port=5007): Max retries exceeded with url: /zones (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb996b358>: Failed to establish a new connection: [Errno 113] Host is unreachable',))
7:17 PM components/binary_sensor/concord232.py (ERROR)
Unable to connect to Concord232: HTTPConnectionPool(host='xxx.xxx.xxx.xxx', port=5007): Max retries exceeded with url: /partitions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb9dca390>: Failed to establish a new connection: [Errno 113] Host is unreachable',))
7:17 PM components/alarm_control_panel/concord232.py (ERROR)

After analyzing my network traffic I realized that I had tons of dropped packets and I HA would actually only succeed in registrering with the Concord232 Server every 5th reboot. On top of that it would never register any of the sensors changing status.
I suspected my Home Assistant nmap_tracker to be causing the problems and sure enough. After disabling the nmap_tracker, everything worked flawlessly

1 Like

ConcordGE,

Have you tested if your motion sensors work when an alarm is triggered?

My motion sensors are also wireless and they just send one short open signal when activated and then they don’t register anything for 4 minutes. This is by design to save battery. So when the system is not armed, HA will not register this unless the sensor status is pulled exactly when the open signal is present.

When the system is armed and the motion sensor is triggered, the Alarm Panel will retain the open status of the motion sensor and it shows up as open i HA until the system is disarmed.

Would be nice if they would implement a silent option, but until they do I have changed my ARM HOME button to always use the silent option. I just changed line 120 in

https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/alarm_control_panel/concord232.py

From:
self._alarm.arm('stay')
To:
self._alarm.arm('stay', 'silent')

and uploaded the corrected file to

config/custom_components/alarm_control_panel/

Is anything showing HA that an alarm has been triggered or do I have to make an automation that checks if the system is armed and checks the status of each sensor?

That’s a fine workaround if that works for you.

I looked for my pull request that was rejected on github and couldn’t find it. Looks like it was deleted? Not sure. in any case, your solution is much simpler to patch forward if it is enough for your needs.

1 Like

Are you guys also seeing a lot of “Entity id already exists:” errors? Is there a way to avoid those?

Log Details (ERROR)
Fri Jan 11 2019 19:11:53 GMT-0700 (Mountain Standard Time)

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py”, line 344, in _async_add_entity
raise HomeAssistantError(msg)
homeassistant.exceptions.HomeAssistantError: Entity id already exists: binary_sensor.master_bedroom_bathroom

I do see those a lot. They never seemed to cause any real problems so I just ignored them. Would be nice if a way were found to eliminate them, though.

I’m not getting those errors, but I’m using a config file with the zones named and therefore it doesn’t need to discover the zones??

1 Like

robg is it enough to just add the entity or do you have to put something else in there to make it stop looking for other entities? Would you mind sharing your config? Thank you

Or did you just comment out discovery in general?

I’ve never noticed that error and I’ve had discovery enabled/disabled in the past.
Found it works better hardcoding the zones anyway.

IE:
[config]
max_zones = 6
euro_date_format = False

[zones]
1 = Hallway
2 = Family Kitchen
3 = Formal rooms
4 = Upstairs
5 = study spare bed
6 = Bathroom Laund