You are on page 1of 64

Paradox API

Software Development Kit


V2.6
(Control Panel Integration)

Revision Date: February 5, 2016


Table of Contents

1. DOCUMENT HISTORY LOG ............................................................................................ 4


2. PROJECT OVERVIEW ....................................................................................................... 5
2.1. FEATURE OVERVIEW...........................................................................................................................5
2.1.1. Paradox API - Driver .......................................................................................................................................................................... 5
2.1.2. Paradox API – Installation .................................................................................................................................................................. 5
2.1.3. Paradox API - Demo Application ....................................................................................................................................................... 5
2.1.4. Paradox API – Paradox Video Player ................................................................................................................................................. 6
2.2. API DEFINITION ..................................................................................................................................7
2.2.1. Paradox API - Command List ............................................................................................................................................................. 7
1. Get Driver Version............................................................................................................................................................................ 7
2. Discover Module (Command) ......................................................................................................................................................... 7
3. Connect Panel (Command) ............................................................................................................................................................ 9
4. Disconnect Panel (Command) ..................................................................................................................................................... 10
5. Retrieve Panel Info (Command)................................................................................................................................................... 11
6. Start IPDOX “Receiver” (Command) ........................................................................................................................................... 12
7. Delete IPDOX Account (Command) ............................................................................................................................................ 13
8. Start Monitoring (Command) ........................................................................................................................................................ 14
9. Read Monitoring (Command) ....................................................................................................................................................... 14
10. Register Panel (Command) .......................................................................................................................................................... 14
11. Control Area (Command) .............................................................................................................................................................. 15
12. Area Status (Command)................................................................................................................................................................ 15
13. Control Zone (Command) ............................................................................................................................................................. 17
14. Zone Status (Command) ............................................................................................................................................................... 17
15. Control PGM (Command) ............................................................................................................................................................. 18
16. PGM Status (Command) ............................................................................................................................................................... 19
17. Control Door (Command) .............................................................................................................................................................. 19
18. Door Status (Command) ............................................................................................................................................................... 20
19. IP Reporting Status (Command) .................................................................................................................................................. 21
20. System Troubles (Command)....................................................................................................................................................... 22
21. Read Panel Time Stamp (Command) ......................................................................................................................................... 25
22. Read Panel Date and Time (Command)..................................................................................................................................... 26
23. Write Panel Date and Time (Command) ..................................................................................................................................... 26
24. Read All Areas (Command) .......................................................................................................................................................... 26
25. Read Area (Command) ................................................................................................................................................................. 26
26. Read All Zones (Command) ......................................................................................................................................................... 29
27. Read Zone (Command)................................................................................................................................................................. 29
28. Read All PGMs (Command) ......................................................................................................................................................... 31
29. Read PGM (Command)................................................................................................................................................................. 31
30. Read All Doors (Command).......................................................................................................................................................... 32
31. Read Door (Command) ................................................................................................................................................................. 32
32. Write Door (Command) ................................................................................................................................................................. 34
33. Read All Schedules (Command) .................................................................................................................................................. 35
34. Read Schedule (Command) ......................................................................................................................................................... 35
35. Write Schedule (Command) ......................................................................................................................................................... 35
36. Read All Access Level (Command) ............................................................................................................................................. 36
37. Read Access Level (Command) .................................................................................................................................................. 36
38. Write Access Level (Command)................................................................................................................................................... 37
39. Read Holidays (Command) .......................................................................................................................................................... 38
40. Write Holidays (Command) ........................................................................................................................................................... 38
41. Read All Users (Command) .......................................................................................................................................................... 38
42. Read User (Command) ................................................................................................................................................................. 39
43. Write Multiple Users (Command) ................................................................................................................................................. 40
44. Write User (Command).................................................................................................................................................................. 40
45. Read IP Reporting (Command) .................................................................................................................................................... 42
46. Write IP Reporting (Command) .................................................................................................................................................... 43

Page 2 of 64
47. Read Buffer Events (Command) .................................................................................................................................................. 44
48. Read Buffer Events EX (Command)............................................................................................................................................ 44
49. Get Site from PMH (Command) ................................................................................................................................................... 44
50. Configure Video Server (Command) ........................................................................................................................................... 45
51. Get Video Alarm Files (Command) .............................................................................................................................................. 46
52. Start Video on Demand (Command) ........................................................................................................................................... 47
53. Start Video on Demand EX (Command) ..................................................................................................................................... 48
54. Stop Video on Demand (Command) ........................................................................................................................................... 49
55. Connection Status Changed (Event) ........................................................................................................................................... 49
56. Progress Changed (Event) ........................................................................................................................................................... 50
57. Progress Error (Event)................................................................................................................................................................... 50
58. SMS Request (Event) .................................................................................................................................................................... 52
59. Receive Reporting Event (Event) ................................................................................................................................................. 53
60. Account Registration (Event) ........................................................................................................................................................ 54
61. Account Update (Event) ................................................................................................................................................................ 55
62. Account Link (Event) ...................................................................................................................................................................... 55
63. Receive Buffer Event (Event) ....................................................................................................................................................... 56
64. Receive Live Event (Event) .......................................................................................................................................................... 57
65. Monitoring Status Changed (Event) ............................................................................................................................................ 58
66. RX Status Changed (Event) ......................................................................................................................................................... 58
67. TX Status Changed (Event) .......................................................................................................................................................... 59
68. IP Module Detected (Event).......................................................................................................................................................... 59
69. IPDOX Socket Changed (Event) .................................................................................................................................................. 60
70. Unregister All (Command) ............................................................................................................................................................ 60
2.2.2. 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”
command
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
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:

<?xml version="1.0"?>
<objects>
<object objectname="TModuleInfoXML" name="Module1">
<published>
<method name="MacString" readonly="True" type="UnicodeString"></method>
<method name="NetMaskString" readonly="True" type="UnicodeString"></method>
<method name="DHCPString" readonly="True" type="UnicodeString"></method>
<method name="TypeString" readonly="True" type="UnicodeString"></method>
<method name="IPString" readonly="True" type="UnicodeString"></method>
<method name="SiteNameString" readonly="True" type="UnicodeString"></method>
<method name="SiteIDString" readonly="True" type="UnicodeString"></method>
<method name="VersionString" readonly="True" type="UnicodeString"></method>
<method name="IPPortString" readonly="True" type="UnicodeString"></method>
<method name="WebPortString" readonly="True" type="UnicodeString"></method>
<method name="LanguageString" readonly="True" type="UnicodeString"></method>
<method name="SerialNoString" readonly="True" type="UnicodeString"></method>
<method name="HTTPSPortString" readonly="True" type="UnicodeString"></method>
<method name="DiscoverOnLAN" readonly="True" type="Boolean">False</method>
<method name="UseHTTPSString" readonly="True" type="UnicodeString"></method>
<method name="RegisteredToPMH" readonly="True" type="Boolean">False</method>
<method name="NetworkInterfaceIpAddress" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"MacString" The MAC address of the detected IP module
"NetMaskString" The NETMASK of the detected IP module
"DHCPString" If the detected IP module uses DHCP mode (DHCP enable)
"TypeString" Possible Values
"IP100"
"IP150"
"PCS250"
"PCS250G"
"IPR512"
"HD77"
"IPString" The IP address of the detected IP module
"SiteNameString" The Site Identification (Name) of the detected IP module
"SiteIDString" The Site ID (used to access the module via ParadoxMyHome) of the detected IP module
"VersionString" The version (version.revision.build) of the detected IP module
"IPPortString" The IP port # (used to connect to the module via end-user/installer software) of the detected IP
module
"WebPortString" The WEB port # (use to connect to the module via the web page) of the detected IP module
"LanguageString" The current language of the detected IP module
"SerialNoString" The serial # of the control panel connected to the detected IP module
"HTTPSPortString" The HTTPS port # of the detected IP module
"DiscoverOnLAN" Future use

Page 8 of 64
"UseHTTPSString" If the detected IP module use HTTPS
"RegisteredToPMH" If the detected IP module is registered to ParadoxMyHome
"NetworkInterfaceIp The network interface (IP address) where the IP module has been detected
Address"

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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelSettingsXML" name="Settings">
<published>
<method name="PanelType" readonly="False" type="UnicodeString"></method>
<method name="ComType" readonly="False" type="UnicodeString"></method>
<method name="SiteID" readonly="False" type="UnicodeString"></method>
<method name="SerialNo" readonly="False" type="UnicodeString"></method>
<method name="IPAddress" readonly="False" type="UnicodeString"></method>
<method name="IPPort" readonly="False" type="Integer">0</method>
<method name="ComPort" readonly="False" type="Integer">0</method>
<method name="BaudRate" readonly="False" type="Integer">0</method>
<method name="SMSCallback" readonly="False" type="Boolean">False</method>
<method name="IPPassword" readonly="False" type="UnicodeString"></method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="SystemAlarmLanguage" readonly="False" type="UnicodeString"></method>
<method name="MonitoringPollingEnabled" readonly="False" type="Boolean">True</method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"PanelType" Possible Values Description
"" or "Auto Detect" Auto detect panel type
"SP4000" SP4000 control panel
"SP5500" SP5500 control panel
"SP6000" SP6000 control panel
"SP7000" SP7000 control panel
"SP65" SP65 control panel
"MG5000" MG5000 control panel
"MG5050" MG5050 control panel
"EVO192" EVO192 control panel
"EVOHD" EVOHD control panel
"ComType" Possible Values Description
"SERIAL" Connect to control panel via serial cable
"IP" Connect to control panel via IP module (IP socket)

Page 9 of 64
"DNS" 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
"SiteID" The SiteID in ParadoxMyHome to use for "DNS" connection
"SerialNo" Future use
"IPAddress" The static IP address to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection
"IPPort" The IP port to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection
"ComPort" The COM port to use for "SERIAL" connection
"BaudRate" Possible Values Description
0 Auto detect baud rate
9600 9600bps
38400 38400bps
57600 57600bps
"SMSCallback" 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.
"IPPassword" The IP password to use for "IP" or "GPRSSTATIC" or "GPRSPRIVATE" connection. The
IP password must exist in the IP or GPRS module.
"UserCode" The user code to use for connection to the control panel. The user code must exist and
have sufficient rights in the control panel.
"SystemAlarmLanguage" 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"
"MonitoringPollingEnabled" 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:

<objects>
<object objectname="TPanelInfoExXML" name="PanelInfoEx">
<published>
<method name="Description" readonly="True" type="UnicodeString"></method>
<method name="ProductID" readonly="True" type="Integer">0</method>
<method name="SerialNo" readonly="True" type="UnicodeString"></method>
<method name="Version" readonly="True" type="Integer">0</method>
<method name="Revision" readonly="True" type="Integer">0</method>
<method name="Build" readonly="True" type="Integer">0</method>
<method name="AreaCount" readonly="True" type="Integer">0</method>
<method name="ZoneCount" readonly="True" type="Integer">0</method>
<method name="PGMCount" readonly="True" type="Integer">0</method>
<method name="UserCount" readonly="True" type="Integer">0</method>
<method name="DoorCount" readonly="True" type="Integer">0</method>
<method name="ReceiverCount" readonly="True" type="Integer">0</method>
<method name="ScheduleCount" readonly="True" type="Integer">0</method>
<method name="AccessLevelCount" readonly="True" type="Integer">0</method>
<method name="UserNo" readonly="True" type="Integer">0</method>
<method name="UserPartitionAccess" readonly="True" type=" UnicodeString "></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"Description" The product name of the control panel
"ProductID" Possible values Description
0xAE53 SP4000
0xA41E SP5500
0xA41F SP6000
0xA420 SP7000
0xAE54 SP65
0xA524 MG5000
0xA526 MG5050
0xA123 EVO192
0xA16D EVOHD
"SerialNo" The serial # of the connected control panel
"Version" The version # of the connected control panel
"Revision" The revision # of the connected control panel
"AreaCount" The quantity of Area in the connected control panel
"ZoneCount" The quantity of Zone in the connected control panel

Page 11 of 64
"PGMCount" The quantity of PGM in the connected control panel
"UserCount" The quantity of User in the connected control panel
"DoorCount" The quantity of Door in the connected control panel
"ReceiverCount" The quantity of IP receiver in the connected control panel
"ScheduleCount" The quantity of schedule in the connected control panel
"AccessLevelCount" The quantity of access level in the connected control panel
"UserNo" The connected user #
"UserPartitionAccess" 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:

<?xml version="1.0"?>
<objects>
<object objectname="TIPDOXSettingsXML" name="Settings">
<published>
<method name="IPPassword" readonly="False" type="UnicodeString"></method>
<method name="ACCFilePath" readonly="False" type="UnicodeString"></method>
<method name="LogEnabled" readonly="False" type="Boolean">False</method>
<method name="LogLevel" readonly="False" type="Integer">0</method>
<method name="LogInterval" readonly="False" type="Integer">0</method>
<method name="LogFileLifeTime" readonly="False" type="Integer">0</method>
<method name="LogMaxDiskSize" readonly="False" type="Integer">0</method>
<method name="LogFileDir" readonly="False" type="UnicodeString"></method>
<method name="OutputEnabled" readonly="False" type="Boolean">False</method>
<method name="OutputType" readonly="False" type="UnicodeString"></method>
<method name="OutputCOMPort" readonly="False" type="Integer">0</method>
<method name="OutputBaudRate" readonly="False" type="Integer">0</method>
<method name="OutputUDP" readonly="False" type="Boolean">False</method>
<method name="OutputIPPort" readonly="False" type="Integer">0</method>
<method name="OutputIPAddress" readonly="False" type="UnicodeString"></method>
<method name="OutputProtocolID" readonly="False" type="UnicodeString"></method>
<method name="OutputReceiverNo" readonly="False" type="Integer">0</method>
<method name="OutputLineNo" readonly="False" type="Integer">0</method>
<method name="OutputHeaderID" readonly="False" type="Integer">0</method>
<method name="OutputTrailerID" readonly="False" type="Integer">0</method>
<method name="OutputAckNack" readonly="False" type="Boolean">False</method>
<method name="OutputWaitForAck" readonly="False" type="Integer">0</method>
<method name="OutputTestMessage" readonly="False" type="Boolean">False</method>
<method name="OutputTestMsgDelay" readonly="False" type="Integer">0</method>
<method name="OutputForcePartition" readonly="False" type="Boolean">False</method>
<method name="OutputPartitionNo" readonly="False" type="Integer">0</method>
<method name="OutputUseMACAddress" readonly="False" type="Boolean">False</method>
<method name="MonitoringAccountNo" readonly="False" type="UnicodeString"></method>
<method name="WANId" readonly="False" type="Integer">0</method>
<method name="WANEnabled" readonly="False" type="Boolean">False</method>
<method name="WANPort" readonly="False" type="Integer">0</method>
<method name="WANAddress" readonly="False" type="UnicodeString"></method>
</published>
</object>

