CSx75
Aritech CSx75 is a multi-area security system. The integration with HSYCO can be accomplished via direct control through the RS-232 port on its panel.
Communication
Use the Aritech CS590 RS232 cable to connect the panel directly to HSYCO or to an Ethernet/RS-232 gateway.
RS-232 parameters:
Baud rate | same as configured on panel (default 9600) |
Data bits | 8 |
Stop bit | 1 |
Parity | none |
Flow control | none |
CSx75 Configuration
The panel must be previously configured to have the serial port enabled and to use the binary control protocol. Refer to its configuration manual for more details.
HSYCO Configuration
Options
ID | Default | Values | Description |
---|---|---|---|
pin | <code> | 4 or 6-digits code. Use the specified PIN 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 | |
gui | true | true | enable support for the UI object, UISET actions and USER commands |
false | disable UI support | ||
startupevents | false | true | generate IO events also during the driver’s start-up phase |
false | start generating events only after HSYCO is aligned with the current status of the system | ||
pollinterval | 3 | n > 0 | the data acquisition interval, in seconds |
logsize | 20 | n ≥ 0 | the number of log lines to display in the UI object |
csx75.ini
The csx75.ini file is a specific configuration file located in the root directory. Here you can define the names of the users so that they will be automatically added to the user interface. Add a new line for each user using this format:
<io_server_id>.user.<n> = <name>
For instance:
cs.user.1 = Bob cs.user.2 = Alice
Datapoints
ID | Value | R/W | Description |
---|---|---|---|
connection | online | R | connection established |
offline | R | HSYCO can't connect to the panel | |
alarm | 0 | R | no partition is alarmed |
1 | R | at least one partition is alarmed | |
armed | 0 | R | all partitions are disarmed |
W | disarm all partitions | ||
1 | R | the system is (partially) armed | |
away | W | arm all partitions in away mode | |
stay | W | arm all partitions in stay mode | |
auto | W | initiate auto-arm for all partitions | |
p<n>.armed | 0 | R | partition <n> is disarmed |
W | disarm partition <n> | ||
away | R | partition <n> is armed in away mode | |
W | arm partition <n> in away mode | ||
stay | R | partition <n> is armed in stay mode | |
W | arm partition <n> in stay mode | ||
auto | W | initiate auto-arm on partition <n> | |
p<n>.alarm | 0 | R | partition <n> is not in an alarm state |
1 | R | partition <n> is in an alarm state | |
p<n>.tamper | 0 | R | no tamper condition for partition <n> |
1 | R | partition <n> has been tampered | |
p<n>.last.user | <num> | R | last user number entered was <num> |
p<n>.fire | 0 | R | no fire on partition <n> |
1 | R | fire on partition <n> | |
p<n>.fire.trouble | 0 | R | no fire trouble on partition <n> |
1 | R | fire trouble on partition <n> | |
p<n>.buzzer | 0 | R | buzzer off on partition <n> |
1 | R | buzzer on on partition <n> | |
W | start buzzer on partition <n> | ||
p<n>.tlm.fault | 0 | R | TLM ok |
1 | R | TLM memory fault | |
p<n>.instant | 0 | R | instant flag not set on partition <n> |
1 | R | instant flag set on partition <n> | |
p<n>.siren | 0 | R | siren off on partition <n> |
1 | R | siren on on partition <n> | |
p<n>.steady.siren | 0 | R | steady siren off on partition <n> |
1 | R | steady siren on on partition <n> | |
p<n>.alarm.mem | 0 | R | alarm memory flag not set on partition <n> |
1 | R | alarm memory flag set on partition <n> | |
p<n>.cancel | 0 | R | no cancel command entered on partition <n> |
1 | R | cancel command entered on partition <n> | |
W | issue cancel command | ||
p<n>.exit.silent | 0 | R | silent exit disabled on partition <n> |
1 | R | silent exit enabled on partition <n> | |
W | enable silent exit for this arm cycle on partition <n> | ||
p<n>.chime.mode | 0 | R | chime mode off on partition <n> |
1 | R | chime mode on on partition <n> | |
toggle | W | toggle chime mode on partition <n> | |
p<n>.entry | 0 | R | entry inactive on partition <n> |
1 | R | entry active on partition <n> | |
p<n>.delay.exp | 0 | R | delay expiration warning off |
1 | R | delay expiration warning on | |
p<n>.exit.1 | 0 | R | exit 1 inactive on partition <n> |
1 | R | exit 1 active on partition <n> | |
p<n>.exit.2 | 0 | R | exit 2 inactive on partition <n> |
1 | R | exit 2 active on partition <n> | |
p<n>.exit.error | 0 | R | exit error not triggered on partition <n> |
1 | R | exit error triggered on partition <n> | |
p<n>.night.mode | 0 | R | night mode inactive on partition <n> |
1 | R | night mode active on partition <n> | |
p<n>.reexit | 0 | R | re-exit inactive on partition <n> |
1 | R | re-exit active on partition <n> | |
p<n>.force.arm | 0 | R | no force arm triggered on partition <n> |
1 | R | force arm triggered by auto arm on partition <n> | |
p<n>.arm.ready | 0 | R | partition <n> not ready to arm |
1 | R | partition <n> ready to arm | |
p<n>.force.arm.ready | 0 | R | partition <n> not ready to force arm |
1 | R | partition <n> ready to force arm | |
p<n>.chime | 0 | R | chime off on partition <n> |
1 | R | chime on on partition <n> | |
p<n>.error.beep | 0 | R | error beep off on partition <n> |
1 | R | error beep on on partition <n> | |
p<n>.tone | 0 | R | activation tone off on partition <n> |
1 | R | activation tone on on partition <n> | |
p<n>.entry.1 | 0 | R | entry 1 inactive on partition <n> |
1 | R | entry 1 active on partition <n> | |
p<n>.phone.1.alarm | 0 | R | no alarm sent using phone number 1 on partition <n> |
1 | R | alarm sent using phone number 1 on partition <n> | |
p<n>.phone.2.alarm | 0 | R | no alarm sent using phone number 2 on partition <n> |
1 | R | alarm sent using phone number 2 on partition <n> | |
p<n>.phone.3.alarm | 0 | R | no alarm sent using phone number 3 on partition <n> |
1 | R | alarm sent using phone number 3 on partition <n> | |
p<n>.keyswitch.armed | 0 | R | keyswitch not armed on partition <n> |
1 | R | keyswitch armed on partition <n> | |
z<n>.name | <text> | R | name of zone <n> is set to <text> |
z<n>.open | 0 | R | zone <n> is closed |
1 | R | zone <n> is open | |
z<n>.tamper | 0 | R | zone <n> is not tampered |
1 | R | zone <n> is tampered | |
z<n>.trouble | 0 | R | zone <n> OK |
1 | R | troubles on zone <n> | |
z<n>.bypassed | 0 | R | zone <n> not bypassed |
1 | R | zone <n> bypassed | |
toggle | W | toggle the bypass status on zone <n> | |
z<n>.inhibited | 0 | R | zone <n> not inhibited |
1 | R | zone <n> inhibited | |
z<n>.battery.low | 0 | R | zone <n> battery OK |
1 | R | zone <n> battery low | |
z<n>.supervision.loss | 0 | R | supervision OK on zone <n> |
1 | R | loss of supervision on zone <n> | |
z<n>.alarm.mem | 0 | R | alarm memory flag not set on zone <n> |
1 | R | alarm memory flag set on zone <n> | |
z<n>.bypass.mem | 0 | R | bypass memory flag not set on zone <n> |
1 | R | bypass memory flag set on zone <n> | |
user<n>.name | <text> | R | name of user <n> is set to <text> |
comm.fail | 0 | R | communication OK |
1 | R | communication failure | |
fuse.fault | 0 | R | fuse OK |
1 | R | fuse fault | |
panel.tamper | 0 | R | panel box not tampered |
1 | R | panel box tampered | |
siren.tamper | 0 | R | siren OK |
1 | R | siren tampered | |
battery.low | 0 | R | battery OK |
1 | R | battery low | |
ac.fail | 0 | R | AC OK |
1 | R | AC failure | |
expander.tamper | 0 | R | expander box not tampered |
1 | R | expander box tampered | |
expander.ac.fail | 0 | R | expander’s AC OK |
1 | R | expander’s AC failure | |
expander.battery.low | 0 | R | expander’s battery OK |
1 | R | expander’s battery low | |
expander.fault | 0 | R | expander OK |
1 | R | general fault for the expander | |
buzzer | 0 | R | global buzzer off |
1 | R | global buzzer on | |
siren | 0 | R | global siren off |
1 | R | global siren on | |
steady.siren | 0 | R | global steady siren off |
1 | R | global steady siren on | |
bus.fault | 0 | R | bus line OK |
1 | R | bus device had line seized | |
ac.power | 0 | R | AC power off |
1 | R | AC power on | |
battery.low.mem | 0 | R | low battery memory flag not set |
1 | R | low battery memory flag set | |
powerup.delay | 0 | R | no power up delay in progress |
1 | R | power up delay in progress | |
walk.test | 0 | R | walk-test mode off |
W | stop walk-test mode | ||
1 | R | walk-test mode active | |
W | start walk-test mode | ||
time.loss | 0 | R | system time ok |
1 | R | loss of system time | |
aux1 p<n>.aux1 |
1 | W | activate auxiliary function 1 |
aux2 p<n>.aux2 |
1 | W | activate auxiliary function 2 |
panic p<n>.panic |
fire | W | issue the fire panic command |
medical | W | issue the medical panic command | |
police | W | issue the police panic command | |
smoke p<n>.smoke |
reset | W | smoke detector reset |
test p<n>.test |
1 | W | perform test |
command | restart | W | restart the driver |
clock | read | W | request the reading of the panel’s clock value |
<val> | R | the panel’s clock is set to <val>. The used format is "yyyy-mm-dd hh:mm:ss" (e.g. 2012-08-30 16:30:00). This datapoint is only updated after a request with the command "clock = read" | |
W | set the panel’s clock to <val>. One of the following formats must be used:
|
CS507 configuration
The I/O Server also allows to configure and to check the saved configuration of a CS507 add-on module connected to the panel.
To read and write the configuration saved on the module use the following datapoints:
ID | Value | R/W | Description |
---|---|---|---|
cs507.<addr>.out<n> | read | W | request the reading of the configuration of output <n> on the module with address <addr> |
<out_value> | R | output <n> on the module with address <addr> is configured as described by <out_value>, updated only after a read request | |
W | write <out_value> to output <n> on the module with address <addr> | ||
cs507.<addr>.prog<n> | read | W | request the reading of the configuration of time-program <n> on the module with address <addr> |
<prog_value> | R | the time-program <n> on the module with address <addr> is configured as described by <prog_value>, updated only after a read request | |
W | write <prog_value> to the time-program <n> on the module with address <addr> | ||
cs507.<addr>.holidays.<n> | read | W | request the reading of the days set as holidays for month <n> (1 = January, 12 = December) on the module with address <addr> |
<holidays_value> | R | the holidays for month <n> on the module with address <addr> are set to <holidays_value>, updated only after a read request | |
W | set <holidays_value> as holidays for month <n> on the module with address <addr> | ||
cs507.<addr>.user<n> | read | W | request the reading of the configuration of user <n> on the module with address <addr> |
<user_value> | R | user <n> on the module with address <addr> is configured as described by <user_value>, updated only after a read request | |
W | write <user_value> to user <n> on the module with address <addr> |
Outputs configuration values
The output configuration value <out_value> has the following format:
<ev>,<par>,<d>,<f1>,<f2>,<f3>,<f4>,<f5>,<f6>,<f7>,<f8>,<a1>,<a2>,<a3>,<a4>,<a5>,<a6>,<a7>,<a8>,<p1>,<p2>,<p3>,<p4>,<p5>,<p6>,<p7>,<p8>,<X10_addr>
it is a comma-separated list of the following parameters:
- ev = number of the event associated to this output
- par = value of the parameter associated to the specified event (e.g. user or zone number)
- d = duration of the event
- f1 ... f8 = '1' if the flag is set, '0' otherwise. f1 sets the “Timing in minutes” flag; f2 corresponds to “Memorized”; f3 to “Interrupt with code”; f4 to “Outside time slot”; f5 to “Inside time slot”; f6 to “Inverted”; f7 to “Save in events memory”; f8 to “Disable new auto-arm”
- a1 .. a8 = '1' if the area flag is set, '0' otherwise. a1 corresponds to area 1 and so on
- p1 .. p8 = '1' if the time-program flag is set, '0' otherwise. p1 corresponds to program 1 and so on
- X10_addr = X10 address associated with the output (e.g. "A3")
Time-programs configuration values
The time-program configuration value <prog_value> has the following format:
<start>,<end>,<sun>,<mon>,<tue>,<wed>,<thu>,<fri>,<sat>,<holidays>
it is a comma-separated list of the following parameters:
- start = starting time of the program. It must be formatted as HH:MM (e.g. 14:30)
- end = ending time of the program. It must be formatted as HH:MM (e.g. 14:30)
- sun ... sat = '1' if the program is active on the corresponding day, '0' otherwise
- holidays = '1' if this program is disabled during the configured holidays, '0' otherwise
Holidays configuration values
The holidays configuration value <holidays_value> has the following format:
<d1>,<d2>,<d3>,<d4>,<d5>,<d6>,<d7>,<d8>
it is a comma-separated list of the 8 days set as holidays for the specified month. If less than 8 days are set, then the remaining days are set to 0.
Users configuration values
The user configuration value <user_value> has the following format:
<o1>,<o2>,<o3>,<o4>,<o5>,<o6>,<o7>,<o8>
where <o1> ... <o8> are set to '1' if the corresponding output is enabled for the user, '0' otherwise.
User Interface
CSx75 Object
The user interface for the Aritech CSx75 multi-area security system.
The CSx75 object is listed in the Project Editor’s new object list only when at least one Aritech CSx75 I/O Server is defined.
Parameters
- server id: the server ID
- partition: partition number of the Aritech CSx75 multi-area security system
- position: the object's position. Use the pixels or rows and columns coordinates format
Syntax
(csx75 <server id>; <partition>; <position>)
E.g.
(csx75 serverid; partition; x10y20)
UISET Actions
ID | Attribute | Set to | |
---|---|---|---|
log | value | latest security log lines (as many as specified by the 'logsize' option) | |
log0 | value | latest 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 |
value | name assigned to zone <n> (base or double) or its number if no name is defined | |
connection.label | visible | true | when datapoint connection = offline |
false | when datapoint connection = online | ||
a<n>.armed.label.0 | visible | true | when area <n> is disarmed |
false | when area <n> is armed | ||
a<n>.armed.label.away | visible | true | when area <n> is armed in "away" mode |
false | when area <n> is not armed in "away" mode | ||
a<n>.armed.label.stay | visible | true | when area <n> is armed in "stay" mode |
false | when area <n> is not armed in "stay" mode | ||
a<n>.armed.label.inst | visible | true | when area <n> is armed in "instantaneous" mode |
false | when area <n> is not armed in "instantaneous" mode | ||
a<n>.armed.label.1 | visible | true | when area <n> is armed in any mode |
false | when area <n> is not armed | ||
z<n>.state.label.closed z<n>d.state.label.closed |
visible | true | when datapoint 'z<n>.state' has value 'closed' |
false | when datapoint 'z<n>.state' has not value 'closed' | ||
z<n>.state.label.open z<n>d.state.label.open |
visible | true | when datapoint 'z<n>.state' has value 'open' |
false | when datapoint 'z<n>.state' has not value 'open' | ||
z<n>.state.label.tamper z<n>d.state.label.tamper |
visible | true | when datapoint 'z<n>.state' has value 'tamper' |
false | when datapoint 'z<n>.state' has not value 'tamper' | ||
z<n>.state.label.short z<n>d.state.label.short |
visible | true | when datapoint 'z<n>.state' has value 'short' |
false | when datapoint 'z<n>.state' has not value 'short' | ||
<datapoint_id>.label.1 | visible | true | when datapoint with ID <datapoint_id> has value '1' |
false | when datapoint with ID <datapoint_id> has value '0' | ||
<datapoint_id>.label.0 | visible | true | when datapoint with ID <datapoint_id> has value '0' |
false | when datapoint with ID <datapoint_id> has value '1' |
USER Commands
Name | Param | Action |
---|---|---|
a<n>.armed | 0 | disarm area <n> |
stay | arm area <n> in "stay" mode | |
away | arm area <n> in "away" mode | |
inst | arm area <n> in "instantaneous" mode | |
a<n>.reset | 1 | reset alarms on area <n> |
z<n>.bypassed z<n>d.bypassed |
0 | unbypass zone <n> (base or double) |
1 | bypass zone <n> (base or double) | |
or | 0 | deactivate the relay output on the panel |
1 | activate the relay output on the panel | |
oc1 | 0 | deactivate the open collector 1 on the panel |
1 | activate the open collector 1 on the panel | |
oc2 | 0 | deactivate the open collector 2 on the panel |
1 | activate the open collector 2 on the panel | |
o<n> | 0 | deactivate output <n> |
1 | activate 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 buttons to create a virtual keypad and assign them name and param values according to this table:
Name | Param | Action |
---|---|---|
digit | {0 ... 9} | append the specified digit to the entered user code |
c | delete the last entered digit |
To visualize the number of entered digits use up to 6 text objects (depending on the number of digits used for user codes) and set their IDs to:
ID | Description |
---|---|
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.