Skip to main content

Hesa

Hesa Quaranta panels are multi-area intrusion detection systems.

The integration with HSYCO can be accomplished via direct control through the RS-232 port on the board.

The HESA I/O Server in HSYCO supports the integration of more than one unit within the same HSYCO interface.

Communication

Employ a female-female RS-232 crossed cable to connect the panel directly to HSYCO or to an Ethernet/RS-232 gateway.

RS-232 parameters:

Baud rate115200 (newer models)
57600 (older models)
Data bits8
Stop bit1
Parityeven
Flow controlnone

HSYCO Configuration

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

Communication

  • Comm ID: select the comm port the device is connected to.

High Availability

  • Shutdown when inactive: defaults to true.

Options

IDDefaultValuesDescription
guitruetrueenable support for the UI object, UISET actions and USER commands
falsedisable UI support
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
logsize20n ≥ 0the number of log lines to display in the UI object
pollinterval4n > 0the data acquisition interval, in seconds
modQ15the panel model to control. This option is required
Q50
Q100
pin<code>use the specified user code to perform operations that require user authentication. If this option is not specified it will be required to manually insert the pin every time such operations are performed
pintimeout10n > 0expiration time (in seconds) of pin entered from the GUI object
multicommandfalsetrueallow for multiple commands from the GUI object during pin validity time
falserequire to enter the pin code for each operation from the GUI object

hesa.ini

The hesa.ini file is a specific configuration file located in the root directory.

This file is required to provide the I/O Server with the mapping between the board terminals and the respective zones or outputs when a configuration different from the default one is used.

The default configuration for the Hesa Q15 is shown in the following diagram:

Hesa Configuration 1

And here is the default configuration for Hesa Q50 and Q100 (for the Q100 model this diagram must be extended to 100 terminals and 40 expanders):

Hesa Configuration 1

If the hesa.ini file is not created or it does not contain specifications for our I/O server, then the above configurations are used.

If, on the other hand, you are using a custom configuration, then, for each used terminal of the panel, expanders, and keypads you must specify its configuration.

For instance, consider the following configuration on a Q50:

Hesa Configuration 1

The corresponding configuration in hesa.ini, assuming that the ID of the I/O Server is "hsa", would be the following:

hsa.t1 = z1
hsa.t2 = z2
hsa.t3 = z3
hsa.t4 = z4
hsa.t5 = z5
hsa.t6 = z6,o6
hsa.t7 = z7d
hsa.t8 = z8d
hsa.t9 = z9d

hsa.e1.t1 = o10
hsa.e1.t2 = z11d
hsa.e1.t3 = o12

hsa.k1.t1 = z13

Terminals on the panel itself are referred to using the notation <ioserver_id>.t<n> where <n> is the number of the board terminal from left to right. Terminals on expanders are identified by the string <ioserver_id>.e<m>.t<n> where <m> is the expander number and <n> the terminal number on the expander board. Finally, the syntax <ioserver_id>.k<m>.t<n> is used to identify terminals on keyboards.

When a terminal is configured as a simple zone Hesa Configuration 4, it should be assigned the corresponding zone number (e.g. z1).

If the terminal is configured as double zone Hesa Configuration 5 then append d to the zone id (e.g. z7d). This configuration allows to have two zones connected to the same terminal, thus the I/O Server will handle these two zones independently: the notation z<n> will identify datapoints related to base zones, while z<n>d identifies double zones.

If the terminal correspond to an output Hesa Configuration 6 specify the corresponding output number (e.g. o10), while if the terminal is configured as an IO Hesa Configuration 7 then it will be seen as a zone as well as an output, so specify both of them (e.g. z6,o6).

Further, it is possible to assign a name to a zone terminal to be displayed in the user interface by adding it at the end of the line after an additional =. For instance:

hsa.t4 = z4 = door
hsa.t5 = z5 = corridor
hsa.t6 = z6, o6 = alarm point
hsa.e1.t2 = z11d = room 1, room 2

As you can see from the last line, when referring to a double zone you can specify two different names separated by a comma.

Datapoints

