Skip to main content

Protege

Protege is a server based architecture enabling you to securely manage, control and monitor a number of users, doors, areas, and other devices. The integration with HSYCO can be accomplished with a TCP/IP network connection.

Protege Configuration

ProtegeGXServer needs to be configured to accept a connection on a defined TCP/IP port with the ICT Automation and Control Service protocol.

  • A PIN must be set (4 to 6 digits)

Open Programming > Services Select the controller associated to the Protege I/O Server Click "Add" to activate the "Automation and Control" service

  • Under "Service Type /General" specify a name (freely choose), for the main and the second language.
  • Under "Service Type /Type" select "Automation and Control" then set "Service Mode" to "1 - Start with Controller OS"
  • Under "General / Configuration" select "TCP/I" then specify a "Port Number". Set "Encryption Level" and "Checksum Type" to "None"
  • Under "General / Options" enable "Allow Status Requests when not Logged In", "Use Logon Lock Out Timer if Incorrect PIN is Supplied", "Ack Command"

This driver works with Little Endian format

Click "Save" to confirm. Right click on the service and select "Start Service"

Protege Configuration 1 Protege Configuration 2 Protege Configuration 3

HSYCO Configuration

Add a PROTEGE I/O Server in the I/O Servers section of the Settings and set its parameters:

Communication

  • IP Address: the ICT Protege Server panel address
  • IP Port: TCP/IP port enabled on the ICT Protege Server

High Availability

  • Shutdown when inactive: defaults to true.

Options

IDDefaultValuesDescription
pinpinthe user PIN that the driver uses when sending commands to the Protege system. It must be a valid user code, able to engage and disengage the panel.
startupeventsfalsetruegenerate IO events also during the driver’s start-up phase
falsestart generating events only after HSYCO is aligned with the current status of the system
guitruetrueenable uisets
falsedisable uisets
debugfalsetruegenerates additional logs that can be viewed in verbose mode
falsedebug logging disabled
areasliststringlist of all the areas that are declared on the panel. Areas could not be consecutive and special characters "-" and ";" are used for intervals definition. E.G. 0-3;5-9 means areas from 0 to 3, from 5 to 9. E.G. 4;15 means area number 4 and number 15
inputsliststringlist of all the inputs that are declared on the panel. Inputs could not be consecutive and special characters "-" and ";" are used for intervals definition. E.G. 0-3;5-9 means inputs from 0 to 3, from 5 to 9. E.G. 4;15 means input number 4 and input 15
outputsliststringlist of all the outputs that are declared on the panel. Outputs could not be consecutive and special characters "-" and ";" are used for intervals definition. E.G. 0-3;5-9 means outputs from 0 to 3, from 5 to 9. E.G. 4;15 means output number 4 and output 15
doorsliststringlist of all the doors that are declared on the panel. Doors could not be consecutive and special characters "-" and ";" are used for intervals definition. E.G. 0-3;5-9 means doors from 0 to 3, from 5 to 9. E.G. 4;15 means door number 4 and door 15
troubleinputsliststringlist of all the trouble inputs that are declared on the panel. Trouble inputs could not be consecutive and special characters "-" and ";" are used for intervals definition. E.G. 0-3;5-9 means trouble inputs from 0 to 3, from 5 to 9. E.G. 4;15 means trouble input number 4 and trouble input 15

Datapoints