Page 12 of 64
</objects>

 Parameter definition

method name Definition


Mandatory
"IPPassword" The receiver IP password
"ACCFilePath" 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" ALWAYS PUT 1 (only 1 WAN is supported)
"WANEnabled" Enable receiver WAN interface
"WANPort" Set the port # to use to receive IP reporting
"WANAddress" Set the network interface adapter to use to receive IP reporting
"MonitoringAccountNo" Set the account # to use for internal reporting event to send to the automation software
Optional
"OutputEnabled" Convert and send the reporting event to an external automation software
"OutputType" Select the media type to use to send reporting event to the external automation software
Possible values
"SERIAL"
"IP"
"OutputCOMPort" Select the port # to use to send reporting event via "Serial"
"OutputBaudRate" Select the baud rate to use to send reporting event via "Serial"
"OutputUDP" Use UDP instead of TCP for packet transmission to the automation software
"OutputIPPort" Select the port # to use to send reporting event via "IP"
"OutputIPAddress" Select the IP address where to send the reporting event via "IP"
"OutputProtocolID" Select the reporting event format to send to the external automation software
Possible values
"ADEMCO685"
"RADIONIX6500"
"SURGARDMLR2DG"
"OutputReceiverNo" Set the receiver # to send to the automation software
"OutputLineNo" Set the line # to send to the automation software
"OutputHeaderID" Set the header ID to send to the automation software
"OutputTrailerID" Set the trailer ID to send to the automation software
"OutputAckNack" Enable ACK mechanism between the ParadoxAPI and the automation software
"OutputWaitForAck" Set the ACK wait time out in seconds
"OutputTestMessage" Enable test message to automation software
"OutputTestMsgDelay" Set test message interval in seconds
"OutputForcePartition" Enable transmit custom partition # (always) to automation software
"OutputPartitionNo" Set the custom partition # to transmit
"OutputUseMACAddress" 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:

<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
<ZoneStatus Zone1="Closed" " Zone2="Closed" Zone3="Closed" Zone4="Closed"
Zone5="Closed" Zone6="Closed" Zone7="Closed" Zone8="Closed" Zone9="Closed"
Zone10="Closed" Zone11="Closed" Zone12="Closed" Zone13="Closed" Zone14="Closed"
Zone15="Closed" Zone16="Closed"/> …
</PanelInfo>

 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"Command" Possible Values Description
"ARM" Arm selected area(s)
"FORCE" Force arm selected area(s)
"STAY" Stay arm selected area(s)
"SLEEP" Sleep arm selected area(s)
"INSTANT" Instant arm selected area(s)
"DISARM" Disarm selected area(s)
"Timer" Not used
"Items" All area # to affect, comma delimited ex: (1,2,3)

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:

<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
</PanelInfo>

 Parameter definition

Section name 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" System is in programming mode
"In StayD" Area has StayD activated
"Lockout" Area in lockout, too many invalid codes have been
entered
"Zone In Memory" Area has a zone in memory
"Follow Become Delay When Area has its delay zone bypassed, therefore it is
Bypassed" using the Follow zone as a delay2
"Zones Supervision Trouble" Area has a zone supervision trouble
"Cancel Alarm Reporting On Area has canceled reporting due to disarming (user
Disarming" code entered)
"System Recently Closed" An alarm has been triggered during the recent
closing delay
"Panic Alarm" A panic alarm has triggered an alarm in this area
"Panic Medical Alarm" A medical panic has triggered an alarm in this area
"Panic Fire Alarm" A fire panic has triggered an alarm in this area
"Police Code Alarm" A second zone alarm was triggered during the
Police Code delay
"Strobe" Area in Strobe alarm, only deactivates at user code
entry after alarm
"Burglary Alarm" Area in Burglary alarm
"Global Memory" Area has a Global Memory
"Global Bypass" Area has a global Bypass
"Zone Exit Delay" Area has a zone in exit delay
"Exit End" Area’s exit delay has ended
"Entry Delay End" Area’s entry delay has ended
"Intellizone End" Intellizone delay has ended

Page 16 of 64
"Bell Delay" Siren is activated and timed
"Bell End" Siren has turned off after the bell cutoff time
"Tx. Delay" Transmission delay has been activated
"Tx. Delay End" Transmission delay has elapsed
"No Exit Delay" Area has been armed, exit delay has been skipped
"Remote Path" Entry path (in StayD) has been disable by a remote
control
"Pre-Alarm Delay" A zone with a pre-alarm delay has been activated
"Bell Activated" Siren is activated
"In Disarm Delay" Area is in disarm delay
"Zones Low Battery" Area has zones indicating low battery
"Zones Fire Loop Trouble" Area has zones in fire loop trouble
"Zones Tampered" 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"Command" Possible Values Description
"BYPASS" Bypass selected zone(s)
"UNBYPASS" Unbypass selected zone(s)
"Timer" Not used
"Items" 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
<?xml version="1.0"?>
<PanelInfo>
<ZoneStatus Zone1="Closed" Zone2="Closed" Zone3="Closed" Zone4="Closed"
Zone5="Closed" Zone6="Closed" Zone7="Closed" Zone8="Closed" Zone9="Closed"
Zone10="Closed" Zone11="Closed" Zone12="Closed" Zone13="Closed" Zone14="Closed"
Zone15="Closed" Zone16="Closed"/>
</PanelInfo>

 Parameter definition

Section name Key name Definition


ZoneStatus Zone%d 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>

Page 18 of 64
</object>
</objects>

 Parameter definition

method name Definition


"Command" Possible Values Description
"ON" Activate selected PGM(s)
"OFF" Deactivate selected PGM(s)
"TEST" Test PGM(s), activate for few seconds
"Timer" Activation time (duration) in seconds (not yet implemented)
"Items" 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:

<?xml version="1.0"?>
<PanelInfo>
<PGMStatus PGM1="On,TimerMSec=100" PGM2="Off" PGM3="Unavailable"
PGM4="Unavailable"/>
</PanelInfo>

 Parameter definition

Section name Key name Definition


PGMStatus PGM%d 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelControlXML" name="Action">
<published>
<method name="Command" readonly="False" type="UnicodeString"></method>
<method name="Timer" readonly="False" type="Integer">0</method>
<method name="Items" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"Command" 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)
"Timer" Set custom unlock time in seconds
"Items" 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:

<?xml version="1.0"?>
<PanelInfo>
<DoorStatus Door1="Unlocked, REX" Door2="Locked" />
</PanelInfo>

 Parameter definition

Section name Key name Definition


DoorStatus Door%d All PGM status comma delimited ex : "Opened, REX"
Possible Values Description
"Disabled" Door is not programmed
"Opened" Door contact is in the Open position
"Locked" Door is locked (relay not active)
"REX" Request to Exit had been triggered
"Left Open Pre-Alarm" Door Left Open Pre-Alarm time has elapsed
"Left Open Alarm" Door Left Open Alarm has elapsed
"Forced Alarm" Door Forced Alarm has been triggered

Page 20 of 64
"Fire Alarm" Door has received a fire alarm from the panel
and, depending on the programming, may have
unlocked
"Unlocked Timed by PC" Door has been Unlocked by the PC in Timed
mode, will relock at the end of the period
"Unlocked Steady by PC" Door has been Unlocked by the PC in Steady
mode, needs to be relocked manually
"Tampered" Tamper detected on the door module
"Access Granted" Access Granted has been received
"Unlocked by Schedule" Door has been unlocked by an Unlock Schedule
"Unlocked by PC" Door has been unlocked by the PC
"Unlocked on Reader" Door has been unlocked by the reader
"Unlocked in Shabbat" Door has been unlocked by the Shabbat mode
"Door Armed" Door is armed, therefore locked
"Unlocked Delay Door unlocked delay has been activated
Engaged"

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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingStatusXML" name="IPReportingStatus">
<published>
<method name="Registered" readonly="True" type="Boolean">False</method>
<method name="RegistrationStatus" readonly="True" type="UnicodeString"></method>
<method name="RegistrationError" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"Registered" The control panel is registered to an IP receiver
"RegistrationStatus" 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)
"RegistrationError" Possible Values Description
"No IP Module" There’s no IP module connected to the control panel
"DHCP Error" The IP address of the IP module is invalid
"No IP Address" The IP address of the IP module is invalid
"No IP Port" The IP port of the IP module is invalid
"No IP Account" 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" Unable to connect to the receiver
"Invalid Profile" The profile ID programmed in the control panel is
invalid
"Invalid Format" The reporting format programmed in the control panel
is invalid
"Account in Use" The account # is already registered in the receiver
"IP Full" The receiver is full (no more account available)

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:

<?xml version="1.0"?>
<PanelInfo>
<PanelTrouble Trouble1="AC Failure" Trouble2="Zone Tampered:1A000001"/>
</PanelInfo>

 Parameter definition

Section name Key name Definition


PanelTrouble Trouble%d All system troubles
Trouble (Name and Format) Parametereter
"Zone Tampered:%s" Separator = : , %s = Module
Serial #
"Battery Failure" None
"AC Failure" None
"Wireless Low Battery:%s" Separator = : , %s = Module
Serial #
"Fire Loop Trouble:%s " Separator = : , %s = Module
Serial #
"Zone Supervision Trouble:%s" Separator = : , %s = Module
Serial #
"Auxiliary Current Limit" None
"Bell Current Limit" None
"Bell Absent" None
"Dialer Trouble" None
"ROM/RAM Error:%s" Separator = : , %s = Module
Serial #
"Smoke Detector CleanME:%s" Separator = : , %s = Module
Serial #
"IP Unregistered" None
"RF Siren Battery Fail" None
"RF Siren AC Fail" None
"RF Repeater AC Fail:%s" Separator = : , %s = Module
Serial #
"RF Repeater BATT Fail:%s" Separator = : , %s = Module
Serial #
"RF Keypad AC Fail:%s" Separator = : , %s = Module
Serial #
"RF Keypad Battery Fail:%s" Separator = : , %s = Module

Page 22 of 64
Serial #
"IP Receiver 1 Fail to comm" None
"IP Receiver 2 Fail to comm" None
"PGM Tamper:%d" Separator = : , %d = PGM #
"PGM RF Supervision Trouble:%d" Separator = : , %d = PGM #
"RF Zone Supervision Trouble:%s" Separator = : , %s = Module
Serial #
"Pulsed Alarm:%d" Separator = : , %d = Area #
"Buzzer Alarm:%d" Separator = : , %d = Area #
"Silent Alarm:%d" Separator = : , %d = Area #
"In Alarm:%d" Separator = : , %d = Area #
"RAM Error" None
"Panic Medical:%d" Separator = : , %d = Area #
"Zone in Alarm:%d" Separator = : , %d = Zone #
"Alarm In Memory:%d" Separator = : , %d = Area #
"TLM Trouble" None
"Clock Trouble" None
"Module TLM Trouble:%s" Separator = : , %s = Module
Serial #
"Panel Failed To Communicate" Separator = : , %s = Module
Serial #
"Module Tamper:%s" Separator = : , %s = Module
Serial #
"Bus Module Communication Separator = : , %s = Module
Fault:%s" Serial #
"Module Failed to communicate:%s" Separator = : , %s = Module
Serial #
"Module Printer Fault:%s" Separator = : , %s = Module
Serial #
"Module AC Failure:%s" Separator = : , %s = Module
Serial #
"Module Battery Failure:%s" Separator = : , %s = Module
Serial #
"Module Supply Output Trouble:%s" Separator = : , %s = Module
Serial #
"Module Supervision Loss Separator = : , %s = Module
Trouble:%s" Serial #
"Missing Keypad:%s" Separator = : , %s = Module
Serial #
"Missing Module:%s" Separator = : , %s = Module
Serial #
"Safety Mismatch" None
"Global Bus Failure" None
"General communication failure:%s" Separator = : , %s = Module
Serial #
"Bus Overload" None
"Bus Module Misunderstand" None
"Wireless Missing Module:%s" Separator = : , %s = Module
Serial #
"485 Power:%s" Separator = : , %s = Module
Serial #
"Bus Failure:%s" Separator = : , %s = Module
Serial #
"Module Overheat:%s" Separator = : , %s = Module
Serial #
"Module Output Failure:%s" Separator = : , %s = Module

Page 23 of 64
Serial #
"Module Blown Fuse:%s" Separator = : , %s = Module
Serial #
"Module RF Jam:%s" Separator = : , %s = Module
Serial #
"Module VBus Failure:%s" Separator = : , %s = Module
Serial #
"Module Anti-Mask Failure:%s" Separator = : , %s = Module
Serial #
"Module X10 Failure:%s" Separator = : , %s = Module
Serial #
"Module Overload Failure:%s" Separator = : , %s = Module
Serial #
"Module Too Cold:%s" Separator = : , %s = Module
Serial #
"Ethernet Link" None
"Reporting Link" None
"Reporting Report" None
"IP Module No Service" None
"Zone Tamper:%d" Separator = : , %d = Zone #
"Fire loop trouble" None
"GSM No Service" None
"GSM No Service" None
"Fail to communicate to pager report" None
"Fail to communicate to personnal None
channel 1"
"Fail to communicate to personnal None
channel 2"
"Fail to communicate to personnal None
channel 3"
"Fail to communicate to personnal None
channel 4"
"Fail to communicate to personnal None
channel 5"
"Fail to communicate to personnal None
channel 6"
"Fail to communicate to personnal None
channel 7"
"Fail to communicate to personnal None
channel 8"
"Fail to communicate CSTN Path 1" None
"Fail to communicate CSTN Path 2" None
"Fail to communicate CSTN Path 3" None
"Fail to communicate CSTN Channel None
GPRS 1"
"Fail to communicate CSTN Channel None
GPRS 2"
"Fail to communicate CSTN Channel None
IP 1"
"Fail to communicate CSTN Channel None
IP 2"
"Fail to communicate CSTN Channel None
Land 1"
"Fail to communicate CSTN Channel None
Land 2"
"Fail to communicate CSTN Channel None
GSM 1"

