Interfacing: Caddx > Elk

Yea, you definitely have a strange situation there that is gonna cost you in both time and money. Elk is also a security panel first and foremost and can do everything the Caddx does and more. It's really a shame you can't just connect the zones to the Elk. It almost sounds like the house is owned by the President of GE. Definitely something political going on there... Good luck with it.
 
Thanks, yeah the overriding factors on this one are less than desirable.
Hopefully, some type of acceptable solution will present itself.
 
I know plenty about the caddx protocol as I wrote a script that takes the ascii serial communication and makes it talk to my HA... Housebot.

To do it right....
There is actually a checksum on every transmission of the caddx protocol. To do it right, you need to calculate the checksum of the data you just received, if it matches the checksum sent by the panel, you need to acknowledge back so the panel can send the next piece of data.

To do it subpar, you can ignore the checksum and *hope* the data is correct.

It's been a while, so some details might be a bit off on the protocol...
For merely reading zone status, the panel talks in blocks of 4 zones at a time. Which 4 zones it's talking about is determined by an offset. So 0 is zones 1-4, 1 is zones 5-8, 2 is zones 9-12, etc. The zone info can be a combination of 4 items. Ready, Faulted, Bypassed, Memory (i.e. This zone had the last alarm). Some are mutually exclusive like Ready-Faulted. But you could have Ready-Bypassed-Memory, or Faulted-Bypassed or or or. The status of each zone is represented by a hex number.

Depending on how the ELK parses serial, it might be trivial it might be not. You will need the Elk to do three things if we assume we'll be receiving the same format of data each time from the Caddx.

(Again, it's been a while & I don't have the protocol in front of me, but you'll get the idea)
1) Look for the correct hex code at position 3 to ensure it's a zone message.
2) Read the offset value at position 5 so we know which zones the message relates to.
3) Read the hex values at position 7, 9, 11, 13 to get the zone status.
4) Return the Acknowledge command back to the panel to get the next data. This can be static string.

If you don't return the Ack back, it'll just repeat the same message.

I have a similar issue with one of my zones... My garage door. For that I actually run it through my Ocelot and use a relay output of my Ocelot to my panel as has been described.

I did have a new idea recently, which I read on this board, but I don't know if it'll work or if it's even designed to work that way. That idea is to use a "swinger" zone. I gather zones defined as swingers in the caddx can have a greater variation on the resistance on the line than an simple NO or NC with a eol resistor. I ran into the same problem as BraveSirRobin when I tried to split my contacts between my Caddx and Ocelot input. i.e. Since the resistance is not correct, the panel shows the circuit as faulted. I am wondering if I define the zones as swingers, it'll be happy with whatever electrical havoc the ocelot wreaks on the circuit.

Tim
 
Back
Top