IDValueR/WDescription
connectiononlineRconnection established
offlineRconnection failed
panel.firmware.build<text>Rfirmware build of the panel
panel.firmware.type<text>Rfirmware type of the panel
panel.firmware.version<text>Rfirmware version of the panel
panel.hardware.version<text>Rhardware version of the panel
panel.serial.number<text>Rserial number of the panel
a<n>.armed1Rarea is armed
0Rarea is disarmed
a<n>.statearmedRarea is armed
disarmedRarea is disarmed
inputsopenRarea is in inputs open state
troubleRarea is in trouble state
bypasserrorRarea is in bypass error state
bypasswarningRarea is in bypass warning state
usercountnotzeroRarea is in user count not zero state
exitdelayRarea is in exit delay state
entrydelayRarea is in entry delay state
disarmdelayRarea is in disarm delay state
codedelayRarea is in code delay state
a<n>.tamper.statearmedRarea tamper is armed
disarmedRarea tamper is disarmed
busyRarea tamper is busy
a<n>.state.flags.alarm.activated1Rarea alarm activated
0Rarea alarm is not active
a<n>.state.flags.siren.activated1Rarea siren activated
0Rarea siren is not active
a<n>.state.flags.alarms.in.memory1Rat least one area alarm in memory
0Rno area alarms in memory
a<n>.state.flags.remote.armed1Rarea remotely armed
0Ralarm is not remotely armed
a<n>.state.flags.force.armed1Rarea forced armed
0Ralarm is not forced armed
a<n>.state.flags.instant.armed1Rarea instant armed
0Ralarm is not instant armed
a<n>.state.flags.partial.armed1Rarea partially armed
0Ralarm is not partially armed
a<n>.name[Note]<text>Rarea name
o<n>.stateoffRoutput is off
onRoutput is on
onpulsedRoutput is in on pulsed state
ontimedRoutput is in on timed state
onpulsedtimedRoutput is in on pulsed timed state
o<n>.ascii<text>Routput label in ascii format
o<n>.name[Note]<text>Routput name
i<n>.stateclosedRinput is closed
openRinput in open
shortRinput is in shortcut state
tamperRinput is in tamper state
i<n>.closed1Rinput is closed
0Rinput is open
i<n>.short1Rinput is in short status
0Rinput is not in short status
i<n>.tamper1Rinput is in tamper status
0Rinput is not in tamper status
i<n>.ascii<text>Rinput label in ascii format
i<n>.bypass.state.bypassed1Rinput is bypassed
0Rinput is not bypassed
i<n>.bypass.state.bypasslatched1Rinput is bypass latched
0Rinput is not bypass latched
i<n>.bypass.state.sirenlockout1Rinput is siren lockout state
0Rinput is not in siren lockout state
i<n>.name[Note]<text>Rinput name
ti<n>.stateclosedRtrouble input is closed
openRtrouble input in open
shortRtrouble input is in shortcut state
tamperRtrouble input is in tamper state
ti<n>.closed1Rtrouble input is closed
0Rtrouble input is open
ti<n>.short1Rtrouble input is in short status
0Rtrouble input is not in short status
ti<n>.tamper1Rtrouble input is in tamper status
0Rtrouble input is not in tamper status
ti<n>.ascii<text>Rtrouble input label in ascii format
ti<n>.bypass.state.bypassed1Rtrouble input is bypassed
0Rtrouble input is not bypassed
ti<n>.bypass.state.bypasslatched1Rtrouble input is bypass latched
0Rtrouble input is not bypass latched
ti<n>.bypass.state.sirenlockout1Rtrouble input is siren lockout state
0Rtrouble input is not in siren lockout state
ti<n>.name[Note]<text>Rtrouble input name
d<n>.lock.statelockedRdoor is locked
unlockedbyuseraccessRdoor is unlocked by user access
unlockedbyscheduleRdoor is unlocked by schedule
unlockedbyusertimedRdoor is unlocked by user timed
unlockedbyandlatchedRdoor is unlocked by and latched
unlockedbyrexRdoor is unlocked by rex
unlockedbyrenRdoor is unlocked by ren
unlockedbykeypadmenuRdoor is unlocked by keypad menu
unlockedbyareaRdoor is unlocked by area
unlockedbyfirealarmRdoor is unlocked by fire alarm
d<n>.locked1Rdoor is locked
0Rdoor is unlocked
d<n>.stateclosedRdoor is closed
openRdoor is open
openalertRdoor is open alert state
leftopenRdoor is left open state
forcedopenRdoor is forced open state
d<n>.name[Note]<text>Rdoor name
a<n>armWarm area
armforceWarm area in force mode
armstayWarm area in stay mode
arminstantWarm area in instant mode
disarmWdisarm area
disarm24hWdisarm area
disarmallWdisarm all area
o<n>onWoutput on
offWoutput off
ontimed-<seconds>Woutput on for a number of seconds equals to <seconds> E.G. o.ontimed-7, means on for 7 seconds.
i<n>removebypassWremove bypass input
tempbypassWtemporary bypass input
bypassWbypass for input
ti<n>removebypassWremove bypass trouble input
tempbypassWtemporary bypass trouble input
bypassWbypass for trouble input
d<n>lockWlock door
unlockWunlock door
unlocklatchedWunlock latched door
v<n>getWget the the value of the variable with index <n>. The value of variabile will be written in a datapoint v<n> = <value>
v<n>value-<value>Wset the the value of the variable with index <n>.

