Paradox API - Driver .......................................................................................................................................................................... 5 Paradox API – Installation .................................................................................................................................................................. 5 2.1.3. Paradox API - Demo Application ....................................................................................................................................................... 5 2.1.4. Paradox API – Paradox Video Player ................................................................................................................................................. 6 2.1.2.
2.2. 2.2.1.
API DEFINITION ..................................................................................................................................7
Read Buffer Events (Command) .................................................................................................................................................. 44 Read Buffer Events EX (Command) ............................................................................................................................................ 44 Get Site from PMH (Command) ................................................................................................................................................... 44 Configure Video Server (Command) ........................................................................................................................................... 45 Get Video Alarm Files (Command) .............................................................................................................................................. 46 Start Video on Demand (Command) ........................................................................................................................................... 47 Start Video on Demand EX (Command) ..................................................................................................................................... 48 Stop Video on Demand (Command) ........................................................................................................................................... 49 Connection Status Changed (Event) ........................................................................................................................................... 49 Progress Changed (Event) ........................................................................................................................................................... 50 Progress Error (Event) ................................................................................................................................................................... 50 SMS Request (Event) .................................................................................................................................................................... 52 Receive Reporting Event (Event) ................................................................................................................................................. 53 Account Registration (Event) ........................................................................................................................................................ 54 Account Update (Event) ................................................................................................................................................................ 55 Account Link (Event) ...................................................................................................................................................................... 55 Receive Buffer Event (Event) ....................................................................................................................................................... 56 Receive Live Event (Event) .......................................................................................................................................................... 57 Monitoring Status Changed (Event) ............................................................................................................................................ 58 RX Status Changed (Event) ......................................................................................................................................................... 58 TX Status Changed (Event) .......................................................................................................................................................... 59 IP Module Detected (Event) .......................................................................................................................................................... 59 IPDOX Socket Changed (Event) .................................................................................................................................................. 60 Unregister All (Command) ............................................................................................................................................................ 60 Paradox API - 2.2.2 Result Code List ............................................................................................................................................... 60
Page 3 of 64
1. Document History Log Document Version
Date
Change By
Description
1.0
2015-06-30
Jerome Lepage
Initial Document
1.0.1
2015-08-10
Jerome Lepage
Added all commands
1.0.2
2015-08-20
Jerome Lepage
Added all parameters definition
2.0.1
2015-09-08
Jerome Lepage
Added EVO control panel
2.0.2
2015-09-21
Jerome Lepage
Added Read All Zones, User, Doors
2.0.3
2015-09-27
Jerome Lepage
Added Read All Schedules, Access Levels
2.0.5
2015-09-28
Jerome Lepage
Added “Write Multiple Users”
2.0.6
2015-09-29
David Watherhouse
Added status column description
2.1.1
2015-10-06
Jerome Lepage
Added Configure Video Server, Get Video Alarm Image, Video Live Streaming
2.1.2
2015-10-15
Jerome Lepage
Added Start VOD EX
2.1.3
2015-10-21
Jerome Lepage
Revised doc
2.2.2
2015-10-28
Jerome Lepage
Fixed timeout command and index
command
out of bound issues in ParadoxAPI.dll 2.3.1
2016-01-05
Jerome Lepage
Disable monitoring polling to reduce CPU usage (via the MonitoringPollingEnabled property)
2.4.1
2016-01-14
Jerome Lepage
Added connected UserNo and UserPartitionAccess to RetrievePanelInfo command
2.5.1
2016-01-18
Jerome Lepage
Fixed read buffer events from SP4000
2.6.1
2016-02-05
Jerome Lepage
Added ReadBufferEventsEx API. Use to retrieve new events only. Compatible with SP4000 and EVO panels
Page 4 of 64
2. Project Overview 2.1.
Feature Overview
2.1.1.
Paradox API - Driver
Features: 1. Windows “flat” DLL that implements stdcall functions 2. Compatible with all MG and SP Series panels 3. Auto-detect panel via serial, IP or PCS (GPRS) connection 4. Connect to panel via serial, IP or PCS (GPRS) connection 5. Control panel status (Area, Zone and PGM) 6. Monitor panel status (Area, Zone, PGM and Troubles) 7. Read panel programming (Labels, Areas, Zones, PGMs, Schedules, Users and IP Reporting) 8. Write panel programming (Labels, Schedules, Users and IP Reporting programming) 9. Read panel buffer and live events 10. Register panel to IP receiver 11. Receive account registration and event reporting via IP 2.1.2.
Paradox API – Installation
The Paradox API SDK package contains three DLL files, which must be copied to the same directory. Features: 1. ParadoxNetwork.dll handles panel communication 2. IPDOX.dll handles panel registration and reporting 3. ParadoxAPI.dll provides the API interface for integration
2.1.3.
Paradox API - Demo Application Page 5 of 64
Allows the software integrator to review and test the Paradox API integration. Features: 1. Demo application and source code are included (written in C#) ParadoxApiDemo.exe.
2.1.4.
Paradox API – Paradox Video Player
Allows the software integrator to execute Apple HTTP live streaming from a m3u8 file *see ParadoxVideoPlayer.exe Features: 1. Application uses ffmpeg library (decoder only) http://www.DelphiFFmpeg.com 2. Select m3u8 filename (from toolbar/open) 3. Play (start) live streaming 4. Stop live streaming 5. Auto select and start live streaming from shellexecute command 6. *ShellExecute(0, 'open', PChar('ParadoxVideoPlayer.exe'), PChar(Format(''file=%s proxy=%s'', [m3u8FileName, proxyURL])), '', SW_SHOWNORMAL);
Page 6 of 64
2.2.
API Definition
2.2.1.
Paradox API - Command List
All commands are accessible from the exported ParadoxAPI.dll API All commands are synchronized methods, they return when the action is completed For maximum performance, we recommend creating thread or thread pool to communicate with each control panel
1. Get Driver Version
Use to retrieve Paradox API driver version Request (Pascal STDCALL) function GetDriverVersion(out Version: WideString): HResult; stdcall; Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (Version) returns version # (x.x.x.x)
2. Discover Module (Command) Page 7 of 64
Use to discover all Paradox ’s IP modules connected to a selected network Command broadcasts a UDP packet over the Ethernet Each Paradox IP module answers command with its definition Request (Pascal STDCALL) function DiscoverModule(out XMLInfo: WideString): HResult; stdcall; Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLInfo) returns XMLData; see below:
Parameter definition
method name "MacString" "NetMaskString" "DHCPString" "TypeString"
Definition The MAC address of the detected IP module The NETMASK of the detected IP module If the detected IP module uses DHCP mode (DHCP enable) Possible Values "IP100" "IP150" "PCS250" "PCS250G" "IPR512" "HD77" The IP address of the detected IP module The Site Identification (Name) of the detected IP module The Site ID (used to access the module via ParadoxMyHome) of the detected IP module The version (version.revision.build) of the detected IP module The IP port # (used to connect to the module via end-user/installer software) of the detected IP
module The WEB port # (use to connect to the module via the web page) of the detected IP module The current language of the detected IP module The serial # of the control panel connected to the detected IP module The HTTPS port # of the detected IP module Future use Page 8 of 64
If the detected IP module use HTTPS If the detected IP module is registered to ParadoxMyHome The network interface (IP address) where the IP module has been detected
3. Connect Panel (Command)
Use to connect to a control panel via serial, IP or PCS (GPRS) connection PCS (GPRS) connection can be established on a private network using the SMS callback mechanism Command auto-detect panel type and version *specify panel type to speed up the connection process Request (Pascal STDCALL) function ConnectPanel(const PanelID: Cardinal; XMLSettings: WideString; WaitTimeOut: Cardinal): HResult; stdcall; 1. PanelID parameter identifies the control panel connection. This parameter must be defined by the client and must be unique to the entire system. 2. WaitTimeOut parameter identifies command timeout in second (0=infinite) 3. XMLSettings parameter must contain XML data; see below:
method name "PanelType"
"ComType"
Parameter definition Definition Possible Values "" or "Auto Detect" "SP4000" "SP5500" "SP6000" "SP7000" "SP65" "MG5000" "MG5050" "EVO192" "EVOHD" Possible Values "SERIAL" "IP"
Description Auto detect panel type SP4000 control panel SP5500 control panel SP6000 control panel SP7000 control panel SP65 control panel MG5000 control control panel panel MG5050 EVO192 control panel EVOHD control panel Description Connect to control panel via serial cable Connect to control panel via IP module (IP socket) Page 9 of 64
Connect to control panel via IP module (IP socket) using ParadoxMyHome "GPRSSTATIC" Connect to control panel via PCS module (GPRS) "GPRSPRIVATE" Connect to control panel via PCS module (GPRS), enable SMSCallback property to use SMS callback mechanism The SiteID in ParadoxMyHome to use for "DNS" connection Future use The static IP address to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection The IP port to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection The COM port to use for "SERIAL" connection Possible Values Description 0 Auto detect baud rate 9600 9600bps 38400 38400bps 57600 57600bps Use SMS callback mechanism for "GPRSPRIVATE" connection. With that feature enabled, the ParadoxAPI.dll opens a socket server and waits for the callback PCS module connection. The connection is established via a SMS message that has to be sent by the client to the PCS module. The SMS message to send is returned by ParadoxAPI.DLL via the SMS Request callback event. The IP password to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection. The IP password must exist in the IP or GPRS module. The user code to use for connection to the control panel. The user code must exist and have sufficient rights in the control panel. The labels such as (Area, Zone labels) will be formatted into the following language Possible Values Possible Values "ENGLISH" "SLOVAK" "FRENCH" "CHINESE" "SPANISH" "SERBIAN" "ITALIAN" "MALAY" "SWEDIS" "SLOVENIAN" "POLISH" "LITHUANIAN" "PORTUGUESE" "FINNISH" "GERMAN" "ESTONIAN" "TURKISH" "BELGIAN" "HUNGARIAN" "LATVIAN" "CZECH" "MACEDONIA" "DUTCH" "ALBANIAN" "CROATIAN" "NORWEGIAN" "GREEK" "ARABICPERSAIN" "HEBREW" "ARABICWESTERN" "RUSSIAN" "ARABICEASTERN" "BULGARIAN" "ROMANIAN" If enabled, the monitoring statuses (such as Area, Zone, PGM and Trouble) are read automatically (every x seconds) from the control panel, and stored within the driver. This operation could be CPU intensive if several control panels are connected to the driver. You can disable the feature to reduce the CPU usage. If disabled, the CMS will have to call the Read Monitoring command every time it needs to update the monitoring status.
Answer 1. Function call returns HResult (see 2.2.2 Result Code List)
4. Disconnect Panel (Command)
Use to disconnect the client from the control panel Page 10 of 64
Request (Pascal STDCALL) function DisconnectPanel(const PanelID: Cardinal): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to disconnect Answer 1. Function call returns HResult (see 2.2.2 Result Code List)
5. Retrieve Panel Info (Command)
Use to retrieve the control panel definition such as version, area count, zone count Request (Pascal STDCALL) function RetrievePanelInfo(const PanelID: Cardinal; out XMLInfo: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLInfo) returns XMLData; see below:
0xA123 EVO192 0xA16D EVOHD The serial # of the connected control panel The version # of the connected control panel The revision # of the connected control panel The quantity of Area in the connected control panel The quantity of Zone in the connected control panel Page 11 of 64
The quantity of PGM in the connected control panel The quantity of User in the connected control panel The quantity of Door in the connected control panel The quantity of IP receiver in the connected control panel The quantity of schedule in the connected control panel The quantity of access level in the connected control panel The connected user # The connected user area access (comma-delimited, for example “1,2”)
6. Start IPDOX “Receiver” (Command)
Use to configure and activate the build in IP receiver Receive account registration and Ademco CID or SIA reporting event Forward reporting event to an automation software in ADEMCO685, RADIONIX6500 or SURGARDMLR2DG format via IP or serial link Account registration is received via the Account Registration callback function Reporting event is received via the Receive Reporting Event callback function Request (Pascal STDCALL) function ConfigureIPDOX(XMLSettings: WideString): HResult; stdcall; 1. Function parameter (XMLSettings) must contain XMLData; see below:
Page 12 of 64
Parameter definition
method name
Definition
Mandatory
"IPPassword" "ACCFilePath"
The receiver IP password The directory to store the .ACC file. The ACC file contains all keys required to communicate with the registered accounts. This file is used by the ParadoxAPI driver for internal storage.
"WANId" "WANEnabled" "WANPort"
ALWAYS PUT 1 (only 1 WAN is supported)
"WANAddress" "MonitoringAccountNo"
Set the network interface adapter to use to receive IP reporting Set the account # to use for internal reporting event to send to the automation software
Enable receiver WAN interface Set the port # to use to receive IP reporting
Convert and send the reporting event to an external automation software Select the media type to use to send reporting event to the external automation software Possible values "SERIAL" "IP" Select the port # to use to send reporting event via "Serial" Select the baud rate to use to send reporting event via "Serial" Use UDP instead of TCP for packet transmission to the automation software Select the port # to use to send reporting event via "IP" Select the IP address where to send the reporting event via "IP" Select the reporting event format to send to the external automation software Possible values "ADEMCO685" "RADIONIX6500" "SURGARDMLR2DG" Set the receiver # to send to the automation software Set # toID send to the software Set the the line header to send toautomation the automation software Set the trailer ID to send to the automation software Enable ACK mechanism between the ParadoxAPI and the automation software Set the ACK wait time out in seconds Enable test message to automation software Set test message interval in seconds Enable transmit custom partition # (always) to automation software Set the custom partition # to transmit Append account’s MAC address to every reporting event to send to the automation software
Answer 1. Function call returns HResult (see 2.2.2 Result Code List)
7. Delete IPDOX Account (Command)
Use to delete a registered account in the receiver storage file (.ACC file) Request (Pascal STDCALL) Page 13 of 64
function DeleteIPDOXAccount(MACAddress: WideString): HResult; stdcall; 1. MACAddress parameter identifies the account # to delete Answer 1. Function call returns HResult (see 2.2.2 Result Code List)
8. Start Monitoring (Command)
Use to initialize and retrieve (read) all system status Command retrieves all system status such as area, zone, pgm and trouble status from the connected control panel Client will be notified on status change via the Monitoring Status Changed event callback Request (Pascal STDCALL) function StartMonitoring(const PanelID: Cardinal): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to start monitoring Answer 1. Function call returns HResult (see 2.2.2 Result Code List)
9. Read Monitoring (Command)
Use to refresh (read) all system status Command retrieves all system status changes from the connected control panel Client will also be notified on status change via the Monitoring Status Changed event callback Request (Pascal STDCALL) function ReadMonitoring(const PanelID: Cardinal; out XMLMonitoring: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve system status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLMonitoring) returns XMLData; see below: …
Parameter definition 1. See Area Status, Zone Status and PGM Status functions
10. Register Panel (Command)
Use to register the connected control panel to the programmed IP receiver, see Write IP Reporting command for IP receiver settings Registration status can be retrieved via the Registration Status command Registration allows client to receive account registration and event reporting from the control panel Client is notified every time an event is reported via the Receive Reporting Event event callback Request (Pascal STDCALL) function RegisterPanel(const PanelID: Cardinal; XMLAction: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to register Answer 1. Function call returns HResult (see 2.2.2 Result Code List) Page 14 of 64
11. Control Area (Command)
Use to control (arm, disarm..) areas Area status can be retrieved via the Area Status command Client is notified every time an area status changes via the Monitoring Status Changed event callback Request (Pascal STDCALL) function ControlArea(const PanelID: Cardinal; XMLArea: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to control area(s) Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. XMLArea parameter must contain XML data; see below:
method name "Command"
Parameter definition Definition Possible Values "ARM" "FORCE" "STAY" "SLEEP" "INSTANT" "DISARM" Not used All area # to affect, comma delimited ex: (1,2,3)
"Timer" "Items"
Description Arm selected area(s) Force arm selected area(s) Stay Sleeparm armselected selectedarea(s) area(s) Instant arm selected area(s) Disarm selected area(s)
12. Area Status (Command)
Use to retrieve (read) all area status Request (Pascal STDCALL) function AreaStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the area status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLStatus) returns XMLData; see below:
Section name
Parameter definition Key name
Definition Page 15 of 64
AreaStatus
Area%d
All area status comma delimited ex : "Ready,Armed" Possible Values Description "Ready" Area is ready to arm "Armed" Area is armed "Armed Away" Area is armed in Away mode (full armed) "Armed Stay" Area is armed in Stay mode "Armed No Entry" Area is armed in Instant mode "Arm with voice module" Area has been armed via the voice module "Armed With Remote" Area has been armed with a remote control "Auto-Arm" Area has auto-armed "Auto Stay Arm" Area has auto-armed in Stay mode "Sleep Armed" Area has been armed in Sleep mode "Pulse Alarm" Area is in alarm, siren is pulsed "Force Armed" Area is Force armed "In Alarm" Area is in alarm "Silent Alarm" Area is in alarm, siren is silent "Audible Alarm" Area is in alarm, siren is audible "24Hr Buzzer" Area is in alarm from 24hr zone, only keypad buzzer is activated "Fire Alarm" Area is in fire alarm "In Exit Delay" Area is in Exit delay "In Entry Delay" Area is in Entry delay "In Fire Delay" Area is in Fire delay "In Lockout" Area is in lockout "In Intellizone Delay" Area is in Intellizone delay "Police Code Delay" Area in Police code delay, waiting for a second zone to go into alarm before sending the police code to central monitoring station "In Trouble" Area has a trouble present "Alarm In Memory" During previous armed period, an alarm occurred in this area "Bypassed" Zones are bypassed in this area "In Programming Mode" "In StayD" "Lockout" "Zone In Memory" "Follow Become Delay When Bypassed" "Zones Supervision Trouble" "Cancel Alarm Reporting On Disarming" "System Recently Closed" "Panic Alarm" "Panic Medical Alarm" "Panic Fire Alarm" "Police Code Alarm" "Strobe" "Burglary Alarm" "Global Memory" "Global Bypass" "Zone Exit Delay" "Exit End" "Entry Delay End" "Intellizone End"
System is in programming mode Area has StayD activated Area in lockout, too many invalid codes have been entered Area has a zone in memory Area has its delay zone bypassed, therefore it is using the Follow zone as a delay2 Area has a zone supervision trouble Area has canceled reporting due to disarming (user code entered) An alarm has been triggered during the recent closing delay A panic alarm has triggered an alarm in this area A medical panic has triggered an alarm in this area A fire panic has triggered an alarm in this area A second zone alarm was triggered during the Police Code delay Area in Strobe alarm, only deactivates at user code entry after alarm Area in Burglary alarm Area has a Global Memory Area has a global Bypass Area has a zone in exit delay Area’s exit delay has ended Area’s entry delay has ended
Intellizone delay has ended Page 16 of 64
"Bell Delay" "Bell End" "Tx. Delay" "Tx. Delay End" "No Exit Delay" "Remote Path" "Pre-Alarm Delay" "Bell Activated" "In Disarm Delay" "Zones Low Battery" "Zones Fire Loop Trouble" "Zones Tampered"
Siren is activated and timed Siren has turned off after the bell cutoff time Transmission delay has been activated Transmission delay has elapsed Area has been armed, exit delay has been skipped Entry path (in StayD) has been disable by a remote control A zone with a pre-alarm delay has been activated Siren is activated Area is in disarm delay Area has zones indicating low battery Area has zones in fire loop trouble Area has zones tampered
13. Control Zone (Command)
Use to control (bypass, unbypass) zones Zone status can be retrieved via the Zone Status command Client is notified every time a zone status changes via the Monitoring Status Changed event callback Request (Pascal STDCALL) function ControlZone(const PanelID: Cardinal; XMLZone: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to control zone Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. XMLZone parameter must contain XML data; see below:
method name "Command"
"Timer" "Items"
Parameter definition Definition Possible Values Description "BYPASS" Bypass selected zone(s) "UNBYPASS" Unbypass selected zone(s) Not used All zone # to affect, comma delimited ex: (1,2,3)
14. Zone Status (Command)
Use to retrieve (read) all zone status Request (Pascal STDCALL) function ZoneStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the zone status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLStatus) returns XMLData; see below: Page 17 of 64
Section name ZoneStatus
Parameter definition Key name Zone%d
Definition All zone status comma delimited ex : "Opened,In Alarm" Possible Values Description "Closed" Zone is closed "Enabled" Zone is programmed "Opened" Zone is opened "Tampered" Zone is tampered "In Alarm" Zone is in alarm "In Entry Delay" Entry delay zone is triggered and is counting down "Bypassed" Zone is bypassed "Intellizone Delay" Intellizone delay has been initiated and the panel is waiting for another Intellizone to trigger for an alarm to be generated "Supervision Trouble" Zone is in Supervision Trouble (wireless zone not communicating) "Transmission Delay" Zone is in alarm and waiting for the transmission delay to expire to send reporting into the central monitoring station "Shutdown" Zone has reached the maximum number of alarms in one armed period and has been shutdown by the panel "In Fire Delay" Fire zone has triggered and is in Fire Delay "Alarm In Memory" An alarm memory is present on this zone (an alarm happened in the last arming period)
15. Control PGM (Command)
Use to control (activate, deactivate, etc.) PGMs PGM status can be retrieved via the PGM Status command Client is notified every time a PGM status changes via the Monitoring Status Changed event callback Request (Pascal STDCALL) function ControlPGM(const PanelID: Cardinal; XMLPGM: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to control pgm Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. XMLPGM parameter returns XML data; see below:
method name "Command"
"Timer" "Items"
Parameter definition Definition Possible Values Description "ON" Activate selected PGM(s) "OFF" Deactivate selected PGM(s) "TEST" Test PGM(s), activate for few seconds Activation time (duration) in seconds (not yet implemented) All PGM # to affect, comma delimited ex: (1,2,3)
16. PGM Status (Command)
Use to retrieve (read) all PGM status Request (Pascal STDCALL) function PGMStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the PGM status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLStatus) returns XMLData; see below:
Section name PGMStatus
Parameter definition Key name PGM%d
Definition All PGM status comma delimited ex : "On,TimerMSec=100" Possible Values Description "On" PGM is currently in the On position "Off" PGM is currently in the Off position "Tampered" PGM module has detected a tamper "Power Failure" Power failure detected on the PGM module "Low Battery" Low battery on the PGM module "Supervision Trouble" PGM module in supervision trouble "Timed" PGM is activated in timed mode "TimerMSec=%d" (%d = PGM is activated in timed mode and this remaining time in value indicates the remaining time before the milliseconds) PGM will deactive "Slow Pulse Mode" PGM is pulsing slowly (on panel armed status) "Fast Pulse Mode" PGM is pulsing quickly (on panel alarm status) "Steady" PGM activated in steady mode "Unavailable" PGM status is unavailable
17. Control Door (Command)
Use to control (unlock or lock) doors Door status can be retrieved via the Door Status command Client is notified every time a door status changes via the Monitoring Status Changed Page 19 of 64
event callback Request (Pascal STDCALL) function ControlDoor(const PanelID: Cardinal; XMLDoor: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to control door Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. XMLDoor parameter returns XML data; see below:
method name "Command"
"Timer" "Items"
Parameter definition Definition Possible Values Description "Lock" Lock selected door(s) "Unlock" or “Unlock Steady” Unlock selected door(s) (steady mode) "Unlock Preset Time" Unlock selected door(s) (use preset time) "Unlock Custom Time" Unlock selected door(s) (use custom time) Set custom unlock time in seconds All door # to affect, comma delimited ex: (1,2,3)
18. Door Status (Command)
Use to retrieve (read) all door status Request (Pascal STDCALL) function DoorStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the door status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLStatus) returns XMLData; see below:
Section name DoorStatus
Parameter definition Key name Door%d
Definition All PGM status comma delimited ex : "Opened, REX" Possible Values Description "Disabled" Door is not programmed "Opened" "Locked" "REX" "Left Open Pre-Alarm" "Left Open Alarm" "Forced Alarm"
Door contact is in the Open position Door is locked (relay not active) Request to Exit had been triggered Door Left Open Pre-Alarm time has elapsed Door Left Open Alarm has elapsed Door Forced Alarm has been triggered Page 20 of 64
"Fire Alarm"
"Unlocked Timed by PC" "Unlocked Steady by PC" "Tampered" "Access Granted" "Unlocked by Schedule" "Unlocked by PC" "Unlocked on Reader" "Unlocked in Shabbat" "Door Armed" "Unlocked Delay Engaged"
Door has received a fire alarm from the panel and, depending on the programming, may have unlocked Door has been Unlocked by the PC in Timed mode, will relock at the end of the period Door has been Unlocked by the PC in Steady mode, needs to be relocked manually Tamper detected on the door module Access Granted has been received Door has been unlocked by an Unlock Schedule Door has been unlocked by the PC Door has been unlocked by the reader Door has been unlocked by the Shabbat mode Door is armed, therefore locked Door unlocked delay has been activated
19. IP Reporting Status (Command) Use to retrieve (read) the IP reporting registration status Request (Pascal STDCALL) function IPReportingStatus(const PanelID: Cardinal; out XMLStatus: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the registration status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLStatus) returns XMLData; see below:
Parameter definition
method name "Registered" "RegistrationStatus"
"RegistrationError"
Definition The control panel is registered to an IP receiver Possible Values Description "Unregistered" The control panel is not registered to any receiver "Registered" The control panel is registered to a receiver "Registration In Progress" The control panel is currently in registration process with a receiver "Registration Error" There is a registration error (see registration error bellow) Possible Values Description There’s no IP module connected to the control panel "No IP Module" "DHCP Error" "No IP Address" "No IP Port" "No IP Account"
The IP address of the IP module is invalid The IP address of the IP module is invalid The IP port of the IP module is invalid There’s no IP account # programmed in the control
panel "No Access Point Name"
There’s no access point programmed in the control
panel Page 21 of 64
"Cannot Connect" "Invalid Profile"
Unable to connect to the receiver The profile ID programmed in the control panel is invalid The reporting format programmed in the control panel is invalid The account # is already registered in the receiver The receiver is full (no more account available)
"Invalid Format" "Account in Use" "IP Full"
20. System Troubles (Command)
Use to retrieve (read) all system troubles Request (Pascal STDCALL) function SystemTroubles(const PanelID: Cardinal; out XMLTroubles: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the PGM status Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLTroubles) returns XMLData; see below:
Section name PanelTrouble
Parameter definition Key name Trouble%d
Definition All system troubles Trouble (Name and Format) "Zone Tampered:%s" "Battery Failure" "AC Failure" "Wireless Low Battery:%s" "Fire Loop Trouble:%s " "Zone Supervision Trouble:%s" "Auxiliary Current Limit" "Bell Current Limit" "Bell Absent" "Dialer Trouble" "ROM/RAM Error:%s" "Smoke Detector CleanME:%s" "IP Unregistered" "RF Siren Battery Fail" "RF Siren AC Fail" "RF Repeater AC Fail:%s" "RF Repeater BATT Fail:%s" "RF Keypad AC Fail:%s" "RF Keypad Battery Fail:%s"
"IP Receiver 1 Fail to comm" "IP Receiver 2 Fail to comm" "PGM Tamper:%d" "PGM RF Supervision Trouble:%d" "RF Zone Supervision Trouble:%s" "Pulsed Alarm:%d" "Buzzer Alarm:%d" "Silent Alarm:%d" "In Alarm:%d" "RAM Error" "Panic Medical:%d" "Zone in Alarm:%d" "Alarm In Memory:%d" "TLM Trouble" "Clock Trouble" "Module TLM Trouble:%s" "Panel Failed To Communicate" "Module Tamper:%s" "Bus Module Communication Fault:%s" "Module Failed to communicate:%s" "Module Printer Fault:%s" "Module AC Failure:%s" "Module Battery Failure:%s" "Module Supply Output Trouble:%s" "Module Supervision Loss Trouble:%s" "Missing Keypad:%s" "Missing Module:%s" "Safety Mismatch" "Global Bus Failure" "General communication failure:%s" "Bus Overload" "Bus Module Misunderstand" "Wireless Missing Module:%s" "485 Power:%s" "Bus Failure:%s" "Module Overheat:%s" "Module Output Failure:%s"
Serial # None None Separator = : , %d = PGM # Separator = : , %d = PGM # Separator = : , %s = Module Serial # Separator = : , %d = Area # Separator = : , %d = Area # Separator = : , %d = Area # Separator = : , %d = Area # None Separator = : , %d = Area # Separator = : , %d = Zone # Separator = : , %d = Area # None None Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # None None Separator = : , %s = Module Serial # None None Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Serial # Separator = : , %s = Module Page 23 of 64
"Module Blown Fuse:%s" "Module RF Jam:%s" "Module VBus Failure:%s" "Module Anti-Mask Failure:%s" "Module X10 Failure:%s" "Module Overload Failure:%s" "Module Too Cold:%s" "Ethernet Link" "Reporting Link" "Reporting Report" "IP Module No Service" "Zone Tamper:%d" "Fire loop trouble" "GSM No Service" "GSM No Service" "Fail to communicate to pager report" "Fail to communicate to personnal channel 1" "Fail to communicate to personnal channel 2" "Fail to communicate to personnal channel 3" "Fail to communicate to personnal channel 4" "Fail to communicate to personnal channel 5" "Fail to communicate to personnal channel 6" "Fail to communicate to personnal channel 7" "Fail to communicate to personnal channel 8" "Fail to communicate CSTN Path 1" "Fail to communicate CSTN Path 2" "Fail to communicate CSTN Path 3" "Fail to communicate CSTN Channel GPRS 1" "Fail to communicate CSTN Channel GPRS 2" "Fail to communicate CSTN Channel IP 1" "Fail to communicate CSTN Channel IP 2" "Fail to communicate CSTN Channel Land 1" "Fail to communicate CSTN Channel Land 2" "Fail to communicate CSTN Channel GSM 1"
Use to read the control panel current time stamp Compare with local (DB) value to detect programming changes in the control panel Request (Pascal STDCALL) function ReadTimeStamp(const PanelID: Cardinal; BlockID: Cardinal; out XMLTimeStamp: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the time stamp 2. BlockID parameter identifies the time stamp to retrieve (0 = global) Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. XMLTimeStamp parameter returns time stamp
Page 25 of 64
method name "BlockID"
Definition Retrieve time stamp on a specific section in control panel Possible Values Description 0x00 Global time stamp (all programming) 0x01 Area programming time stamp 0x02 Zone programming time stamp 0x03 PGM programming time stamp 0x04 User programming time stamp 0x05 Door programming time stamp 0x06 Schedule programming time stamp 0x07 Holidays time stamp 0x08 Access Level programming time stamp 0x09 IP Reporting programming time stamp
22. Read Panel Date and Time (Command)
Use to retrieve (read) control panel current date and time Request (Pascal STDCALL) function ReadDateTime(const PanelID: Cardinal; var DateTime: Double): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve the date and time Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. DateTime parameter returns time value in double format
23. Write Panel Date and Time (Command)
Use to update (write) control panel current date and time Request (Pascal STDCALL) function WriteDateTime(const PanelID: Cardinal; DateTime: Double): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to update the date and time Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. DateTime parameter must contain the new time value in double format
24. Read All Areas (Command)
Use to retrieve (read) all areas programming Request (Pascal STDCALL) function ReadAllAreas(const PanelID: Cardinal; out XMLAreas: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLAreas) returns XMLData, see TPanelAreaXML
25. Read Area (Command)
Use to retrieve (read) area programming Request (STDCALL) function ReadArea(const PanelID: Cardinal; AreaNo: Cardinal; out XMLArea: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information 2. AreaNo parameter identifies the area # to read programming Answer Page 26 of 64
1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLArea) returns XMLData; see below: Parameter definition
Area # Area label (up to 16 characters) Area is enabled (active) in the control panel Area exit delay in seconds Area bell cut off timer in seconds Area auto arming time (date time in double) Area no movement timer (value x 15 minutes) Area entry delay 1
Area entry delay 2 Area special exit delay (while arming from software) Area arm no movement schedule 1, start time Area arm no movement schedule 1, end time Area arm no movement schedule 1, days (comma delimited, ex: “sun, tue”) Area arm no movement schedule 2, start time Area Area arm arm no no movement movement schedule schedule 2, 2, end daystime (comma delimited, ex: “sun, tue”) Area report arming schedule 1, start time Area report arming schedule 1, end time Area report arming schedule 1, days (comma delimited, ex: “sun, tue”) Area report arming schedule 2, start time Area report arming schedule 2, end time Area report arming schedule 2, days (comma delimited, ex: “sun, tue”) Area report disarming schedule 1, start time Area report disarming schedule 1, end time Area report disarming schedule 1, days (comma delimited, ex: “sun, tue”) Area report disarming schedule 2, start time Area report disarming schedule 2, end time Area report disarming schedule 2, days (comma delimited, ex: ”sun, tue”) Area arm instantly (no exit delay) via remote Area bell siren is enabled and will trig upon alarm Area squawk on auto arm is enabled Area squawk on arm is enabled Area squawk on exit delay is enabled Area ring back option: Possible Values "Bell Squawk & Keypad Beep" "Bell Squawk" Page 28 of 64
Area squawk on remote arm is enabled Area one touch regular arm is enabled Area one touch stay arm is enabled Area one touch instant arm is enabled Area one touch force arm is enabled Area one touch instant disarm is enabled Area can be bypassed Area follows areas: (comma delimited, ex: “2,3”)
Area switch to stay arm if no entry Area switch to force arm if regular armed Area switch to force arm if stay armed Area switch to entry delay 2 after delay 1 elapsed Area maximum zone qty than can be bypassed Area auto arm is enabled Area postpone auto arm is enabled Area auto arm method: Possible Values "Force" "Stay" Area auto arm on no movement is enabled Area panic 1 is enabled Area panic 2 is enabled Area panic 3 is enabled Area auto zone shutdown counter Area recent closing Area invalid code attempts before keypad lockout Area keypad lockout duration Area recycle alarm delay Area recycle count Area police code delay Area police code on zone close only
Use to retrieve (read) all zones programming Request (Pascal STDCALL) function ReadAllZones(const PanelID: Cardinal; out XMLZones: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLZones) returns XMLData, see TPanelZoneXML
27. Read Zone (Command)
Use to retrieve (read) zone programming Request (Pascal STDCALL) function ReadZone(const PanelID: Cardinal; ZoneNo: Cardinal; out XMLZone: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information 2. ZoneNo parameter identifies the zone # to read programming Answer 1. Function call returns HResult (see 2.2.2 Result Code List) Page 29 of 64
2. Function parameter (XMLZone) returns XMLData; see below:
Zone # Zone is enabled (active) in the control panel Zone label (up to 16 characters) Zone serial # Zone input # Zone area assignment Zone definition Possible Values "Disabled" "Delayed Fire" "Entry Delay 1" "Instant Fire Silent" "Entry Delay 2" "Delayed Fire Silent" "Entry Delay 1 Full Arm" "24 Hours Buzzer" "Entry Delay 2 Full Arm" "24 Hours Burglary" "Follow" "24 Hours Holdup" "Follow Sleep Full Arm" "24 Hours Gaz" "Follow Full Arm" "24 Hours Heat" "Instant" "24 Hours Water" "Instant Sleep Full Arm" "24 Hours Freeze" "Instant Full Arm" "24 Hours Panic 1" "Instant Fire" "Follow No PreAlarm" "Auto Verified Fire CP01" "Instant No PreAlarm" "Custom Zone Template 1" "Keyswitch Maintained" "Custom Zone Template 2" "Keyswitch Momentary" Page 30 of 64
"ZoneStay" "ZoneForce" "ZoneBypass"
"Custom Zone Template 3" "Custom Zone Template 4" Zone alarm type Possible Values "Steady Alarm" "Pulsed Alarm" "Silent Alarm" "Report Only" "Unknown" Zone stay is enabled Zone force is enabled Zone bypass is enabled
Zone shutdown is Zone auto RF supervision is enabled enabled Zone intellizone is enabled Zone delay before transmission in seconds
"ZoneAlarmType"
"ZX8 Input Tamper"
(EVO panel only)
"ZoneTXSerialNo Zone transmitter serial # "ZoneTamperFollowGlobalSetting" Zone tamper follow global panel settings "ZoneTamperSupervision" Zone tamper supervision is enabled "ZoneAntiMaskFollowGlobalSetting Zone anti mask follow global panel settings " "ZoneAntiMaskSupervision" Zone anti mask supervision is enabled "ZoneBuzzerAlarmWhenDisarm" Zone generates buzzer alarm on disarm "ZoneBuzzerAlarmReported" Zone buzzer alarm is reported to central station
28. Read All PGMs (Command)
Use to retrieve (read) all areas programming Request (Pascal STDCALL) function ReadAllPGMs(const PanelID: Cardinal; out XMLPGMs: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLPGMs) returns XMLData, see TPanelPGMXML
29. Read PGM (Command)
Use to retrieve (read) PGM programming Request (Pascal STDCALL) function ReadPGM(const PanelID: Cardinal; PGMNo: Cardinal; out XMLPGM: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information 2. PGMNo parameter identifies the PGM # to read programming Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLPGM) returns XMLData; see below:
PGM # PGM label (up to 16 characters) PGM activation duration in seconds PGM serial # PGM input # PGM Activation event description PGM Deactivation event description PGM initial state: Possible Values "Pulse" "Steady" PGM pulse every 30 seconds is enabled PGM pulse on alarm is enabled
(EVO panel only)
"PGMInitialState"
PGM initial state: Possible Values "Normally "Normally Closed" Open"
30. Read All Doors (Command)
Use to retrieve (read) all doors programming Request (Pascal STDCALL) function ReadAllDoors(const PanelID: Cardinal; out XMLDoors: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLDoors) returns XMLData, see TPanelDoorXML
31. Read Door (Command)
Use to retrieve (read) door programming Request (Pascal STDCALL) function ReadDoor(const PanelID: Cardinal; DoorNo: Cardinal; out XMLDoor: WideString): HResult; stdcall; parameter identifies the connected control panel to retrieve information 1. PanelID 2. DoorNo parameter identifies the door # to read programming Answer 1. Function call returns HResult (see 2.2.2 Result Code List) 2. Function parameter (XMLDoor) returns XMLData; see below: Page 32 of 64
Definition Door # Door label (up to 16 characters) Door is enabled (active) in the control panel Door serial # Door area(s) assignment (comma delimited, ex: “1,2”) Door access control is enabled Door access option: Possible Values "Or" "And" Door access via valid code on keypad Door access requires valid code and card Door access restricted while system is armed Door access restricted while system is disarmed Door generates burglary alarm on force arm Door unlock schedule 1, start time Door unlock schedule 1, end time Door unlock schedule 1, days (comma delimited, ex: “sun, tue”) Door unlock schedule 2, start time Door unlock schedule 2, end time Door unlock schedule 2, days (comma delimited, ex: “sun, tue”) Door safe mode is enabled Page 33 of 64
Door same mode card # (1) (format: “000:00000”) Door same mode card # (2) (format: “000:00000”) Door same mode card # (3) (format: “000:00000”) Door access via card activates unlock schedule Door unlocks on fire alarm Door unlocks on request for exit
32. Write Door (Command)
Use to add or update (write) door programming Request (Pascal STDCALL) function WriteDoor(const PanelID: Cardinal; DoorNo: Cardinal; XMLDoor: WideString): HResult; stdcall; 1. PanelID parameter identifies the connected control panel to retrieve information 2. DoorNo parameter identifies the door # to write programming 3. Function parameter (XMLDoor) must contain XMLData; see below: