Domino

From HSYCO
Revision as of 18:02, 28 January 2014 by Hsyco (talk | contribs) (→‎Options)
Jump to navigation Jump to search

The DOMINO system is DUEMMEGI’s proprietary bus architecture for home automation. HSYCO fully integrates with this system through the DFCP control and gateway module, and its FXP-XT serial communication protocol. A serial connection between the DFCP and the HSYCO SERVER is required for the integration, either directly through the server’s RS-232 port or via the RS-232 port of a supported serial to IP gateway, including the WEBS module.

Communication

Employ a DE-9 (often called DB-9) male-female RS-232 straight cable to connect the RS-232 DFCP port to the serial port on HSYCO SERVER or serial gateway. The communication baud rate can be set to 9600, 38400, 57600 or 115200 bps, according to the DFCP serial port settings. The protocol requires 8bit data, no parity, one stop bit, no flow control. A speed of 115200 bps is recommended to achieve good performance, particularly when the number of devices connected to the bus is large.

HSYCO Configuration

Options

ID Default Values Description
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
inputdiscovery false true auto-detects DOMINO’s input devices as configured in the DFCP, and automatically creates the list of all detected devices and individual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
false auto-detect for input devices is disabled
outputdiscovery true true auto-detects DOMINO’s output devices as configured in the DFCP, and automatically creates the list of all detected devices and individual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
false auto-detect for output devices is disabled
virtualdiscovery false true auto-detects DOMINO’s virtual points for input and output devices as configured in the DFCP, and automatically creates the list of all detected virtual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
false auto-detect for devices’ virtual data points is disabled
virtualpoints false 1...2033 enables polling for the first n virtual points of the DFCP. Enable this option only if you need to generate I/O events based on these virtual points
true enables polling for all the 2032 virtual points of the DFCP
false polling of the DFCP virtual data points is disabled
registers false 1...1024 enables polling for registers R0-Rn of the DFCP. Enable this option only if you need to generate I/O events based on these registers
true enables polling for registers R0-R127 of the DFCP
false polling of the DFCP registers is disabled
powerdisplay false true enables polling for registers R0-Rn of the DFCP. Enable this option only if you need to generate I/O events based on these registers
≥ 0 (DFANA address) enables the automatic display in the GUI of the total real power measured by a DFANA module connected to this DFCP. Note that, if you have more than one DFCP gateway, you should enable this option for one gateway only
false power display disabled for this DFCP
powersensivity 50 ≥ 0 measured power changes are reported only if the difference from last reading is equal or greater than the power sensivity option, in Watts
powerinterval 1 ≥ 0 power polling interval for the DFCC meter, in seconds
detectevents false true generate forced events when a device is detected at start-up
false do not generate events when a device is detected at start-up
toolspassword string set this option with a long string (only letters and numbers) password to allow the remote connection of DFCP-IDE and other configuration tools to the DFCP gateways that are connected to HSYCO. For additional security, it is recommended to set this option only when required
language english en it fr language for all messages from the DOMINO system: English, Italian or French

inim.ini

The inim.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 SmartLiving 515 is shown in the following diagram:

Inim Default 515.png

And here is default configuration for SmartLiving 1050 and 10100 (for the 10100 model this diagram must be extended to 100 terminals and 40 expanders):

Inim Default 1050.png

If the inim.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 SmartLiving1050:

Inim Custom 1050.png

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

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

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

inm.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 (Inim Zone.png), it should be assigned the corresponding zone number (e.g. "= z1").

If the terminal is configured as double zone (Inim Double Zone.png) 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 (Inim Output.png) specify the corresponding output number (e.g. "= o10"), while if the terminal is configured as an IO (Inim IO.png) 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:

inm.t4 = z4 = door
inm.t5 = z5 = corridor
inm.t6 = z6, o6 = alarm point
inm.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.

N.B. SmartLiving 515 panels have only 5 terminals on the board and the indexing of zones and outputs skips the numbers from 6 to 10 as we can see from the image above. But, from tests conducted on different configurations, sometimes these indexes are actually used, thus refinements on the configuration in inim.ini must be applied to map the terminals with the correct zone or output number.

