Inim
Inim SmartLiving 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 INIM I/O Server in HSYCO supports the integration of more than one unit within the same HSYCO interface.
Contents
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 rate | 57600 |
Data bits | 8 |
Stop bit | 1 |
Parity | even |
Flow control | none |
HSYCO Configuration
Add an INIM 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
ID | Default | Values | Description |
---|---|---|---|
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 | ||
logsize | 50 | n ≥ 0 | the number of log lines to display in the UI object |
pollinterval | 4 | n > 0 | the data acquisition interval, in seconds |
mod | 515 | the panel model to control. This option is required | |
1050 | |||
10100 | |||
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 | |
pintimeout | 10 | n > 0 | expiration time (in seconds) of pin entered from the GUI object |
multicommand | false | true | allow for multiple commands from the GUI object during pin validity time |
false | require to enter the pin code for each operation from the GUI object |
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:
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):
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:
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 (), it should be assigned the corresponding zone number (e.g. "= z1
").
If the terminal is configured as double zone () 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 () specify the corresponding output number (e.g. "= o10
"), while if the terminal is configured as an IO () 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:
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
- area - the number of the area to be addressed
- 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.
Log Files
A permanent detailed record of all the INIM 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 INIM I/O Server are saved in the daily message.log files.
Release Notes
3.2.0
- initial version release
Inim and SmartLiving are registered trademarks of Inim Electronics s.r.l.