Contents |
Commands
Command | Description |
---|---|
= | Reboot the device. |
! | Configure the device via prompts. |
C | Sets or retrieves configuration parameters. |
L | Emulate virtual zone opens and closes. |
\x01\x01\x01 | Send Function Key #1 |
\x02\x02\x02 | Send Function Key #2 |
\x03\x03\x03 | Send Function Key #3 |
\x04\x04\x04 | Send Function Key #4 |
0123456789*# | Send key to panel |
Reboot
Rebooting the device is as simple as sending = to it.
During the boot process you can trigger a firmware upload by sending a second = to the device after the !boot message is received. At this point you'll receive a !load and can begin uploading.
Zone Emulation
Zone Expander Emulation allows the AlarmDecoder to act in place of a physical expander board and make use of virtual zones with your panel. After enabling it on both the panel and the AlarmDecoder you can begin opening and closing zones, which will be relayed back to the panel.
The L command can be used to open or close zones. There are two parameters: the zone and the state. The zone is a two-digit number and the state is either 0 or 1.
Example - open zone 12:
- L121\r
Example - close zone 12:
- L120\r
Function Keys
The specialty function keys are identified by ASCII character codes 1 through 4. In order to prevent false positives these must be sent three times in a row.
Code | Description |
---|---|
\x01\x01\x01 | Function Key #1 |
\x02\x02\x02 | Function Key #2 |
\x03\x03\x03 | Function Key #3 |
\x04\x04\x04 | Function Key #4 |
Device Configuration
The AlarmDecoder configuration can be viewed or modified in one of two ways: prompted or programmatically.
Name | Default Value | Valid Values (Regex) | Description |
---|---|---|---|
ADDRESS | 18 | [0-9]{2} | Keypad address assigned to the AlarmDecoder. |
CONFIGBITS | FF00 | [0-9a-f]{4} | Special settings for the device. See CONFIGBITS for more information. |
MASK | FFFFFFFF | [0-9a-f]{8} | Address mask used to filter for keypad alphanumeric messages. |
EXP | NNNNN | [YN]{5} | Emulation of zone expanders 1-5 |
REL | NNNN | [YN]{4} | Emulation of relay expanders 1-4 |
LRR | N | [YN] | Emulation of Long Range Radio expander |
DEDUPLICATE | N | [YN] | If enabled, removes duplicate alphanumeric keypad messages. |
CONFIGBITS
CONFIGBITS is a setting that's used to enable special functionality on the AlarmDecoder. You can enable these by masking the correct bits.
Mask | Description |
---|---|
0x0001 | Enable reporting of AUI messages. |
0x0002 | Enable reporting of keypress events. |
0x0004 | Disable prompts for L and | commands. |
0x0008 | Enable the prefixing of panel messages with !KMP. |
0x0100 | Enable reporting of RFX messages. |
Prompted
If you send ! followed by a carriage return you will be prompted to configure each field. This prompt also includes a basic description of the setting as well as it's current value.
You may hit enter to keep the current value or provide a new one.
Example:
!>Ademco/DSC Mode A/D (A) :> !>Keypad Address (18) :> !WARNING. Do not enable a module if the physical module exists on the system. !Zone Expanders Y/N Max allowed: 02 !>expander module #01 ZN 09-16 (N) :> !>expander module #02 ZN 17-24 (N) :> !>expander module #03 ZN 25-32 (N) :> !>expander module #04 ZN 33-40 (N) :> !>expander module #05 ZN 41-48 (Y) :> !Relay Modules Y/N Max allowed: 04 !>relay module #01 (Y) :> !>relay module #02 (N) :> !>relay module #03 (N) :> !>relay module #04 (N) :> !>Emulate Long Range Radio Y/N: (Y) :> !>ZoneTracker track zone restore Y/N: (N) :> !>Address Filter Mask (ffffffff) :> !>Deduplicate (N) :> !>Config Bits (ff04) :>
Programmatic
You may retrieve all of the current device settings by sending C to the panel followed by a carriage return (\r).
Retrieving settings:
- Send: C\r
- Response: !CONFIG>ADDRESS=18&CONFIGBITS=ff00&LRR=N&EXP=NNNNN&REL=NNNN&MASK=ffffffff&DEDUPLICATE=N
It can also be used to set values:
- Send: CADDRESS=20\r
- Response: !>ADDRESS=20
The same command may be used to set multiple values:
- Send: CADDRESS=20&DEDUPLICATE=Y\r
- Response: !>ADDRESS=20&DEDUPLICATE=Y
Message Types
There are several types of messages produced by the AlarmDecoder. These include: Keypad, Relay Expander, Zone Expander, RFX, LRR, and AUI.
Keypad
Keypad messages are by far the most common message type produced by the AlarmDecoder. These messages also have an optional header that can be enabled in the CONFIGBITS. This setting prefixes all keypad messages with !KPM:.
[001000010000--------],010,[f70700060010808c08020000],"ARMED ***STAY** ZONE BYPASSED " | |||
Bit field | Numeric code | Raw data | Alphanumeric Keypad Message |
---|---|---|---|
[001000010000--------] | 010 | [f70700060010808c08020000] | "ARMED ***STAY** ZONE BYPASSED " |
Bit field
The bit field present on the keypad messages is where you're going to get most of the information on your alarm system's current state. These are all represented by a zero or one aside from the one exception. (beep)
Position | Description |
---|---|
1 | Indicates if the panel is READY |
2 | Indicates if the panel is ARMED AWAY |
3 | Indicates if the panel is ARMED HOME |
4 | Indicates if the keypad backlight is on |
5 | Indicates if the keypad is in programming mode |
6 | Number (1-7) indicating how many beeps are associated with the message |
7 | Indicates that a zone has been bypassed |
8 | Indicates if the panel is on AC power |
9 | Indicates if the chime is enabled |
10 | Indicates that an alarm has occurred. This is sticky and will be cleared after a second disarm. |
11 | Indicates that an alarm is currently sounding. This is cleared after the first disarm. |
12 | Indicates that the battery is low |
13 | Indicates that entry delay is off (ARMED INSTANT/MAX) |
14 | Indicates that there is a fire |
15 | Indicates an issue with a zone |
16 | Indicates that the panel is only watching the perimeter (ARMED STAY/NIGHT) |
17 | Unused |
18 | Unused |
19 | Unused |
20 | Unused |
Numeric Code
This number specifies which zone is affected by the message. For example, if this message is for CHECK ZONE 22 then the numeric code would be 022. Most of the time this is zero-padded base10, but there are rare occurrences where this may be base16, such as ECP bus failures.
Raw data
This is the binary data associated with the message. It includes all of the bit field entries that were separated out for you in the first field, as well as the rest of the message for debugging and exploratory purposes.
There is one important piece of data included only in this field: the keypad address mask. The four bytes starting at position 2 (zero-indexed) indicate which keypads this message is intended for.
For example:
- f70700060010808c08020000 - our keypad address mask is 07000600.
Inside this mask each bit represents a specific keypad. Each byte represents a group of eight keypad addresses, which the least-significant-bit being the start of the range.
Byte | Addresses |
---|---|
1 | 0-7 |
2 | 8-15 |
3 | 16-23 |
4 | 24-31 |
Using the above mask example of 07000600 we find that this message was destined for keypads 0, 1, 2, 17 and 18.
There is one special case: system messages will have no address mask bits set and are intended for common keypads or monitoring multiple zones.
The address mask details only become really important when you're working with a setup that has multiple partitions since the AlarmDecoder will see all messages by default.
Alphanumeric Keypad Message
This section is the data that would be displayed on your keypad's screen.
Zone Expander
!EXP:07,01,01 | |||
Header | Zone Expander Address | Expander Channel | Data |
---|---|---|---|
!EXP | 07 | 01 | 01 |
Relay Expander
!REL:12,01,01 | |||
Header | Relay Expander Address | Expander Channel | Data |
---|---|---|---|
!REL | 12 | 01 | 01 |
RFX
!RFX:0180036,80 | |||
Header | Serial Number | Data | |
---|---|---|---|
!RFX | 0180036 | 80 |
LRR
!LRR:012,1,ARM_STAY | |||
Header | Event Data | Partition | Event Type |
---|---|---|---|
!LRR | 012 | 1 | ARM_STAY |
AUI
TODO
Keypress Events
TODO