Datapoints

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the panel
armed 0 R all areas are disarmed
1 R at least one area is armed


a<n>.armed 0 R area <n> is disarmed
W disarm area <n>
away R area <n> is armed in “away” mode
W arm area <n> in “away” mode
stay R area <n> is armed in “stay” mode
W arm area <n> in “stay” mode
inst R area <n> is armed in “instantaneous” mode
W arm area <n> in “instantaneous” mode
a<n>.alarm 0 R no active alarm on area <n>
1 R alarm on area <n>
a<n>.tamper 0 R no tamper alarm on area <n>
1 R tamper alarm on area <n>
a<n>.alarm.mem 0 R no alarm in memory for area <n>
1 R alarm in memory for area <n>
a<n>.tamper.mem 0 R no tamper alarm in memory for area <n>
1 R tamper alarm in memory for area <n>
a<n>.auto 0 R auto-arming disabled on area <n>
1 R auto-arming enabled on area <n>
a<n>.reset 1 W reset alarms on area <n>
z<n>.state
z<n>d.state
closed R zone <n> (base or double) is closed
open R zone <n> (base or double) is open
tamper R zone <n> (base or double) is tampered
short R zone <n> (base or double) is in short circuit
z<n>.bypassed
z<n>d.bypassed
0 R zone <n> is not bypassed
W unbypass zone <n>
1 R zone <n> is bypassed
W bypass zone <n>
z<n>.test
z<n>d.test
0 R zone <n> is not in test
1 R zone <n> is being tested
z<n>.alarm.mem
z<n>d.alarm.mem
0 R no alarm in memory for zone <n>
1 R alarm in memory for zone <n>
z<n>.tamper.mem
z<n>d.tamper.mem
0 R no terminal tamper alarm in memory for zone <n>
1 R terminal tamper alarm in memory for zone <n>
or 0 R the relay output on the panel is not active
W deactivate the relay output on the panel
1 R the relay output on the panel is active
W activate the relay output on the panel
oc1 0 R the open collector 1 on the panel is not active
W deactivate the open collector 1 on the panel
1 R the open collector 1 on the panel is active
W activate the open collector 1 on the panel
oc2 0 R the open collector 2 on the panel is not active
W deactivate the open collector 2 on the panel
1 R the open collector 2 on the panel is active
W activate the open collector 2 on the panel
o<n>
(if defined in inim.ini)
0 R output <n> is not active
W deactivate output <n>
1 R output <n> is active
W activate output <n>
fault.fuse.zones 0 R zones fuse OK
1 R fault on zones fuse
fault.fuse.ibus 0 R IBUS fuse OK
1 R fault on IBUS fuse
fault.battery 0 R battery OK
1 R fault on battery
fault.mains 0 R mains OK
1 R panel mains fault
fault.phone 0 R phone line OK
1 R fault on phone line
fault.jamming 0 R no jamming
1 R radio jamming
fault.radio.battery 0 R radio zones battery OK
1 R low battery on radio zone(s)
fault.radio.loss 0 R radio zones OK
1 R loss of radio zone(s)
battery.volts <val> R the voltage value of the battery is <val> Volts
tamper.panel 0 R panel OK
1 R panel tampered
tamper.cover 0 R panel cover OK
1 R panel cover tampered
tamper.reader 0 R readers OK
1 R reader(s) tampered
tamper.keypad 0 R keypads OK
1 R keypad(s) tampered
tamper.expander 0 R FLEX5 expanders OK
1 R FLEX5 expander(s) tampered
reset 0 R communication BUS ready
1 R ongoing reset procedure on communication BUS
internet 0 R “internet access” option disabled
1 R “internet access” option enabled
service 0 R service jumper in “RUN” position
1 R service jumper in “SERV” position (maintenance)
program 0 R panel not in programming mode
1 R ongoing programming via keyboard
voice 0 R no SmartLogos30M voice card detected
1 R SmartLogos30M voice card detected

User Interface

Inim Object

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

Inim UI Object 1.png Inim UI Object 2.png Inim UI Object 3.png

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

Parameters

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

Syntax

(inim <server id>; <area>; <position>)

E.g.

(inim serverid; area; 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.