Page 24 of 64
"Fail to communicate CSTN Channel None
GSM 2"
"Land Line no service" None
"Time lost" None
"Console No Battery" None
"Console Low Battery" None
"Console AC Failure" None
"Console Tamper" None
"Console AC Overload" None
"Global RF Tamper" None
"Global RF Power Failure" None
"Global RF Low Battery" None
"Global RF Supervision Lost" None
"RF Interference" None
"GSM Missing Module" None
"GSM Missing SIM Card 1" None
"GSM Missing SIM Card 2" None
"GPRS No Service" None
"IP Missing Module" None
"IP No Service" None
"Internal Landline No Service" None
"Internal GSM No Service" None
"Internal GPRS No Service" None
"Internal IP No Service" None
"Transparency Mask Trouble:%s" Separator = : , %s = Module
Serial #
"Proximity Mask Trouble:%s" Separator = : , %s = Module
Serial #
"Infrared Blind Attempt Mask Separator = : , %s = Module
Trouble:%s " Serial #
"Lens Dirty Warning Trouble:%s " Separator = : , %s = Module
Serial #
"IP Receiver Supervision Failure:%s " Separator = : , %s = Module
Serial #
"IP Receiver Unregistered:%s " Separator = : , %s = Module
Serial #
"Module LAN Failure:%s " Separator = : , %s = Module
Serial #
"Module WAN Failure:%s " Separator = : , %s = Module
Serial #

21. Read Panel Time Stamp (Command)


 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 Definition
"BlockID" 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelAreaXML" name="Area1">
<published>
<method name="AreaNo" readonly="True" type="Integer">0</method>
<method name="AreaLabel" readonly="False" type="UnicodeString">Area</method>
<method name="AreaEnabled" readonly="True" type="Boolean">False</method>
<method name="AreaExitDelay" readonly="False" type="Integer">60</method>
<method name="AreaBellCutOffTimer" readonly="True" type="Integer">240</method>
<method name="AreaAutoArmingTime" readonly="False" type="Double">0</method>
<method name="AreaNoMovementTimer" readonly="False" type="Integer">0</method>
<method name="AreaEntryDelay1" readonly="False" type="Integer">0</method>
<method name="AreaEntryDelay2" readonly="False" type="Integer">0</method>
<method name="AreaSpecialExitDelay" readonly="False" type="Integer">0</method>
<method name="AreaNoMovementScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="AreaNoMovementScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="AreaNoMovementScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="AreaArmingReportScheduleStartTimeA" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleEndTimeA" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleDaysA" readonly="True" type="UnicodeString"></method>
<method name="AreaArmingReportScheduleStartTimeB" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleEndTimeB" readonly="True" type="Double">0</method>
<method name="AreaArmingReportScheduleDaysB" readonly="True" type="UnicodeString"></method>
<method name="AreaDisarmingReportScheduleStartTimeA" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleEndTimeA" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleDaysA" readonly="True" type="UnicodeString"></method>
<method name="AreaDisarmingReportScheduleStartTimeB" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleEndTimeB" readonly="True" type="Double">0</method>
<method name="AreaDisarmingReportScheduleDaysB" readonly="True" type="UnicodeString"></method>
<method name="AreaNoExitDelayViaRemote" readonly="True" type="Boolean">False</method>
<method name="AreaBellSirenEnable" readonly="True" type="Boolean">False</method>
<method name="AreaSquawkOnAutoArm" readonly="False" type="Boolean">False</method>
<method name="AreaSquawkOnArm" readonly="False" type="UnicodeString"></method>
<method name="AreaSquawkOnDelay" readonly="False" type="UnicodeString"></method>
<method name="AreaRingBackOption" readonly="False" type="UnicodeString"></method>
<method name="AreaSquawkOnRemoteArm" readonly="False" type="Boolean">False</method>
<method name="AreaOneTouchRegularArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchStayArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchInstantArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchForceArm" readonly="True" type="Boolean">False</method>
<method name="AreaOneTouchInstantDisarm" readonly="True" type="Boolean">False</method>
<method name="AreaBypassProgramming" readonly="False" type="Boolean">False</method>
<method name="AreaFollowAreas" readonly="True" type="UnicodeString"></method>
<method name="AreaSwitchToStayIfNoEntry" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToForceIfRegularArm" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToForceIfStayArm" readonly="True" type="Boolean">False</method>
<method name="AreaSwitchToEntryDelay2AfterDelay" readonly="True" type="Boolean">False</method>
<method name="AreaMaxZoneBypassed" readonly="True" type="Integer">0</method>
<method name="AreaAutoArmEnabled" readonly="True" type="Boolean">False</method>
<method name="AreaPostPoneAutoArm" readonly="True" type="Integer">0</method>
<method name="AreaAutoArmingMethod" readonly="True" type="UnicodeString"></method>
<method name="AreaNoMovementAutoArmEnabled" readonly="False" type="Boolean">False</method>
<method name="AreaPanic1" readonly="True" type="UnicodeString"></method>
<method name="AreaPanic2" readonly="True" type="UnicodeString"></method>

Page 27 of 64
<method name="AreaPanic3" readonly="True" type="UnicodeString"></method>
<method name="AreaAutoZoneShutdownCounter" readonly="True" type="Integer">0</method>
<method name="AreaRecentClosing" readonly="True" type="Integer">0</method>
<method name="AreaInvalidCodesBeforeLockout" readonly="True" type="Integer">0</method>
<method name="AreaKeypadLockoutDuration" readonly="True" type="Integer">0</method>
<method name="AreaRecycleAlarmDelay" readonly="True" type="Integer">0</method>
<method name="AreaRecycleCount" readonly="True" type="Integer">0</method>
<method name="AreaPoliceCodeDelay" readonly="True" type="Integer">0</method>
<method name="AreaPoliceCodeOnZoneClosingOnly" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>
 Parameter definition

method name Definition


(MG/SP/EVO panels)
"AreaNo" Area #
"AreaLabel" Area label (up to 16 characters)
"AreaEnabled" Area is enabled (active) in the control panel
"AreaExitDelay" Area exit delay in seconds
"AreaBellCutOffTimer" Area bell cut off timer in seconds
"AreaAutoArmingTime" Area auto arming time (date time in double)
"AreaNoMovementTimer" Area no movement timer (value x 15 minutes)
"AreaEntryDelay1" Area entry delay 1
(EVO panel only)
"AreaEntryDelay2" Area entry delay 2
"AreaSpecialExitDelay" Area special exit delay (while arming from software)
“AreaNoMovementScheduleStartTimeA" Area arm no movement schedule 1, start time
"AreaNoMovementScheduleEndTimeA" Area arm no movement schedule 1, end time
"AreaNoMovementScheduleDaysA" Area arm no movement schedule 1, days (comma delimited, ex: “sun,
tue”)
"AreaNoMovementScheduleStartTimeB" Area arm no movement schedule 2, start time
"AreaNoMovementScheduleEndTimeB" Area arm no movement schedule 2, end time
"AreaNoMovementScheduleDaysB" Area arm no movement schedule 2, days (comma delimited, ex: “sun,
tue”)
"AreaArmingReportScheduleStartTimeA" Area report arming schedule 1, start time
"AreaArmingReportScheduleEndTimeA" Area report arming schedule 1, end time
"AreaArmingReportScheduleDaysA" Area report arming schedule 1, days (comma delimited, ex: “sun, tue”)
"AreaArmingReportScheduleStartTimeB" Area report arming schedule 2, start time
"AreaArmingReportScheduleEndTimeB" Area report arming schedule 2, end time
"AreaArmingReportScheduleDaysB" Area report arming schedule 2, days (comma delimited, ex: “sun, tue”)
"AreaDisarmingReportScheduleStartTimeA Area report disarming schedule 1, start time
"
"AreaDisarmingReportScheduleEndTimeA" Area report disarming schedule 1, end time
"AreaDisarmingReportScheduleDaysA" Area report disarming schedule 1, days (comma delimited, ex: “sun, tue”)
"AreaDisarmingReportScheduleStartTimeB Area report disarming schedule 2, start time
"
"AreaDisarmingReportScheduleEndTimeB" Area report disarming schedule 2, end time
"AreaDisarmingReportScheduleDaysB" Area report disarming schedule 2, days (comma delimited, ex: ”sun, tue”)
"AreaNoExitDelayViaRemote" Area arm instantly (no exit delay) via remote
"AreaBellSirenEnable" Area bell siren is enabled and will trig upon alarm
"AreaSquawkOnAutoArm" Area squawk on auto arm is enabled
"AreaSquawkOnArm" Area squawk on arm is enabled
"AreaSquawkOnDelay" Area squawk on exit delay is enabled
"AreaRingBackOption" Area ring back option:
Possible Values
"Bell Squawk & Keypad Beep"
"Bell Squawk"

Page 28 of 64
"Keypad Beep"

"AreaSquawkOnRemoteArm" Area squawk on remote arm is enabled


"AreaOneTouchRegularArm" Area one touch regular arm is enabled
"AreaOneTouchStayArm" Area one touch stay arm is enabled
"AreaOneTouchInstantArm" Area one touch instant arm is enabled
"AreaOneTouchForceArm" Area one touch force arm is enabled
"AreaOneTouchInstantDisarm" Area one touch instant disarm is enabled
"AreaBypassProgramming" Area can be bypassed
"AreaFollowAreas" Area follows areas: (comma delimited, ex: “2,3”)
"AreaSwitchToStayIfNoEntry" Area switch to stay arm if no entry
"AreaSwitchToForceIfRegularArm" Area switch to force arm if regular armed
"AreaSwitchToForceIfStayArm" Area switch to force arm if stay armed
"AreaSwitchToEntryDelay2AfterDelay" Area switch to entry delay 2 after delay 1 elapsed
"AreaMaxZoneBypassed" Area maximum zone qty than can be bypassed
"AreaAutoArmEnabled" Area auto arm is enabled
"AreaPostPoneAutoArm" Area postpone auto arm is enabled
"AreaAutoArmingMethod" Area auto arm method:
Possible Values
"Force"
"Stay"
"AreaNoMovementAutoArmEnabled" Area auto arm on no movement is enabled
"AreaPanic1" Area panic 1 is enabled
"AreaPanic2" Area panic 2 is enabled
"AreaPanic3" Area panic 3 is enabled
"AreaAutoZoneShutdownCounter" Area auto zone shutdown counter
"AreaRecentClosing" Area recent closing
"AreaInvalidCodesBeforeLockout" Area invalid code attempts before keypad lockout
"AreaKeypadLockoutDuration" Area keypad lockout duration
"AreaRecycleAlarmDelay" Area recycle alarm delay
"AreaRecycleCount" Area recycle count
"AreaPoliceCodeDelay" Area police code delay
"AreaPoliceCodeOnZoneClosingOnly" Area police code on zone close only

26. Read All Zones (Command)


 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelZoneXML" name="Zone1">
<published>
<method name="ZoneNo" readonly="True" type="Integer">0</method>
<method name="ZoneEnabled" readonly="True" type="Boolean">False</method>
<method name="ZoneLabel" readonly="False" type="UnicodeString">Zone</method>
<method name="ZoneSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ZoneInputNo" readonly="True" type="Integer">0</method>
<method name="ZonePartition" readonly="True" type="Integer">0</method>
<method name="ZoneDefinition" readonly="True" type="UnicodeString"></method>
<method name="ZoneAlarmType" readonly="True" type="UnicodeString"></method>
<method name="ZoneStay" readonly="True" type="Boolean">False</method>
<method name="ZoneForce" readonly="True" type="Boolean">False</method>
<method name="ZoneBypass" readonly="True" type="Boolean">False</method>
<method name="ZoneAutoShutdown" readonly="True" type="Boolean">False</method>
<method name="ZoneRFSupervision" readonly="True" type="Boolean">False</method>
<method name="ZoneIntellizone" readonly="True" type="Boolean">False</method>
<method name="ZoneDelayBeforeTransmission" readonly="True" type="Boolean">False</method>
<method name="ZoneTXSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ZoneTamperFollowGlobalSetting" readonly="True" type="Boolean">False</method>
<method name="ZoneTamperSupervision" readonly="True" type="UnicodeString"></method>
<method name="ZoneAntiMaskFollowGlobalSetting" readonly="True" type="Boolean">False</method>
<method name="ZoneAntiMaskSupervision" readonly="True" type="UnicodeString"></method>
<method name="ZoneBuzzerAlarmWhenDisarm" readonly="True" type="Boolean">False</method>
<method name="ZoneBuzzerAlarmReported" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