IDValueR/WDescription
connectiononlineRconnection established
offlineRHSYCO can't connect to the panel
armed0Rall areas are disarmed
1Rat least one area is armed
a<n>.armed0Rarea <n> is disarmed
Wdisarm area <n>
awayRarea <n> is armed in away mode
Warm area <n> in away mode
stayRarea <n> is armed in stay mode
Warm area <n> in stay mode
instRarea <n> is armed in instantaneous mode
Warm area <n> in instantaneous mode
a<n>.alarm0Rno active alarm on area <n>
1Ralarm on area <n>
a<n>.tamper0Rno tamper alarm on area <n>
1Rtamper alarm on area <n>
a<n>.alarm.mem0Rno alarm in memory for area <n>
1Ralarm in memory for area <n>
a<n>.tamper.mem0Rno tamper alarm in memory for area <n>
1Rtamper alarm in memory for area <n>
a<n>.auto0Rauto-arming disabled on area <n>
1Rauto-arming enabled on area <n>
a<n>.reset1Wreset alarms on area <n>
z<n>.state
z<n>d.state
closedRzone <n> (base or double) is closed
openRzone <n> (base or double) is open
tamperRzone <n> (base or double) is tampered
shortRzone <n> (base or double) is in short circuit
z<n>.bypassed
z<n>d.bypassed
0Rzone <n> is not bypassed
Wunbypass zone <n>
1Rzone <n> is bypassed
Wbypass zone <n>
z<n>.test
z<n>d.test
0Rzone <n> is not in test
1Rzone <n> is being tested
z<n>.alarm.mem
z<n>d.alarm.mem
0Rno alarm in memory for zone <n>
1Ralarm in memory for zone <n>
z<n>.tamper.mem
z<n>d.tamper.mem
0Rno terminal tamper alarm in memory for zone <n>
1Rterminal tamper alarm in memory for zone <n>
or0Rthe relay output on the panel is not active
Wdeactivate the relay output on the panel
1Rthe relay output on the panel is active
Wactivate the relay output on the panel
oc10Rthe open collector 1 on the panel is not active
Wdeactivate the open collector 1 on the panel
1Rthe open collector 1 on the panel is active
Wactivate the open collector 1 on the panel
oc20Rthe open collector 2 on the panel is not active
Wdeactivate the open collector 2 on the panel
1Rthe open collector 2 on the panel is active
Wactivate the open collector 2 on the panel
o<n>
(if defined in hesa.ini)
0Routput <n> is not active
Wdeactivate output <n>
1Routput <n> is active
Wactivate output <n>
fault.fuse.zones0Rzones fuse OK
1Rfault on zones fuse
fault.fuse.ibus0RIBUS fuse OK
1Rfault on IBUS fuse
fault.battery0Rbattery OK
1Rfault on battery
fault.mains0Rmains OK
1Rpanel mains fault
fault.phone0Rphone line OK
1Rfault on phone line
fault.jamming0Rno jamming
1Rradio jamming
fault.radio.battery0Rradio zones battery OK
1Rlow battery on radio zone(s)
fault.radio.loss0Rradio zones OK
1Rloss of radio zone(s)
battery.volts<val>Rthe voltage value of the battery is <val> Volts
tamper.panel0Rpanel OK
1Rpanel tampered
tamper.cover0Rpanel cover OK
1Rpanel cover tampered
tamper.reader0Rreaders OK
1Rreader(s) tampered
tamper.keypad0Rkeypads OK
1Rkeypad(s) tampered
tamper.expander0RHQESP expanders OK
1RHQESP expander(s) tampered
reset0Rcommunication BUS ready
1Rongoing reset procedure on communication BUS
internet0Rinternet access option disabled
1Rinternet access option enabled
service0Rservice jumper in RUN position
1Rservice jumper in SERV position (maintenance)
program0Rpanel not in programming mode
1Rongoing programming via keyboard
voice0Rno HQVOX voice card detected
1RHQVOX voice card detected
log0<text>Rreports the latest line of the security log when a new entry is added

User Interface

UISET Actions

