Difference between revisions of "Protocol"

m (Zone Emulation)
(Function Keys)
Line 49: Line 49:
  
 
==Function Keys==
 
==Function Keys==
TODO
+
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.
 +
 
 +
{| align="center" class="wikitable" border="1"
 +
|+ Function Key Codes
 +
! scope="col" | Code
 +
! scope="col" | 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=
 
=Device Configuration=

Revision as of 15:29, 17 December 2013

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.

Function Key Codes
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 NNNNN [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:.

Keypad Format
[001000010000--------],010,[f70700060010808c08020000],"ARMED ***STAY** ZONE BYPASSED "
 
Bit field Numeric code Raw data Alphanumeric Keypad Message
[001000010000--------] 010 [f70700060010808c08020000] "ARMED ***STAY** ZONE BYPASSED "

Zone Expander

 !EXP Format
!EXP:07,01,01
 
Header Zone Expander Address Expander Channel Data
 !EXP 07 01 01

Relay Expander

 !REL Format
!REL:12,01,01
 
Header Relay Expander Address Expander Channel Data
 !REL 12 01 01

RFX

 !RFX Format
!RFX:0180036,80
 
Header Serial Number Data
 !RFX 0180036 80

LRR

 !LRR Format
!LRR:012,1,ARM_STAY
 
Header Event Data Partition Event Type
 !LRR 012 1 ARM_STAY

AUI

TODO

Keypress Events

TODO