(MG/SP/EVO panels)
"ZoneNo" Zone #
"ZoneEnabled" Zone is enabled (active) in the control panel
"ZoneLabel" Zone label (up to 16 characters)
"ZoneSerialNo" Zone serial #
"ZoneInputNo" Zone input #
"ZonePartition" Zone area assignment
"ZoneDefinition" 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
"Custom Zone Template 3" "ZX8 Input Tamper"
"Custom Zone Template 4"
"ZoneAlarmType" Zone alarm type
Possible Values
"Steady Alarm"
"Pulsed Alarm"
"Silent Alarm"
"Report Only"
"Unknown"
"ZoneStay" Zone stay is enabled
"ZoneForce" Zone force is enabled
"ZoneBypass" Zone bypass is enabled
"ZoneAutoShutdown" Zone auto shutdown is enabled
"ZoneRFSupervision" Zone RF supervision is enabled
"ZoneIntellizone" Zone intellizone is enabled
"ZoneDelayBeforeTransmission" Zone delay before transmission in seconds
(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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelPGMXML" name="PGM1">
<published>
<method name="PGMNo" readonly="True" type="Integer">0</method>
<method name="PGMLabel" readonly="False" type="UnicodeString"></method>
<method name="PGMTimer" readonly="True" type="Integer">0</method>

Page 31 of 64
<method name="PGMSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PGMInputNo" readonly="True" type="Integer">0</method>
<method name="PGMActivationEvent" readonly="True" type="UnicodeString"></method>
<method name="PGMDeactivationEvent" readonly="True" type="UnicodeString"></method>
<method name="PGMActvationMode" readonly="True" type="UnicodeString"></method>
<method name="PGMPulseEvery30Secs" readonly="True" type="Boolean">False</method>
<method name="PGMPulseOnAnyAlarm" readonly="True" type="Boolean">False</method>
<method name="PGMInitialState" readonly="True" type=" UnicodeString "> </method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


(MG/SP/EVO panels)
"PGMNo" PGM #
"PGMLabel" PGM label (up to 16 characters)
"PGMTimer" PGM activation duration in seconds
"PGMSerialNo" PGM serial #
"PGMInputNo" PGM input #
"PGMActivationEvent" PGM Activation event description
"PGMDeactivationEvent" PGM Deactivation event description
"PGMActvationMode" PGM initial state:
Possible Values
"Pulse"
"Steady"
"PGMPulseEvery30Secs" PGM pulse every 30 seconds is enabled
"PGMPulseOnAnyAlarm" PGM pulse on alarm is enabled
(EVO panel only)
"PGMInitialState" PGM initial state:
Possible Values
"Normally Closed"
"Normally 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;
1. PanelID parameter identifies the connected control panel to retrieve information
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
<?xml version="1.0"?>
<objects>
<object objectname="TPanelDoorXML" name="Door1">
<published>
<method name="DoorNo" readonly="True" type="Integer">0</method>
<method name="DoorLabel" readonly="False" type="UnicodeString"></method>
<method name="DoorEnabled" readonly="True" type="Boolean">False</method>
<method name="DoorSerialNo" readonly="True" type="UnicodeString"></method>
<method name="DoorAreaAssignment" readonly="True" type="UnicodeString"></method>
<method name="DoorAccessEnabled" readonly="True" type="Boolean">False</method>
<method name="DoorAccessOption" readonly="True" type="UnicodeString"></method>
<method name="DoorAccessCodeOnKeypad" readonly="True" type="Boolean">False</method>
<method name="DoorAccessCardAndCode" readonly="True" type="Boolean">False</method>
<method name="DoorAccessArmRestricted" readonly="True" type="Boolean">False</method>
<method name="DoorAccessDisarmRestricted" readonly="True" type="Boolean">False</method>
<method name="DoorBurglaryAlarmOnForced" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="DoorSafeModeEnabled" readonly="False" type="Boolean">False</method>
<method name="DoorSameModeCard1" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard2" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard3" readonly="False" type="UnicodeString"></method>
<method name="DoorCardActivatesUnlockedSchedule" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockDoorOnFireAlarm" readonly="True" type="Boolean">False</method>
<method name="DoorUnlockOnRequestForExit" readonly="True" type="Boolean">False</method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


(EVO only)
“DoorNo" Door #
“DoorLabel“ Door label (up to 16 characters)
“DoorEnabled“ Door is enabled (active) in the control panel
“DoorSerialNo“ Door serial #
“DoorAreaAssignment“ Door area(s) assignment (comma delimited, ex: “1,2”)
“DoorAccessEnabled“ Door access control is enabled
“DoorAccessOption“ Door access option:
Possible Values
"Or"
"And"
“DoorAccessCodeOnKeypad“ Door access via valid code on keypad
“DoorAccessCardAndCode“ Door access requires valid code and card
“DoorAccessArmRestricted“ Door access restricted while system is armed
“DoorAccessDisarmRestricted“ Door access restricted while system is disarmed
“DoorBurglaryAlarmOnForced“ Door generates burglary alarm on force arm
“DoorUnlockScheduleStartTimeA“ Door unlock schedule 1, start time
“DoorUnlockScheduleEndTimeA“ Door unlock schedule 1, end time
“DoorUnlockScheduleDaysA“ Door unlock schedule 1, days (comma delimited, ex: “sun, tue”)
“DoorUnlockScheduleStartTimeB“ Door unlock schedule 2, start time
“DoorUnlockScheduleEndTimeB“ Door unlock schedule 2, end time
“DoorUnlockScheduleDaysB“ Door unlock schedule 2, days (comma delimited, ex: “sun, tue”)
“DoorSafeModeEnabled“ Door safe mode is enabled

Page 33 of 64
“DoorSameModeCard1“ Door same mode card # (1) (format: “000:00000”)
“DoorSameModeCard2“ Door same mode card # (2) (format: “000:00000”)
“DoorSameModeCard3“ Door same mode card # (3) (format: “000:00000”)
“DoorCardActivatesUnlockedSchedule“ Door access via card activates unlock schedule
“DoorUnlockDoorOnFireAlarm“ Door unlocks on fire alarm
“DoorUnlockOnRequestForExit“ 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:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelDoorXML" name="Door1">
<published>
<method name="DoorLabel" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeA" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysA" readonly="False" type="UnicodeString"></method>
<method name="DoorUnlockScheduleStartTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleEndTimeB" readonly="False" type="Double">0</method>
<method name="DoorUnlockScheduleDaysB" readonly="False" type="UnicodeString"></method>
<method name="DoorSafeModeEnabled" readonly="False" type="Boolean">False</method>
<method name="DoorSameModeCard1" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard2" readonly="False" type="UnicodeString"></method>
<method name="DoorSameModeCard3" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>
 Parameters definition

<object objectname=" TPanelDoorXML" name="Door%d"> %d = "DoorNo" to program

method name Definition


(EVO only)
“DoorLabel“ Door label (up to 16 characters)
“DoorUnlockScheduleStartTimeA“ Door unlock schedule 1, start time
“DoorUnlockScheduleEndTimeA“ Door unlock schedule 1, end time
“DoorUnlockScheduleDaysA“ Door unlock schedule 1, days (comma delimited, ex: “sun, tue”)
“DoorUnlockScheduleStartTimeB“ Door unlock schedule 2, start time
“DoorUnlockScheduleEndTimeB“ Door unlock schedule 2, end time
“DoorUnlockScheduleDaysB“ Door unlock schedule 2, days (comma delimited, ex: “sun, tue”)
“DoorSafeModeEnabled“ Door safe mode is enabled
“DoorSameModeCard1“ Door same mode card # (1) (format: “000:00000”)
“DoorSameModeCard2“ Door same mode card # (2) (format: “000:00000”)
“DoorSameModeCard3“ Door same mode card # (3) (format: “000:00000”)

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

Page 34 of 64
33. Read All Schedules (Command)
 Use to retrieve (read) all schedules programming
 Request (Pascal STDCALL)
function ReadAllSchedules(const PanelID: Cardinal; out XMLSchedules: 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 (XMLSchedules) returns XMLData, see TPanelScheduleXML

34. Read Schedule (Command)


 Use to retrieve (read) schedule programming
 Request (Pascal STDCALL)
function ReadSchedule(const PanelID: Cardinal; ScheduleNo: Cardinal; out XMLSchedule:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. ScheduleNo parameter identifies the schedule # to read programming

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLSchedule) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelScheduleXML" name="Schedule1">
<published>
<method name="ScheduleNo" readonly="True" type="Integer">0</method>
<method name="ScheduleLabel" readonly="False" type="UnicodeString"></method>
<method name="ScheduleBackupNo" readonly="False" type="Integer">0</method>
<method name="ScheduleStartTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalA" readonly="False" type="UnicodeString"></method>
<method name="ScheduleStartTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalB" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


EVO panels
"ScheduleNo" Schedule #
"ScheduleLabel" Door label (up to 16 characters)
"ScheduleBackupNo" Backup schedule #
"ScheduleStartTimeIntervalA" Schedule 1, start time
"ScheduleEndTimeIntervalA" Schedule 1, end time
"ScheduleDaysIntervalA" Schedule 1, days (comma delimited, ex: “sun, tue”)
"ScheduleStartTimeIntervalB" Schedule 2, start time
"ScheduleEndTimeIntervalB" Schedule 2, end time
"ScheduleDaysIntervalB" Schedule 2, days (comma delimited, ex: “sun, tue”)

35. Write Schedule (Command)

Page 35 of 64
 Use to add or update (write) schedule programming
 Request (Pascal STDCALL)
function WriteSchedule(const PanelID: Cardinal; ScheduleNo: Cardinal; XMLSchedule:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. ScheduleNo parameter identifies the schedule # to write programming
3. Function parameter (XMLSchedule) must contain XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelScheduleXML" name="Schedule1">
<published>
<method name="ScheduleLabel" readonly="False" type="UnicodeString"></method>
<method name="ScheduleBackupNo" readonly="False" type="Integer">0</method>
<method name="ScheduleStartTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalA" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalA" readonly="False" type="UnicodeString"></method>
<method name="ScheduleStartTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleEndTimeIntervalB" readonly="False" type="Double">0</method>
<method name="ScheduleDaysIntervalB" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameters definition

<object objectname=" TPanelScheduleXML " name="Schedule%d"> %d = "ScheduleNo" to program

method name Definition


EVO panels
"ScheduleLabel" Door label (up to 16 characters)
"ScheduleBackupNo" Backup schedule #
"ScheduleStartTimeIntervalA" Schedule 1, start time
"ScheduleEndTimeIntervalA" Schedule 1, end time
"ScheduleDaysIntervalA" Schedule 1, days (comma delimited, ex: “sun, tue”)
"ScheduleStartTimeIntervalB" Schedule 2, start time
"ScheduleEndTimeIntervalB" Schedule 2, end time
"ScheduleDaysIntervalB" Schedule 2, days (comma delimited, ex: “sun, tue”)

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

36. Read All Access Level (Command)


 Use to retrieve (read) all access levels programming
 Request (Pascal STDCALL)
function ReadAllAccessLevels(const PanelID: Cardinal; out XMLAccessLevels: 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 (XMLAccessLevels) returns XMLData, see TPanelAccessLevelXML

37. Read Access Level (Command)


 Use to retrieve (read) access level programming
 Request (Pascal STDCALL)

Page 36 of 64
function ReadAccessLevel(const PanelID: Cardinal; AccessLevelNo: Cardinal; out
XMLAccessLevel: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. AccessLevelNo parameter identifies the access level # to read programming
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLAccessLevel) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelAccessLevelXML" name="AccessLevel1">
<published>
<method name="AccessLevelNo" readonly="True" type="Integer">0</method>
<method name="AccessLevelLabel" readonly="False" type="UnicodeString"></method>
<method name="AccessLevelDoors" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


EVO panels
"AccessLevelNo" Access Level #
“AccessLevelLabel” Access Level label (up to 16 characters)
“AccessLevelDoors” Access Level affected doors (comma delimited, ex: “1,2”)

38. Write Access Level (Command)


 Use to add or update (write) access level programming
 Request (Pascal STDCALL)
function WriteAccessLevel(const PanelID: Cardinal; AccessLevelNo: Cardinal; XMLAccessLevel:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. AccessLevelNo parameter identifies the access level # to write programming
3. Function parameter (XMLAccessLevel) must contain XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelAccessLevelXML" name="AccessLevel1">
<published>
<method name="AccessLevelLabel" readonly="False" type="UnicodeString"></method>
<method name="AccessLevelDoors" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameters definition

<object objectname=" TPanelAccessLevelXML " name="AccessLevel%d"> %d = "AccessLevelNo" to program

method name Definition


EVO panels
“AccessLevelLabel” Access Level label (up to 16 characters)
“AccessLevelDoors” Access Level affected doors (comma delimited, ex: “1,2”)

Page 37 of 64
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

39. Read Holidays (Command)


 Use to retrieve (read) holidays programming
 Request (Pascal STDCALL)
function ReadHolidays(const PanelID: Cardinal; out XMLHolidays: 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 (XMLHolidays) returns XMLData; see below:

<?xml version="1.0"?>
<PanelInfo>
<PanelHolidays Holidays="01/10, 05/12"/>
</PanelInfo>

 Parameter definition

Section name Key name Definition


EVO panels
PanelHolidays Holidays All holidays (comma delimited, format: "Day/Month" ex: "01/10, 05/12")

40. Write Holidays (Command)


 Use to add or update (write) holidays programming
 Request (Pascal STDCALL)
function WriteHolidays(const PanelID: Cardinal; XMLHolidays: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. Function parameter (XMLHolidays) must contain XMLData; see below:

<?xml version="1.0"?>
<PanelInfo>
<PanelHolidays Holidays="01/10, 05/12" />
</PanelInfo>
 Parameters definition

Section name Key name Definition


EVO panels
PanelHolidays Holidays All holidays (comma delimited, format: "Day/Month" ex: "01/10, 05/12")
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

41. Read All Users (Command)


 Use to retrieve (read) all users programming
 Only the system master or the master user can read user programming
 Request (Pascal STDCALL)
function ReadAllUsers(const PanelID: Cardinal; out XMLUsers: 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 (XMLUsers) returns XMLData, see TPanelUserXML

Page 38 of 64
42. Read User (Command)
 Use to retrieve (read) user programming
 Only the system master or the master user can read user programming
 Request (Pascal STDCALL)
function ReadUser(const PanelID: Cardinal; UserNo: Cardinal; out XMLUser: WideString):
HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. UserNo parameter identifies the user # to read programming
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLUser) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelUserXML" name="User1">
<published>
<method name="UserNo" readonly="True" type="Integer">0</method>
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="UserUsed" readonly="False" type="Boolean">False</method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="UserCard" readonly="False" type="UnicodeString"></method>
<method name="UserRemoteSerialNo" readonly="False" type="UnicodeString"></method>
<method name="UserPartitionAccess" readonly="False" type="UnicodeString"></method>
<method name="UserCanBypass" readonly="False" type="Boolean">False</method>
<method name="UserCanStaySleepArm" readonly="False" type="Boolean">False</method>
<method name="UserCanForceArm" readonly="False" type="Boolean">False</method>
<method name="UserCanArmOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanActivationPGMOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanDuress" readonly="False" type="Boolean">False</method>
<method name="UserType" readonly="False" type="UnicodeString"></method>
<method name="UserAccessControlEnabled" readonly="False" type="Boolean">False</method>
<method name="UserAccessLevelNo" readonly="False" type="UnicodeString"></method>
<method name="UserAccessScheduleNo" readonly="False" type="UnicodeString"></method>
<method name="UserExtendedUnlockTime" readonly="False" type="Boolean">False</method>
<method name="UserAddScheduleTolerance" readonly="False" type="Boolean">False</method>
<method name="UserCodeFollowsSchedule" readonly="False" type="Boolean">False</method>
<method name="UserArmWithCard" readonly="False" type="UnicodeString"></method>
<method name="UserCardDisarmOnAccess" readonly="False" type="Boolean">False</method>
<method name="UserCardAndPINDisarm" readonly="False" type="Boolean">False</method>
<method name="UserCodeLength" readonly="False" type="UnicodeString">4 Digits</method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


(MG/SP/EVO panels)
"UserNo" User #
"UserName" User label (up to 16 characters)
"UserUsed" User is used (has a valid user code in the system)
"UserCode" User code
"UserCard" User card #
"UserRemoteSerialNo" User remote serial #

Page 39 of 64
"UserPartitionAccess" User area access (comma delimited, ex: “1,2”)
"UserCanBypass" User can bypass is enabled
"UserCanStaySleepArm" User can stay / sleep arm is enabled
"UserCanForceArm" User can force arm is enabled
"UserCanArmOnly" User can arm only (no disarm) is enabled
"UserCanActivationPGMOnly User can activate PGM only (no deactivate) is enabled
"
"UserCanDuress" User can duress is enabled
(EVO panel only)
"UserType" User type:
Possible Values
"Regular"
"Master"
"Full Master"
"UserAccessControlEnabled" User access control is enabled
"UserAccessLevelNo" User access level assignment (see Access Level command)
"UserAccessScheduleNo" User access schedule assignment (see Schedule command)
"UserExtendedUnlockTime" User extended unlock period is enabled
"UserAddScheduleTolerance" User extended schedule tolerance is enabled
"UserCodeFollowsSchedule" User code follows schedule
"UserArmWithCard" User can arm with card
"UserCardDisarmOnAccess" User can disarm system on card access
"UserCardAndPINDisarm" User must enter a valid card and PIN to disarm the system
"UserCodeLength" User code length:
Possible Values
"4 Digits"
"6 Digits"
"Flexible"

43. Write Multiple Users (Command)


 Use to add or update (write) multiple users programming
 Only the system master or the master user can write user programming
 Request (Pascal STDCALL)
function WriteMultipleUsers(const PanelID: Cardinal; XMLUsers: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. Function parameter (XMLUsers) must contain XMLData, see TPanelUserXML
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

44. Write User (Command)


 Use to add or update (write) user programming
 Only the system master or the master user can write user programming
 You must read all users to detect user availability (see “UserUsed” property)
 Request (Pascal STDCALL)
function WriteUser(const PanelID: Cardinal; UserNo: Cardinal; XMLUser: WideString): HResult;
stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. UserNo parameter identifies the user # to write programming
3. Function parameter (XMLUser) must contain XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelUserXML" name="User1">
<published>

Page 40 of 64
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="UserUsed" readonly="False" type="Boolean">False</method>
<method name="UserCode" readonly="False" type="UnicodeString"></method>
<method name="UserCard" readonly="False" type="UnicodeString"></method>
<method name="UserRemoteSerialNo" readonly="False" type="UnicodeString"></method>
<method name="UserPartitionAccess" readonly="False" type="UnicodeString"></method>
<method name="UserCanBypass" readonly="False" type="Boolean">False</method>
<method name="UserCanStaySleepArm" readonly="False" type="Boolean">False</method>
<method name="UserCanForceArm" readonly="False" type="Boolean">False</method>
<method name="UserCanArmOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanActivationPGMOnly" readonly="False" type="Boolean">False</method>
<method name="UserCanDuress" readonly="False" type="Boolean">False</method>
<method name="UserType" readonly="False" type="UnicodeString"></method>
<method name="UserAccessControlEnabled" readonly="False" type="Boolean">False</method>
<method name="UserAccessLevelNo" readonly="False" type="UnicodeString"></method>
<method name="UserAccessScheduleNo" readonly="False" type="UnicodeString"></method>
<method name="UserExtendedUnlockTime" readonly="False" type="Boolean">False</method>
<method name="UserAddScheduleTolerance" readonly="False" type="Boolean">False</method>
<method name="UserCodeFollowsSchedule" readonly="False" type="Boolean">False</method>
<method name="UserArmWithCard" readonly="False" type="UnicodeString"></method>
<method name="UserCardDisarmOnAccess" readonly="False" type="Boolean">False</method>
<method name="UserCardAndPINDisarm" readonly="False" type="Boolean">False</method>
<method name="UserCodeLength" readonly="False" type="UnicodeString">4 Digits</method>
</published>
</object>
</objects

 Parameters definition

<object objectname="TPanelUserXML" name="User%d"> %d = "UserNo" to program

method name Definition


(MG/SP/EVO panels)
"UserName" User label (up to 16 characters)
"UserUsed" User is used (has a valid user code in the system)
"UserCode" User code
"UserCard" User card #
"UserRemoteSerialNo" User remote serial #
"UserPartitionAccess" User area access (comma delimited, ex: “1,2”)
"UserCanBypass" User can bypass is enabled
"UserCanStaySleepArm" User can stay / sleep arm is enabled
"UserCanForceArm" User can force arm is enabled
"UserCanArmOnly" User can arm only (no disarm) is enabled
"UserCanActivationPGMOnly User can activate PGM only (no deactivate) is enabled
"
"UserCanDuress" User can duress is enabled
(EVO panel only)
"UserType" User type:
Possible Values
"Regular"
"Master"
"Full Master"
"UserAccessControlEnabled" User access control is enabled
"UserAccessLevelNo" User access level assignment (see Access Level command)
"UserAccessScheduleNo" User access schedule assignment (see Schedule command)
"UserExtendedUnlockTime" User extended unlock period is enabled
"UserAddScheduleTolerance" User extended schedule tolerance is enabled
"UserCodeFollowsSchedule" User code follows schedule
"UserArmWithCard" User can arm with card

Page 41 of 64
"UserCardDisarmOnAccess" User can disarm system on card access
"UserCardAndPINDisarm" User must enter a valid card and PIN to disarm the system
"UserCodeLength" User code length:
Possible Values
"4 Digits"
"6 Digits"
"Flexible"

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

45. Read IP Reporting (Command)


 Use to retrieve (read) the IP reporting programming
 Request (Pascal STDCALL)
function ReadIPReporting(const PanelID: Cardinal; ReceiverNo: Cardinal; out XMLReporting:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. ReceiverNo parameter identifies the receiver # to read programming
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLReporting) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelIPReportingXML" name="IPReporting">
<published>
<method name="ReceiverNo" readonly="True" type="Integer">0</method>
<method name="ReportingIPEnabled" readonly="True" type="Boolean">False</method>
<method name="ReceiverIPPassword" readonly="False" type="UnicodeString"></method>
<method name="ReceiverIPProfile" readonly="False" type="Integer">0</method>
<method name="Area1AccountNo" readonly="False" type="UnicodeString"></method>
<method name="Area2AccountNo" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPPort" readonly="False" type="Integer">0</method>
<method name="WAN2IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN2IPPort" readonly="False" type="Integer">0</method>
<method name="ParallelReporting" readonly="False" type="Boolean">False</method>
<method name="ServiceFailureOptions" readonly="False" type="UnicodeString"></method>
<method name="GPRSAccessPointName" readonly="False" type="UnicodeString"></method>
<method name="GPRSUserName" readonly="False" type="UnicodeString"></method>
<method name="GPRSPassword" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"ReceiverNo" Receiver #
"ReportingIPEnabled" Reporting to receiver # is enabled
"ReceiverIPPassword" IP password to use to report to the receiver
"ReceiverIPProfile" IP profile to use to report to the receiver
"Area1AccountNo" Account # to use to report to the receiver (on Area1)
"Area2AccountNo" Account # to use to report to the receiver (on Area2)
"WAN1IPAddress" WAN1 IP address of the receiver
"WAN1IPPort" WAN1 IP port of the receiver

Page 42 of 64
"WAN2IPAddress" WAN2 IP address of the receiver
"WAN2IPPort" WAN2 IP port of the receiver
"ParallelReporting" Parallel reporting is enabled
"ServiceFailureOptions" Service failure options
Possible Values
"Disabled"
"Trouble Only When Audible Alarm"
"Disarmed = Trouble / Armed = Audible Alarm"
"Silent Alarm Becomes Audible Alarm"
"GPRSAccessPointName" ACCESS point name that the PCS module must use to connect to a GPRS network
"GPRSUserName" User name that the PCS module must use to connect to a GPRS network
"GPRSPassword" Password that the PCS module must use to connect to a GPRS network

46. Write IP Reporting (Command)


 Use to update (write) the IP reporting programming
 Request (Pascal STDCALL)
function WriteIPReporting(const PanelID: Cardinal; ReceiverNo: Cardinal; XMLReporting:
WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel to retrieve information
2. ReceiverNo parameter identifies the receiver # to write programming
3. Function parameter (XMLReporting) must contain XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelIPReportingXML" name="IPReporting">
<published>
<method name="ReceiverIPPassword" readonly="False" type="UnicodeString"></method>
<method name="ReceiverIPProfile" readonly="False" type="Integer">0</method>
<method name="Area1AccountNo" readonly="False" type="UnicodeString"></method>
<method name="Area2AccountNo" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN1IPPort" readonly="False" type="Integer">0</method>
<method name="WAN2IPAddress" readonly="False" type="UnicodeString"></method>
<method name="WAN2IPPort" readonly="False" type="Integer">0</method>
<method name="ParallelReporting" readonly="False" type="Boolean">False</method>
<method name="ServiceFailureOptions" readonly="False" type="UnicodeString"></method>
<method name="GPRSAccessPointName" readonly="False" type="UnicodeString"></method>
<method name="GPRSUserName" readonly="False" type="UnicodeString"></method>
<method name="GPRSPassword" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition

method name Definition


"ReceiverIPPassword" IP password to use to report to the receiver
"ReceiverIPProfile" IP profile to use to report to the receiver
"Area1AccountNo" Account # to use to report to the receiver (Area1)
"Area2AccountNo" Account # to use to report to the receiver (Area2)
"WAN1IPAddress" WAN1 IP address of the receiver
"WAN1IPPort" WAN1 IP port of the receiver
"WAN2IPAddress" WAN2 IP address of the receiver
"WAN2IPPort" WAN2 IP port of the receiver
"ParallelReporting" Parallel reporting is enabled

Page 43 of 64
"ServiceFailureOptions" Service failure options
Possible Values
"Disabled"
"Trouble Only When Audible Alarm"
"Disarmed = Trouble / Armed = Audible Alarm"
"Silent Alarm Becomes Audible Alarm"
"GPRSAccessPointName" ACCESS point name that the PCS module must use to connect to a GPRS network
"GPRSUserName" User name that the PCS module must use to connect to a GPRS network
"GPRSPassword" Password that the PCS module must use to connect to a GPRS network

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

47. Read Buffer Events (Command)


 Use to download (read) buffer events from the connected control panel
 Client is notified every time a buffer event is downloaded via the Receive Buffer Event
event callback
 Request (Pascal STDCALL)
function ReadBufferEvents(const PanelID: Cardinal; EventCount: Cardinal): HResult; stdcall;
1. PanelID parameter identifies the connected control panel
2. EventCount parameter identifies the quantity of event to download (0 = entire list)
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

48. Read Buffer Events EX (Command)


 Use to download (read) NEW buffer events from the connected control panel
 Client is notified every time a buffer event is downloaded via the Receive Buffer Event
event callback
 Request (Pascal STDCALL)
function ReadBufferEventsEx(const PanelID: Cardinal; LastEventID: Cardinal): HResult; stdcall;
1. PanelID parameter identifies the connected control panel
2. LastEventID parameter identifies the last received event #. All new events from that
position will be downloaded
3. Compatible with SP4000 and EVO panels
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

49. Get Site from PMH (Command)


 Use to retrieve (read) site information from ParadoxMyHome server
 API returns all modules registered to a control panel (site)
 Request (Pascal STDCALL)
function GetSiteFromPMH(const PanelSerialNo: WideString; out XMLSiteInfo: WideString):
HResult; stdcall;
1. PanelSerialNo parameter identifies the serial # of the control panel to retrieve information
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLSiteInfo) returns XMLData; see below:

Page 44 of 64
<?xml version="1.0"?>
<objects>
<object objectname="TSiteInfoXML" name="Item1">
<published>
<method name="SerialNo" readonly="True" type=" UnicodeString"></method>
<method name="ItemType" readonly="True" type=" UnicodeString "></method>
<method name="IPAddress" readonly="True" type="UnicodeString"></method>
<method name="HTTPPort" readonly="True" type=" Integer ">0</method>
<method name="HTTPSPort" readonly="True" type=" Integer ">0</method>
<method name="WebPort" readonly="True" type=" Integer ">0</method>
</published>
</object>
<object objectname="TSiteInfoXML" name="Item2">
<published>
<method name="SerialNo" readonly="True" type=" UnicodeString"></method>
<method name="ItemType" readonly="True" type=" UnicodeString "></method>
<method name="IPAddress" readonly="True" type="UnicodeString"></method>
<method name="HTTPPort" readonly="True" type=" Integer ">0</method>
<method name="HTTPSPort" readonly="True" type=" Integer ">0</method>
<method name="WebPort" readonly="True" type=" Integer ">0</method>
</published>
</object>

</objects>

 Parameter definition

method name Definition


"SerialNo" Module serial #
"ItemType" Possible Values
"HD77"
"HD78"
"IPAddress" Module IP address
"WebPort" Module Web port #
"HTTPPort" Module HTTP port #
"HTTPSPort" Module HTTP port #

50. Configure Video Server (Command)


*You must start the IPDOX receiver (see StartIPDOX) in order to receive video notification events
 Use to configure and activate the built-in video server
 Define storage location (folder) to store video files received from HD77 module
 Define file lifetime to minimize space usage on local drive
 Request (Pascal STDCALL)
function ConfigureVideoServer(XMLVideoSettings: WideString): HResult; stdcall;
1. Function parameter (XMLVideoSettings) must contain XMLData; see below
<?xml version="1.0"?>
<objects>
<object objectname=" TVideoSettingsXML" name="VideoSettings">
<published>
<method name="VideoFileDir" readonly="False" type="UnicodeString"></method>
<method name="VideoFileLifeTime" readonly="False" type="Integer">0</method>
</published>
</object>
</objects>

 Parameter definition
method name Definition
"VideoFileDir" The directory to store the video files received from HD77 module. The files are uploaded

Page 45 of 64
from HD77 and stored to the selected local folder automatically upon video notification
event reception.
"VideoFileLifeTime" The maximum lifetime (in days) of an uploaded video file. The SDK will automatically
delete the file when time expires. This feature minimizes space usage on your local drive.

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

51. Get Video Alarm Files (Command)


 Use to retrieve (read) all video files associated to a video notification event
 Request (Pascal STDCALL)
function GetVideoAlarmFiles(const AccountNo: WideString; ZoneNo: Cardinal; DateTime: Double;
out XMLVideoFiles: WideString): HResult; stdcall;
1. AccountNo parameter identifies account # of the video notification event
(see Receive Reporting Event "EventAccountNo")
2. ZoneNo parameter identifies zone # of the video notification event
(see Receive Reporting Event "EventZoneUserNo")
3. DateTime parameter identifies date and time of the video notification event
(see Receive Reporting Event "EventDateTime")
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Function parameter (XMLVideoFiles) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
</published>
</object>
<object objectname="TVideoFileXML" name=" File2">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
</published>
</object>

</objects>

 Parameter definition

method name Definition


"FileID" File #
"FileType" File Type
Possible Values
"JPG"
"MP4"
"FileName" File name
"FilePath" File location (you can access the file from that location)

Page 46 of 64
52. Start Video on Demand (Command)
 Use to start video live streaming from a HD77 module following a video notification event
 HD77 module uses Apple HTTP live streaming protocol
 API returns a m3u8 file, which must be used to play live streaming from a standard video
player (m3u8 capable) such as VLC
 Live streaming can also be played with the provided Paradox Video Player (see
ParadoxVideoPlayer.exe)
 Request (Pascal STDCALL)
function StartVideoOnDemand(const IPAddress: WideString; IPPort: Cardinal; SessionKey:
WideString; out XMLVideoFile: WideString): HResult; stdcall;
1. IPAddress parameter identifies the IP address of the Camera to start VOD
a. The IP address is received in account registration and polling events
(see Account Registration , Account Link "LastIPAddress")
*The video notification event “MACAddress” can be used to retrieve the account
and LastIPAddress
b. The IP address can also be retrieved from ParadoxMyHome via the
GetSiteFromPMH API
2. IPPort parameter identifies the IP port of the Camera to use to play VOD
a. The IP port # is received in reporting event upon video notification
(see Receive Reporting Event "VODIPPort")
b. The IP port # can also be retrieved from ParadoxMyHome via the
GetSiteFromPMH API
3. SessionKey parameter identifies a valid session # to use to play live streaming
a. The session key is received in reporting event upon video notification
(see Receive Reporting Event "VODSessionKey")
b. If the session key is unavailable or unknown, you can use StartVideonDemandEx
API
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List Video on demand)
2. Function parameter (XMLVideoFile) returns XMLData; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
<method name="SessionKey" readonly="True" type=" UnicodeString"></method>
</published>
</objects>

 Parameter definition

method name Definition


EVOHD
"FileID" File #
"FileType" File Type
Possible Values
"m3u8"
"FileName" File name (you can play live streaming using that file)
"FilePath" File location
"SessionKey" Session key

Page 47 of 64
53. Start Video on Demand EX (Command)
 Use to start a video live streaming session from a HD77 module (at any time)
 HD77 module uses Apple HTTP live streaming protocol
 API returns a m3u8 file, which must be used to play live streaming from a standard video player
(m3u8 capable) such as VLC
 Live streaming can be played with the provided Paradox Video Player (see
ParadoxVideoPlayer.exe)
 Request (Pascal STDCALL)
function StartVideoOnDemandEx(const PanelID: Cardinal; XMLVODSettings: WideString; out
XMLVideoFile: WideString): HResult; stdcall;
1. PanelID parameter identifies the connected control panel of the Camera to start VOD
2. Function parameter (XMLVODSettings) must contain XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TVODSettingsXML" name="Settings">
<published>
<method name="IPAddress" readonly="False" type="UnicodeString"></method>
<method name="IPPort" readonly="False" type="Integer">0</method>
<method name="ServerPassword" readonly="False" type="UnicodeString"></method>
<method name="UserName" readonly="False" type="UnicodeString"></method>
<method name="VideoFormat" readonly="False" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameters definition

method name Definition


"IPAddress" Camera IP address
"IPPort" Camera Port
"ServerPassword" Camera Server Password (default = ‘paradox’)
"UserName" Camera UserName (default = ‘master’)
Optional
"VideoFormat" Video streaming format: (default = "360P256K")
Possible Values
"180P64K"
"360P256K"
"360P512K"

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List Video on demand)
2. Function parameter (XMLVideoFile) returns XMLData; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TVideoFileXML" name="File1">
<published>
<method name="FileID" readonly="True" type="Integer">0</method>
<method name="FileType" readonly="True" type="UnicodeString"></method>
<method name="FileName" readonly="True" type="UnicodeString"></method>
<method name="FilePath" readonly="True" type=" UnicodeString"></method>
<method name="SessionKey" readonly="True" type=" UnicodeString"></method
</published>
</objects>

Page 48 of 64
 Parameter definition

method name Definition


EVOHD
"FileID" File #
"FileType" File Type
Possible Values
"m3u8"
"FileName" File name (you can play live streaming using that file)
"FilePath" File location
"SessionKey" Session key

54. Stop Video on Demand (Command)


 Use to stop video live streaming and log out from a HD77 module
 Request (Pascal STDCALL)
function StopVideoOnDemand(const IPAddress: WideString; IPPort: Cardinal; SessionKey:
WideString): HResult; stdcall;
1. IPAddress parameter identifies the IP address of the Camera to stop VOD
2. IPPort parameter identifies the IP port of the Camera to use to stop VOD
3. SessionKey parameter identifies a valid session # to logout
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

55. Connection Status Changed (Event)


 Register to receive connection status change notification
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterConnectionStatusChangedCallback(Callback:
TOnConnectionStatusChangedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnConnectionStatusChangedCallback = procedure(const PanelID: Cardinal; Status: WideString);
stdcall;

Parameter Definition
PanelID Identify the connected control panel
Status Possible Values Description
"PANELDETECTED" The account has detected the control panel
type
"CONNECTING" The account is connecting to the detected
control panel
"CONNECTED" The account is connected to the detected
control panel
"DISCONNECTING" The account is disconnecting from the
control panel
"DISCONNECTED" The account is disconnected

Page 49 of 64
56. Progress Changed (Event)
 Register to receive notification on task progress changed
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterProgressChangedCallback(Callback: TOnProgressChangedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnProgressChangedCallback = procedure(const PanelID: Cardinal; TaskID: Cardinal;
Description: WideString; Percent: Cardinal); stdcall;

Parameter Definition
PanelID Identify the connected control panel
TaskID Possible Values Description
0x127 Auto detecting panel
0x12A Opening socket (Server Mode)
0x101 Querying ParadoxMyHome
0x12B Handle incoming connection
0x102 Opening Socket
0x104 Connecting to Panel
0x106 Connecting Serial
0x107 Disconnecting Serial
0x10A Login Panel
0x10B Logout Panel
0x10D Identifying Panel
0x118 Loading Block Counters
0x119
0x12E Receiving bus modules’ status
0x120
0x11E Initiating panel connection
0x121 Receiving modules’ information
0x132 Waiting for a call
0x11F Installer login
0x12D Connection Lost
Description The task description in English
Percent The progression of the task in percent

57. Progress Error (Event)


 Register to receive notification on task error
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterProgressErrorCallback(Callback: TOnProgressErrorCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnProgressErrorCallback = procedure(const PanelID: Cardinal; TaskID: Cardinal; ErrorCode:
Integer; ErrorMsg: WideString); stdcall;

Parameter Definition
PanelID Identify the connected control panel

Page 50 of 64
TaskID Possible Values Description
0x127 Auto detecting panel
0x12A Opening socket (Server Mode)
0x101 Querying ParadoxMyHome
0x12B Handle incoming connection
0x102 Opening Socket
0x104 Connecting to Panel
0x106 Connecting Serial
0x107 Disconnecting Serial
0x10A Login Panel
0x10B Logout Panel
0x10D Identifying Panel
0x118 Loading Block Counters
0x119
0x12E Receiving bus modules status
0x120
0x11E Initiating panel connection
0x121 Receiving modules information
0x132 Waiting for a call
0x11F Installer login
0x12D Connection Lost
ErrorCode Possible Values Description
E_PN_RESULT_PID_BASE =
0x82000000
E_PID0000_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000000
E_PID0000_RESULT_FAILURE + 0x04 Invalid Command
E_PID0000_RESULT_FAILURE + 0x05 Invalid SRC
E_PID0000_RESULT_FAILURE + 0x07 Connection Dropped
E_PID0000_RESULT_FAILURE + 0x06 Destination Unreachable
E_PN_RESULT_PID_BASE +
0x00000100
E_PID0001_RESULT_FAILURE + 0x01 Invalid Session (expired)
E_PID0001_RESULT_FAILURE + 0x02 Invalid Command
E_PID0001_RESULT_FAILURE + 0x03 Invalid Login Information or IP Password
E_PID0001_RESULT_FAILURE + 0x04
E_PID0001_RESULT_FAILURE + 0x05 User Already Connected
E_PID0001_RESULT_FAILURE + 0x06 The System is locked
E_PID0001_RESULT_FAILURE + 0x07 Maximum System connections attained
E_PID0001_RESULT_FAILURE + 0x08 PC Access Disabled
E_PID0001_RESULT_FAILURE + 0x09 Connected on Same PC
E_PID0001_RESULT_FAILURE + 0x0A Unsupported Encryption Type
E_PID0001_RESULT_FAILURE + 0x0B Compatibility ID Incompatible
E_PID0007_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000700
E_PID0007_RESULT_FAILURE + 0x08 Access Denied to the System
E_PID0008_RESULT_FAILURE =
E_PN_RESULT_PID_BASE +
0x00000800
E_PID0008_RESULT_FAILURE + $01 Connection Time Out
E_PID0008_RESULT_FAILURE + $03 Invalid Serial #
E_IP100_RESULT_FAILURE =
0x83000000
E_IP100_RESULT_FAILURE + 0x06 Command Timeout
E_IP100_RESULT_FAILURE + 0x02 Web page already in use
E_IP100_RESULT_FAILURE + 0x03 Invalid Login Information or IP Password

Page 51 of 64
E_IP100_RESULT_FAILURE + 0x04
E_IP100_RESULT_FAILURE + 0x05 Connection in use by another user
E_IP100_RESULT_FAILURE + 0x0B Packet Wrong Command
E_IP100_RESULT_FAILURE + 0x0C Panel mismatch
E_IP100_RESULT_FAILURE + 0x15 Unsupported Encryption
E_PN_RESULT_CODE_BASE =
0x8100000
E_PN_RESULT_CODE_BASE + 0x21 Command Failed (Too many retries)
E_PN_RESULT_DNS_BASE + 0x01 Invalid Site
E_PN_RESULT_DNS_BASE + 0x02 Invalid Password
E_PID0004_ERROR =
E_PN_RESULT_PID_BASE +
0x00000400
E_PID0004_ERROR + 0x04 Wrong Panel ID.; Authentication failed
E_PID0004_ERROR + 0x03 Wrong PC Password.; Authentication failed
E_PID0004_ERROR + 0x01 Command error
E_PID0004_ERROR + 0x02 Wrong command
E_PID0004_ERROR + 0x05 Wrong User Code.; Authentication failed
E_PID0004_ERROR + 0x06 Cannot connect.; Panel reporting
E_PID0004_ERROR + 0x0A Partition in locked out
E_PID0004_ERROR + 0x0B Panel will disconnected
E_PID0004_ERROR + 0x0C Panel not connected
E_PID0004_ERROR + 0x0D Connection already in use
E_PID0004_ERROR + 0x18 Invalid monitoring action
E_PID0004_ERROR + 0x20 Panel not supported
E_PN_RESULT_CHANNEL_BASE =
0x85000000
E_PN_RESULT_CHANNEL_SOCKET =
E_PN_RESULT_CHANNEL_BASE +
0x00000200
E_PN_RESULT_CHANNEL_SOCKET + Network problems are preventing connection
0x02 to the panel
E_PN_RESULT_CHANNEL_BASE + Connection failed, please try again
0x01
E_PN_RESULT_CHANNEL_BASE + Connection timeout
0x06
E_PN_RESULT_CHANNEL_SOCKET + Invalid IP address
0x01
ErrorMsg The error description in English

58. SMS Request (Event)


 Register to receive SMS message while PCS connection is being established
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterSMSRequestCallback(Callback: TOnSMSRequestCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnSMSRequestCallback = procedure(const PanelID: Cardinal; SMS: WideString); stdcall;

Parameter Definition
PanelID Identify the connected control panel
SMS The SMS message to send to the PCS module via your SMS device (phone, web page)

Page 52 of 64
59. Receive Reporting Event (Event)
 Register to receive reporting events from registered accounts
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterReceiveReportingEventCallback(Callback:
TOnReceiveReportingEventCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingEventXML" name="PanelReportingEvent">
<published>
<method name="EventID" readonly="True" type="Integer">0</method>
<method name="EventAccountNo" readonly="True" type="UnicodeString"></method>
<method name="EventDateTime" readonly="True" type="Double">0</method>
<method name="EventProtocolID" readonly="True" type="UnicodeString"></method>
<method name="EventCode" readonly="True" type="UnicodeString"></method>
<method name="EventDescription" readonly="True" type="UnicodeString"></method>
<method name="EventAreaDoorNo" readonly="True" type="UnicodeString"></method>
<method name="EventZoneUserNo" readonly="True" type="UnicodeString"></method>
<method name="EventMACAddress" readonly="True" type="UnicodeString"></method>
<method name="EventStatus" readonly="True" type="UnicodeString"></method>
<method name="VODIPPort" readonly="True" type=" Integer">0</method>
<method name="VODSessionKey" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition
TOnReceiveReportingEventCallback = procedure(XMLEvent: WideString); stdcall;

Parameter Definition
XMLEvent method name Definition
"EventID" Unique event identifier
"EventAccountNo" Account # associated to the event
"EventDateTime" Event reported date and time
"EventProtocolID" Event reported protocol ID
"EventCode" Event code
"EventDescription" Event description in English
"EventAreaDoorNo" Event area or door #
"EventZoneUserNo" Event zone or user #
"EventMACAddress" MAC address of the reporting account (see Account
Registration "MACAddress"
"EventStatus" Event status
"VODIPPort" IP port to use for video on demand (see:
StartVideoOnDemand)
"VODSessionKey" Session key to use for video on demand (see:
StartVideoOnDemand)

 Special event definition

"EventDescription" "EventCode" Definition


"Video notification" 0x1027 Alarm with video notification received from a HD77 module. The zone #

Page 53 of 64
associated with that HD77 is defined in "EventZoneUserNo"

60. Account Registration (Event)


 Register to receive account registration
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterAccountRegistrationCallback(Callback: TOnAccountRegistrationCallback);
stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>

 Parameter definition
TOnAccountRegistrationCallback = procedure(XMLAccount: WideString); stdcall;

Parameter Definition
XMLAccount method name Definition
"AccountNo" Account #
"AccountStatus" Account status
Possible Values Description
"Unknown" Unknown status
"Active" Account is active
"Not Responding" Account did not poll
"Deleted" Account as been deleted
"Updating" Account is currently in update mode
"Profile Error" The account profile ID is invalid
"MACAddress" MAC address of the registered module
"ProfileID" Account profile ID
"ProtocolID" Account protocol ID
Possible Values
"ADEMCO CID"
"SIA"
"UNKNOWN"

Page 54 of 64
"PanelType" Registered panel type
"PanelSerialNo" Registered panel serial #
"PanelVersion" Registered panel version
"ModuleType" Registered module type
Possible Values
"IP100"
"IP150"
"PCS250"
"HD77"
"ModuleSerialNo" Registered module serial #
"ModuleVersion" Registered module version
"RegistrationDate" Registration date and time
"LastIPAddress" Last IP address of the registered module
"LastPollingTime" Last polling time of the registered module

61. Account Update (Event)


 Register to receive account registration update
 Notification is done via the registered callback function
 Request (STDCALL)
procedure RegisterAccountUpdateCallback(Callback: TOnAccountUpdateCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>

 Parameter definition
TOnAccountUpdateCallback = procedure(XMLAccount: WideString); stdcall;
1. Use the same parameter definition as Account Registration event callback

62. Account Link (Event)


 Register to receive account link (polling)
 Notification is done via the registered callback function
 Request (Pascal STDCALL)

Page 55 of 64
procedure RegisterAccountLinkCallback(Callback: TOnAccountLinkCallback); stdcall;
1. Callback function; see Parameter definition below

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelReportingAccountXML" name="PanelReportingAccount">
<published>
<method name="AccountNo" readonly="True" type="UnicodeString"></method>
<method name="AccountStatus" readonly="True" type="UnicodeString"></method>
<method name="MACAddress" readonly="True" type="UnicodeString"></method>
<method name="ProfileID" readonly="True" type="Integer">0</method>
<method name="ProtocolID" readonly="True" type="UnicodeString"></method>
<method name="PanelType" readonly="True" type="UnicodeString"></method>
<method name="PanelSerialNo" readonly="True" type="UnicodeString"></method>
<method name="PanelVersion" readonly="True" type="UnicodeString"></method>
<method name="ModuleType" readonly="True" type="UnicodeString"></method>
<method name="ModuleSerialNo" readonly="True" type="UnicodeString"></method>
<method name="ModuleVersion" readonly="True" type="UnicodeString"></method>
<method name="RegistrationDate" readonly="True" type="Double">0</method>
<method name="LastIPAddress" readonly="True" type="UnicodeString"></method>
<method name="LastPollingTime" readonly="True" type="Double">0</method>
</published>
</object>
</objects>

 Parameter definition
TOnAccountLinkCallback = procedure(XMLAccount: WideString); stdcall;
1. Use the same parameter definition as Account Registration event callback

63. Receive Buffer Event (Event)


 Register to receive buffer events
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterReceiveBufferEventCallback(Callback: TOnBufferEventReceivedCallback);
stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:
<?xml version="1.0"?>
<objects>
<object objectname="TPanelEventXML" name="PanelEvent">
<published>
<method name="DateTime" readonly="True" type="Double">0</method>
<method name="SequenceNo" readonly="True" type="Int64">0</method>
<method name="EventDateTime" readonly="True" type="UnicodeString"></method>
<method name="EventLabel" readonly="True" type="UnicodeString"></method>
<method name="EventType" readonly="True" type="UnicodeString"></method>
<method name="EventSerialNo" readonly="True" type="UnicodeString"></method>
<method name="EventDescription" readonly="True" type="UnicodeString"></method>
<method name="EventAdditionalInfo" readonly="True" type="UnicodeString"></method>
<method name="EventUserLabel" readonly="True" type="UnicodeString"></method>
<method name="EventSequenceNo" readonly="True" type="UnicodeString"></method>

Page 56 of 64
</published>
</object>
</objects>
 Parameter definition
TOnBufferEventReceivedCallback = procedure(const PanelID: Cardinal; XMLEvents: WideString);
stdcall;

Parameter Definition
PanelID Identifies the connected control panel
XMLEvents method name Definition
"DateTime" Date and time where the event has been received
"SequenceNo" Sequence # (prevent duplication if same # received within 1 minute)
integer value
"EventDateTime" Date and time where the event has been generated
"EventLabel" Event label in selected language (set SystemAlarmLanguage)
"EventType" Event type
Possible Values Description
“System” Any System related event (ex.: Panel Low
Battery)
“Alarm” Any event related to an Alarm
“Trouble” Any event related to a Trouble
“Access” Any event related to Access control
“Arming_Disarming” Any event related to Arming_Disarming
“Operator” Any event related to an Operator
“Partition” Any event related to a Partition
“Zone” Any event related to a Zone
“User” Any event related to a User
“Door” Any event related to a Door
“Module” Any event related to a Module
“Serial” Any event related to a Serial device
“Keyswitch” Any event related to a Keyswitch
“Utility Key” When any Utility Key event is generated
“Card” Any event related to a Card is generated
“Schedule” Any event related to a Schedule
“PGM” Any event related to a PGM
“AUX” Any event related to the AUX
“Installer” Any event related to the Installer
“Remote” Any event related to Remote access
“Phone” Any event related to the telephone line
“Level” Any event related to voltage Levels
“Time” Any event related to Timers/delays
“Dialer” Any event related to the Dialer
“IP” Any event related to IP
“GPRS” Any event related to GPRS
“Voice” Any event related to Voice
“Panic” Any event related to Panics
"EventSerialNo" Event serial #
"EventDescription" Event description in English
"EventAdditionalInfo" Event additional info in English
"EventUserLabel" Event user label
"EventSequenceNo" Sequence # (prevent duplication if same # received within 1 minute)
string value

64. Receive Live Event (Event)


 Register to receive live events

Page 57 of 64
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterReceiveLiveEventCallback(Callback: TOnLiveEventReceivedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TPanelEventXML" name="PanelEvent">
<published>
<method name="DateTime" readonly="True" type="Double">0</method>
<method name="SequenceNo" readonly="True" type="Int64">0</method>
<method name="EventDateTime" readonly="True" type="UnicodeString"></method>
<method name="EventLabel" readonly="True" type="UnicodeString"></method>
<method name="EventType" readonly="True" type="UnicodeString"></method>
<method name="EventSerialNo" readonly="True" type="UnicodeString"></method>
<method name="EventDescription" readonly="True" type="UnicodeString"></method>
<method name="EventAdditionalInfo" readonly="True" type="UnicodeString"></method>
<method name="EventUserLabel" readonly="True" type="UnicodeString"></method>
<method name="EventSequenceNo" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition
TOnLiveEventReceivedCallback = procedure(const PanelID: Cardinal; XMLEvents: WideString);
stdcall;
1. Use the same parameter definition as Receive Buffer Event

65. Monitoring Status Changed (Event)


 Register to receive monitoring status change
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterMonitoringStatusChangedCallback(Callback:
TOnMonitoringStatusChangedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<PanelInfo>
<AreaStatus Area1="Ready,Armed" Area2="Ready,Armed"/>
</PanelInfo>

 Parameter definition
TOnMonitoringStatusChangedCallback = procedure(const PanelID: Cardinal; XMLStatus:
WideString); stdcall;
1. See Area Status, Zone Status and PGM Status functions

66. RX Status Changed (Event)


 Register to be notified on received bytes

Page 58 of 64
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterRxStatusChangedCallback(Callback: TOnDataExchangedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnDataExchangedCallback = procedure(const PanelID: Cardinal; ByteCount: Integer); stdcall;

Parameter Definition
PanelID Identifies the connected control panel
ByteCount Quantity of bytes received from the control panel

67. TX Status Changed (Event)


 Register to be notified on send bytes
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterTxStatusChangedCallback(Callback: TOnDataExchangedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnDataExchangedCallback = procedure(const PanelID: Cardinal; ByteCount: Integer); stdcall;

Parameter Definition
PanelID Identifies the connected control panel
ByteCount Quantity of bytes sent to the control panel

68. IP Module Detected (Event)


 Register to be notified on IP module detected
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterIPModuleDetectedCallback(Callback: TOnIPModuleDetectedCallback); stdcall;
1. Callback function; see Parameter definition below
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)
2. Callback parameter returns XML; see below:

<?xml version="1.0"?>
<objects>
<object objectname="TModuleInfoXML" name="Module1">
<published>
<method name="MacString" readonly="True" type="UnicodeString"></method>
<method name="NetMaskString" readonly="True" type="UnicodeString"></method>
<method name="DHCPString" readonly="True" type="UnicodeString"></method>
<method name="TypeString" readonly="True" type="UnicodeString"></method>
<method name="IPString" readonly="True" type="UnicodeString"></method>
<method name="SiteNameString" readonly="True" type="UnicodeString"></method>

Page 59 of 64
<method name="SiteIDString" readonly="True" type="UnicodeString"></method>
<method name="VersionString" readonly="True" type="UnicodeString"></method>
<method name="IPPortString" readonly="True" type="UnicodeString"></method>
<method name="WebPortString" readonly="True" type="UnicodeString"></method>
<method name="LanguageString" readonly="True" type="UnicodeString"></method>
<method name="SerialNoString" readonly="True" type="UnicodeString"></method>
<method name="HTTPSPortString" readonly="True" type="UnicodeString"></method>
<method name="DiscoverOnLAN" readonly="True" type="Boolean">False</method>
<method name="UseHTTPSString" readonly="True" type="UnicodeString"></method>
<method name="RegisteredToPMH" readonly="True" type="Boolean">False</method>
<method name="NetworkInterfaceIpAddress" readonly="True" type="UnicodeString"></method>
</published>
</object>
</objects>

 Parameter definition
TOnIPModuleDetectedCallback = procedure(XMLModule: WideString); stdcall;

Parameter Definition
XMLModule See Discover Module command

69. IPDOX Socket Changed (Event)


 Register to be notified on IPDOX status changed
 Notification is done via the registered callback function
 Request (Pascal STDCALL)
procedure RegisterIPDOXSocketChangedCallback(Callback:
TOnIPDOXSocketChangedCallback); stdcall;
1. Callback function; see Parameter definition below

 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

 Parameter definition
TOnIPDOXSocketChangedCallback = procedure(const Port: Cardinal; Status: Cardinal;
Description: WideString); stdcall;

Parameter Definition
Port The IP port # that changed
Status Possible Values Description
0x00 Socket Close
0x01 Socket Open
0x02 Socket Error
Description The error description in English

70. Unregister All (Command)


 Unregister all event notification
 Request (Pascal STDCALL)
procedure UnregisterAllCallback; stdcall;
 Answer
1. Function call returns HResult (see 2.2.2 Result Code List)

2.2.2. Paradox API - 2.2.2 Result Code List

Page 60 of 64
S_PN_RESULT_PID_BASE 0x02000000 Stack Successful

E_PN_RESULT_CODE_BASE 0x81000000 Successful

E_PN_RESULT_PID_BASE 0x82000000 Stack Error

S_PID002A_RESULT_SUCCESS S_PN_RESULT_PID_BASE + 0x00002A00 Command Successful

E_PID002A_RESULT_FAILURE E_PN_RESULT_PID_BASE + 0x00002A00 Command Error

Command not supported by


E_PID002A_INVALID_COMMAND E_PID002A_RESULT_FAILURE + 0x01 driver
Selected account is already
E_PID002A_ALREADY_CONNECTED E_PID002A_RESULT_FAILURE + 0x08 connected
E_PID002A_INVALID_PANEL_ID E_PID002A_RESULT_FAILURE + 0x0C Selected panel ID does not exists
Cannot execute the selected
command. (Please connect the
account or wait connection
completes, see:
E_PID002A_INVALID_ACCOUNT_NOT RegisterConnectionStatusChan
_CONNECTED E_PID002A_RESULT_FAILURE + 0x0E gedCallback)
E_PID002A_INVALID_COMMAND_NOT Command not supported by the
_SUPPORTED E_PID002A_RESULT_FAILURE + 0x0F connected control panel
Session expires due to inactivity
E_PID002A_SESSION_TIMEOUT E_PID002A_RESULT_FAILURE + 0x10 timeout
Unable to update the control
E_PID002A_INVALID_DATETIME_FOR E_PID002A_INVALID_DATETIME_FORMA panel date and time (invalid date
MAT T + 0x11 time format

E_PID002A_SMS_CALLBACK_CONNE Paradox driver has accepted the


CTION_SUCCESS S_PID002A_RESULT_SUCCESS +0x03 PCS incoming connection

E_PID002A_INVALID_XML_FORMAT E_PID002A_RESULT_FAILURE + 0x28 The XML format is invalid

E_PID002A_INVALID_COM_PORT E_PID002A_RESULT_FAILURE + 0x29 The COM port is invalid

E_PID002A_INVALID_BAUD_RATE E_PID002A_RESULT_FAILURE + 0x2A The baud rate is invalid

E_PID002A_INVALID_IP_ADDRESS E_PID002A_RESULT_FAILURE + 0x2B The IP address is invalid

E_PID002A_INVALID_IP_PORT E_PID002A_RESULT_FAILURE + 0x2C The IP port is invalid


The SiteID does not exist in
E_PID002A_INVALID_SITE_ID E_PID002A_RESULT_FAILURE + 0x2D ParadoxMyHome
E_PID002A_INVALID_IP_PASSWORD E_PID002A_RESULT_FAILURE + 0x2E The IP password is invalid
The communication type is
E_PID002A_INVALID_COM_TYPE E_PID002A_RESULT_FAILURE + 0x2F invalid
The user code does not exist in
E_PID002A_INVALID_USERCODE E_PID002A_RESULT_FAILURE + 0x30 the control panel
You do not have sufficient rights
to perform this action; contact
E_PID002A_INVALID_USER_RIGHTS E_PID002A_RESULT_FAILURE + 0x31 your system master

The command timed out, no valid


E_PID002A_COMMAND_TIMEOUT E_PID002A_RESULT_FAILURE + 0x32 answer received
Panel does not exist or is
E_PID002A_PANEL_NOT_FOUND E_PID002A_RESULT_FAILURE + 0x33 disconnected
The current task has been
E_PID002A_TASK_CANCELLED E_PID002A_RESULT_FAILURE + 0x34 cancelled
E_PID002A_NO_SYSTEM_TROUBLES E_PID002A_RESULT_FAILURE + 0x35 No trouble found in control panel

Page 61 of 64
E_PID002A_INVALID_RECEIVER_NO E_PID002A_RESULT_FAILURE + 0x36 The receiver # does not exist

E_PID002A_INVALID_AREA_NO E_PID002A_RESULT_FAILURE + 0x37 The area # does not exist

E_PID002A_INVALID_ZONE_NO E_PID002A_RESULT_FAILURE + 0x38 The zone # does not exist

E_PID002A_INVALID_PGM_NO E_PID002A_RESULT_FAILURE + 0x39 The pgm # does not exist

E_PID002A_INVALID_DOOR_NO E_PID002A_RESULT_FAILURE + 0x3A The door # does not exist

E_PID002A_INVALID_USER_NO E_PID002A_RESULT_FAILURE + 0x3B The user # does not exist

E_PID002A_INVALID_ACCOUNT_NO E_PID002A_RESULT_FAILURE + 0x3C The account # does not exist

E_PID002A_INVALID_SCHEDULE_NO E_PID002A_RESULT_FAILURE + 0x3D The schedule # does not exist


E_PID002A_INVALID_ACCESS_LEVEL The access level # does not exist
_NO E_PID002A_RESULT_FAILURE + 0x3E
E_PID002A_PMH_ERROR_PANEL_NO The panel serial # is not
T_FOUND E_PID002A_RESULT_FAILURE + 0x3F registered to ParadoxMyHome
The selected panel serial # does
E_PID002A_PMH_ERROR_NO_MODU not include any module
LE E_PID002A_RESULT_FAILURE + 0x40 registered to ParadoxMyHome
The command timed out, no valid
E_PID002A_PMH_ERROR_NO_ANSW answer received from
ER_TIMEOUT E_PID002A_RESULT_FAILURE + 0x41 ParadoxMyHome
No video file found for selected
E_PID002A_NO_VIDEO_FILE E_PID002A_RESULT_FAILURE + 0x42 event
The selected video folder is
E_PID002A_INVALID_VIDEO_FOLDER E_PID002A_RESULT_FAILURE + 0x43 invalid

S_IP100_RESULT_SUCCESS 0x03000000 IP Module Successful

E_IP100_RESULT_FAILURE 0x83000000 IP Module Error

Failed to connect; IP Module web


page currently in used (please try
E_IP100_WEB_PAGE_IN_USE E_IP100_RESULT_FAILURE + 0x02 later)
Failed to connect; IP Module user
E_IP100_BAD_USERNAME E_IP100_RESULT_FAILURE + 0x03 name entered is invalid
Failed to connect; IP Module
E_IP100_BAD_PASSWORD E_IP100_RESULT_FAILURE + 0x04 password entered is invalid
Failed to connect;
NEware/Winload is currently
E_IP100_NEWARE_IN_USE E_IP100_RESULT_FAILURE + 0x05 connected (please try later)

S_PID0004_RESULT S_PN_RESULT_PID_BASE + 0x00000400 Winload Protocol Successful

E_PID0004_ERROR E_PN_RESULT_PID_BASE + 0x00000400 Winload Protocol Error

E_PID0004_ERROR_AUTHFAIL_PCPS Failed to connect; User


WD E_PID0004_ERROR + 0x03 Code/Password entered is invalid
Failed to connect; Panel ID
E_PID0004_ERROR_AUTHFAIL_PNLID E_PID0004_ERROR + 0x04 entered is invalid
Failed to connect; User Code
E_PID0004_ERROR_AUTHFAIL_USRID E_PID0004_ERROR + 0x05 entered is invalid
Failed to connect; Control panel
is currently reporting to the
E_PID0004_ERROR_AUTHFAIL_PNLR central station
EPORTING E_PID0004_ERROR + 0x06 (please try later)
Failed to connect; Control panel
E_PID0004_ERROR_PARTITIONINLOC is in partition lockout (please try
KOUT E_PID0004_ERROR + 0x0A later)

Page 62 of 64
Failed to connect; Control panel
E_PID0004_ERROR_PANELWILLDISC cannot connect for the moment
ONNECT E_PID0004_ERROR + 0x0B (please try later)
E_PID0004_ERROR_PANELNOTCONN Unable to execute command;
ECTED E_PID0004_ERROR + 0x0C Control panel is not connected
E_PID0004_ERROR_PANELALREADY Failed to connect; Control panel
CONNECTED E_PID0004_ERROR + 0x0D is already connected
Failed to connect; Another
E_PID0004_ERROR_SOFTWAREOVER software is currently connected
MODEM E_PID0004_ERROR + 0x0E over the phone (please try later)

S_PN_RESULT_CHANNEL_BASE 0x05000000 Channel Successful

E_PN_RESULT_CHANNEL_BASE 0x85000000 Channel Error


S_PN_RESULT_CHANNEL_BASE + Socket Successful
S_PN_RESULT_CHANNEL_SOCKET 0x00000200
E_PN_RESULT_CHANNEL_BASE + Socket Error
E_PN_RESULT_CHANNEL_SOCKET 0x00000200
E_PN_CHNL_SOCKET_INVALID_ADD E_PN_RESULT_CHANNEL_SOCKET + Failed to connect;
RESS 0x01 Invalid control panel IP Address
Failed to connect;
Unable to connect to destination
IP address (Host is unreachable,
E_PN_CHNL_SOCKET_HOST_UNREA E_PN_RESULT_CHANNEL_SOCKET + please verify control panel
CHABLE 0x02 network settings)
Failed to connect;
E_PN_CHNL_CONNECT_FAILED E_PN_RESULT_CHANNEL_BASE + 0x01 Unable to connect socket

Video on demand
E_VIDEO_ RESULT_SUCCESS S_PID002A_RESULT_SUCCESS Video Successful

E_VIDEO_ RESULT_FAILURE 0x80000000 Video Error


E_VIDEO_ RESULT_FAILURE + Login refused, unknown error
E_VIDEO_ ERROR_LOGIN_REFUSED 0x00
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Login refused, invalid developer
ERROR_LOGIN_INVALID_DEVELOPER_KEY 0x01 key
E_VIDEO_ Login refused, invalid server
ERROR_LOGIN_INVALID_SERVER_PASSWOR E_VIDEO_ RESULT_FAILURE + password
D 0x02
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Login refused, control panel link
ERROR_LOGIN_CONTROLPANEL_DOWN 0x03 is down
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Login refused, invalid user code
ERROR_LOGIN_INVALID_USERCODE 0x04
E_VIDEO_ RESULT_FAILURE + Login refused, user already
E_VIDEO_ ERROR_ LOGIN_ALREADY_IN 0x05 logged in
E_VIDEO_ ERROR_ E_VIDEO_ RESULT_FAILURE + Login refused, too many
LOGIN_TOO_MANY_ATTEMPTS 0x07 connections for this user code
E_VIDEO_ ERROR_ E_VIDEO_ RESULT_FAILURE + Login refused, privacy mode
LOGIN_PRIVACY_MODE_ACTIVE 0x08 active
E_VIDEO_ RESULT_FAILURE + Request failed, request
E_VIDEO_ ERROR_REQUEST_MALFORMED 0x40000 malformed
E_VIDEO_ RESULT_FAILURE + Request failed, invalid session
E_VIDEO_ ERROR_INVALID_SESSION_KEY 0x40001 key
E_VIDEO_ RESULT_FAILURE + Request failed, invalid action id
E_VIDEO_ ERROR_INVALID_ACTION 0x40002
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Request failed, insufficient user
ERROR_INSUFFICIENT_USER_RIGHTS 0x40003 rights
E_VIDEO_ ERROR_INVALID_FORMAT E_VIDEO_ RESULT_FAILURE + Request failed, invalid resolution

Page 63 of 64
0x40004
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, request
ERROR_DOWNLOAD_REQUEST_MALFORMED 0x60000 malformed
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed,invalid
ERROR_DOWNLOAD_INVALID_SESSION_KEY 0x60001 session key
E_VIDEO_ ERROR_DOWNLOAD_ E_VIDEO_ RESULT_FAILURE + Item download failed, insufficient
INSUFFICIENT_USER_RIGHTS 0x60002 user rights
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, invalid item
ERROR_DOWNLOAD_INVALID_ITEM_ID 0x60003 id
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item download failed, item is not
ERROR_DOWNLOAD_UNAVAILABLE 0x60004 downloadable
E_VIDEO_ ERROR_PLAY_ E_VIDEO_ RESULT_FAILURE + Item play failed, request
REQUEST_MALFORMED 0x70000 malformed
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item play failed,invalid session
ERROR_PLAY_INVALID_SESSION_KEY 0x70001 key
E_VIDEO_ ERROR_PLAY_ E_VIDEO_ RESULT_FAILURE + Item play failed, insufficient user
INSUFFICIENT_USER_RIGHTS 0x70002 rights
E_VIDEO_ RESULT_FAILURE + Item play failed, invalid item id
E_VIDEO_ ERROR_PLAY_INVALID_ITEM_ID 0x70003
E_VIDEO_ RESULT_FAILURE + Item play failed, invalid action id
E_VIDEO_ ERROR_PLAY_INVALID_ACTION_ID 0x70004
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Item play failed, authentication
ERROR_PLAY_AUTHENTIFICATION_FAILED 0x70008 failed
E_VIDEO_ RESULT_FAILURE + Item play failed, file not found
E_VIDEO_ ERROR_PLAY_FILE_NOT_FOUND 0x70009
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Logout failed, request malformed
ERROR_LOGOUT_REQUEST_MALFORMED 0x120000
E_VIDEO_ E_VIDEO_ RESULT_FAILURE + Logout failed, invalid session key
ERROR_LOGOUT_INVALID_SESSION_KEY 0x120001
E_VIDEO_ ERROR_LOGOUT_ E_VIDEO_ RESULT_FAILURE + System logout failed, CP link is
CONTROLPANEL_DOWN 0x120002 down, Server logout succeeded
E_VIDEO_ RESULT_FAILURE + The IP address of the selected
E_VIDEO_ ERROR_INVALID_IP_ADDRESS 0xFF001 module is invalid
E_VIDEO_ Login timeout, no valid answer
ERROR_LOGIN_TIMEOUT_NO_ANSWER_FRO E_VIDEO_ RESULT_FAILURE + received from module
M_MODULE 0xFF006
E_VIDEO_ Login error, data received from
ERROR_LOGIN_INVALID_DATA_FROM_MODU E_VIDEO_ RESULT_FAILURE + module is invalid
LE 0xFF007
E_VIDEO_ Logout timeout, no valid answer
ERROR_LOGOUT_TIMEOUT_NO_ANSWER_FR E_VIDEO_ RESULT_FAILURE + received from module
OM_MODULE 0xFF008
E_VIDEO_ Logout error, data received from
ERROR_LOGOUT_INVALID_DATA_FROM_MOD E_VIDEO_ RESULT_FAILURE + module is invalid
ULE 0xFF009

Page 64 of 64