Note 1

Names of areas, inputs, trouble inputs, outputs, doors are imported from a configuration file as described later in this application note.

CSV configuration files import

HSYCO can import the names of areas, inputs, trouble inputs, outputs, doors from a CSV file(s). The CSV file(s) could be easily download from the ICT Protege software. This file(s) they are not mandatory.

The csv file(s) must have the same name of the id of the Protege I/O server plus the extension .csv E.G. The I/O server id is pro1, the csv file name must be: pro1.csv

The csv file(s) must be copied in the folder protege/csv E.G. Let's suppose to have to 2 Protege I/O servers called "pro1" and "pro2". Using the File Manager we have to create the folder "protege" in Hsyco's main folder, then the folder "csv" inside the "protege" folder, then 2 files called "pro1.csv" a "pro2.csv" should be copied inside this folder.

The csv file must have this format:

# Item Types
# 0 = Controllers
# 1 = Doors
# 2 = Areas
# 3 = Outputs (PGM)
# 4 = Zones (Inputs
# 5 = Variables
# 6 = Trouble Inputs
# Item Type,Item ID,Controller ID,Name 2,Opt1
1,0,0,Door 1,
1,1,0,Door 2,
2,0,0,CP1: Area1,
2,1,0,Area2,
3,0,0, CP1 Bell 1,
3,1,0, CP1 Relay 1,
3,2,0, CP1 Relay 2,
4,209,0,GX IX1 VirtInput 2,
4,210,0,GX IX1 VirtInput 3,
4,211,0,GX IX1 VirtInput 4,
4,212,0,GX IX1 VirtInput 5,
6,0,0, CP1 12V Supply Failure,
6,1,0, CP1 Real Time Clock Not Set,
6,2,0, CP1 Service Report Test

UISET Actions

IDAttributeTypeSet to
logvalueStringlatest security log lines (as many as specified by the 'logsize' option)
log0valueStringlatest line of the security log when a new entry is added, set back to blank after a short period
a<n>.namevalueStringname assigned to area <n>
a<n>.statevalueStringarea state value <n&gt
a<n>.tamper.statevalueStringarea tamper state value <n&gt
o<n>.namevalueStringname assigned to output <n&gt
o<n>.statevalueStringoutput state value <n&gt
i<n>.namevalueStringname assigned to input <n&gt
i<n>.statevalueStringinput state value <n&gt
ti<n>.namevalueStringname assigned to trouble input <n&gt
ti<n>.statevalueStringtrouble input state value <n&gt
d<n>.namevalueStringname assigned to door <n&gt
d<n>.statevalueStringdoor state value <n&gt
d<n>.lock.statevalueStringdoor lock state value <n&gt
connection.offlinevisibletruewhen datapoint connection = offline
falsewhen datapoint connection = online
connection.onlinevisibletruewhen datapoint connection = online
falsewhen datapoint connection = offline
<datapoint_id>.1visibletruewhen datapoint with ID <datapoint_id> has value '1'
falsewhen datapoint with ID <datapoint_id> has value '0'
<datapoint_id>.0visibletruewhen datapoint with ID <datapoint_id> has value '0'
falsewhen datapoint with ID <datapoint_id> has value '1'

Log Files

If a Protege anti-intrusion unit is connected to HSYCO, the security.log file will be written in the same directories as the daily log files and will include the log entries received by the panel.

This file is never overwritten or deleted from HSYCO SERVER.

Release Notes

3.8.0

  • fixed a bug in area state flags
  • fixed a bug in variables writing
  • added short and tamper datapoints for inputs and trouble inputs
  • fixed a bug in trouble input discovery that was not allowing the driver to go online
  • added a stability check to restart the driver in case of too many response errors during the communication with the panel
  • performance optimization

3.7.0

  • initial version release

Protege is a registered trademark of Integrated Control Technology Limited