IDAttribute
logvaluelatest security log lines (as many as specified by the 'logsize' option)
log0valuelatest line of the security log when a new entry is added, set back to blank after a short period
z<n>.name
z<n>d.name
valuename assigned to zone <n> (base or double) or its number if no name is defined
connection.labelvisibletruewhen datapoint connection = offline
falsewhen datapoint connection = online
a<n>.armed.label.0visibletruewhen area <n> is disarmed
falsewhen area <n> is armed
a<n>.armed.label.awayvisibletruewhen area <n> is armed in "away" mode
falsewhen area <n> is not armed in "away" mode
a<n>.armed.label.stayvisibletruewhen area <n> is armed in "stay" mode
falsewhen area <n> is not armed in "stay" mode
a<n>.armed.label.instvisibletruewhen area <n> is armed in "instantaneous" mode
falsewhen area <n> is not armed in "instantaneous" mode
a<n>.armed.label.1visibletruewhen area <n> is armed in any mode
falsewhen area <n> is not armed
z<n>.state.label.closed
z<n>d.state.label.closed
visibletruewhen datapoint 'z<n>.state' has value 'closed'
falsewhen datapoint 'z<n>.state' has not value 'closed'
z<n>.state.label.open
z<n>d.state.label.open
visibletruewhen datapoint 'z<n>.state' has value 'open'
falsewhen datapoint 'z<n>.state' has not value 'open'
z<n>.state.label.tamper
z<n>d.state.label.tamper
visibletruewhen datapoint 'z<n>.state' has value 'tamper'
falsewhen datapoint 'z<n>.state' has not value 'tamper'
z<n>.state.label.short
z<n>d.state.label.short
visibletruewhen datapoint 'z<n>.state' has value 'short'
falsewhen datapoint 'z<n>.state' has not value 'short'
<datapoint_id>.label.1visibletruewhen datapoint with ID <datapoint_id> has value '1'
falsewhen datapoint with ID <datapoint_id> has value '0'
<datapoint_id>.label.0visibletruewhen datapoint with ID <datapoint_id> has value '0'
falsewhen datapoint with ID <datapoint_id> has value '1'

USER Commands

NameParamAction
a<n>.armed0disarm area <n>
stayarm area <n> in "stay" mode
awayarm area <n> in "away" mode
instarm area <n> in "instantaneous" mode
a<n>.reset1reset alarms on area <n>
z<n>.bypassed
z<n>d.bypassed
0unbypass zone <n> (base or double)
1bypass zone <n> (base or double)
or0deactivate the relay output on the panel
1activate the relay output on the panel
oc10deactivate the open collector 1 on the panel
1activate the open collector 1 on the panel
oc20deactivate the open collector 2 on the panel
1activate the open collector 2 on the panel
o<n>0deactivate output <n>
1activate output <n>

To perform any of the above operations it is necessary to enter the user code first. To enter the user code through the user interface use [[User|user buttons]] to create a virtual keypad and assign them name and param values according to this table:

NameParamAction
digit{0 ... 9}append the specified digit to the entered user code
cdelete the last entered digit

To visualize the number of entered digits use up to 6 [[Text|text objects]] (depending on the number of digits used for user codes) and set their IDs to:

IDDescription
pin.<n>
(0 ≤ <n> ≤ 5)
shows the character '*' when the corresponding digit has been entered, shows '_' otherwise

The entered code will be cleared after a short period of inactivity.

Hesa UI Object

The user interface for the control and supervision of one area of the system, the zones and the visualization of the security log:

Hesa UI Object 1 Hesa UI Object 1 Hesa UI Object 1

The Hesa object is listed in the Project Editor’s new object list only when at least one HESA I/O Server is defined.

Parameters

  • id - the id assigned to the HESA I/O Server in hsyco.ini.
  • area - the number of the area to be addressed. Supports
  • pos - the object’s position. Use the pixels or rows and columns coordinates format.

Log Files

A permanent detailed record of all the Hesa log messages is saved in a file called security.log in the logs/YYYY directory for the current year. This file is never overwritten or deleted by HSYCO.

Other information related to the HESA I/O Server are saved in the daily message.log files.

Release Notes

3.6.0

  • added datapoint "log0"

3.5.1

  • added possibility to specify pin code with commands
  • bug fix: hesa object not visible in project editor dictionary

3.5.0

  • initial release

Hesa is a registered trademarks of Hesa S.p.A.