SIA Decoding
Every alarm message TetherX receives is one line of text, and every part of that line does something. This page takes one message of each shape and says what each part is, what TetherX reads it as, and what an operator ends up seeing.
Setting a panel up? The addresses, ports and the steps for each connection method are in Alarm Signal Receiving. Every code a panel can send is listed in SIA Event Codes.
The message, decoded
This is what a burglary on zone 1001 looks like arriving at the REST endpoint, which takes the inner block on its own:
[ #900001 | Nti22:02 / ri01 / BA1001 | ABurglary Alarm ]
- [#900001
- The transmitter ID, which is how TetherX knows which panel is reporting. Set it on the panel to the Transmitter ID of the alarm in TetherX. Letters and digits only.
- Nti22:02
- The time the panel put on the message. TetherX records it, and timestamps the event with the moment the message arrived, because a panel clock drifts.
- ri01
- The area, or partition, the event belongs to. Shown to the operator beside the signal, and carried on every status the panel raises.
- BA1001
- Two letters and, where the code names a detector, the zone that fired. The letters decide what happens: BA raises a burglary. A code ending in R is the restore that clears it. The digits are the panel's own zone number, passed through as the panel sends it.
- ABurglary Alarm
- The wording the panel wrote, after a literal A. It is recorded and shown, and it changes nothing: the two letters above decide the event, so the same fire from two panels lands as one trigger.
The same message as a DC-09 frame
An IP communicator reporting to the TCP server sends the whole frame, with its checksum, sequence number and the panel's own timestamp on the end. This one is a panic on zone 1002:
FEC9003B"SIA-DCS"0001L0# 900001 [# 900001 | Nri0001 / PA1002 ]_ 12:29:37 , 01-17-2022
- #900001
- The account in the frame header, before the block. The IP communicator sends it and TetherX reads the one inside the block.
- [#900001
- The transmitter ID, as above. This is the one matched against the alarm.
- Nri0001
- The area, in the form the frame carries rather than the block's ri01.
- PA1002
- The event code and zone, read exactly as in the block above. A frame carries no description, so the operator reads the standard wording for the code.
- 12:29:37
- The panel's own time, on the tail of the frame.
- 01-17-2022
- The panel's own date, in the order DC-09 sends it.
Contact ID
A Contact ID panel reports in digits rather than letters. The TCP server takes the whole
ADM-CID frame and the REST endpoint takes the inner block
[#900001|1130 01 003]:
87CD0037"ADM-CID"9876R579BDFL789ABC# 900001 [# 900001 | 1 130 01 003 ]
- #900001
- The transmitter ID, as in the other two.
- 1
- What the message does: 1 raises the condition, 3 restores it.
- 130
- The Contact ID event. TetherX maps it to the equivalent SIA code, so a Contact ID panel and a SIA panel raise the same trigger.
- 01
- The area, two digits.
- 003
- The zone, three digits, passed through as the panel sends it.
What the panel's message becomes
Decoding [#900001|Nti22:02/ri01/BA1001|ABurglary Alarm] gives the event an operator opens:
| Panel | The alarm whose Transmitter ID is 900001 |
|---|---|
| Signal | BA Burglary Alarm |
| Trigger | Tampering & Security: Burglary Alarm |
| Area | 1 |
| Panel zone | 1001, shown against the camera zone it is mapped to (how to map them) |
| Description | Burglary Alarm |
The event is opened on the camera watching that zone, so the operator reads the panel's own account of the alarm beside the footage of it. A message that raises nothing, a restore or a panel-state report, is recorded on the alarm without opening an event.
Which codes raise an alarm
The two letters decide, and nothing else does. These raise an alarm condition and file the trigger beside it, so a panel panic and a camera panic filter as one thing:
| Code | Raises | Cleared by |
|---|---|---|
BA |
Burglary Alarm | BR |
PA |
Panic Alarm | PR |
HA |
Duress Alarm | HR |
MA |
Medical Alarm | MR |
TA |
Camera Tampered | TR |
QA |
Alarm | QR |
FA |
Fire Alarm | FR |
GA |
Gas Alarm | GR |
WA |
Flood | WR |
Two more report the panel itself rather than a detector, so they carry no zone:
CL sets the panel,
OP unsets it
.
A panel that puts a user number after one of them is accepted, and that number is read as a
user rather than as a zone.
Contact ID events, and the SIA code each becomes
| Contact ID | SIA code | Meaning |
|---|---|---|
100 |
MA |
Medical Alarm |
110 |
FA |
Fire Alarm |
120 |
PA |
Panic Alarm |
121 |
HA |
Duress Alarm |
122 |
PA |
Silent Panic Alarm |
130 |
BA |
Burglary Alarm |
131 |
BA |
Perimeter Burglary Alarm |
132 |
BA |
Interior Burglary Alarm |
133 |
BA |
24 Hour Burglary Alarm |
134 |
BA |
Entry Exit Burglary Alarm |
135 |
BA |
Day Night Burglary Alarm |
136 |
BA |
Outdoor Burglary Alarm |
137 |
TA |
Tamper Alarm |
151 |
GA |
Gas Alarm |
154 |
WA |
Water Leak Alarm |
Qualifier 3 in place of 1 restores the condition, the same way a SIA
code ending in R does. An event TetherX does not recognise is
still recorded, as a generic alarm, so nothing a panel sends is thrown away.
Related articles
- Alarm Signal Receiving - how to configure alarm signal reporting
- SIA Event Codes - every code a panel can send
- Related Zones - which cameras a zone's alarm marks alongside the one that fired