https://wiki.hsyco.com/3.8/api.php?action=feedcontributions&user=Enrico&feedformat=atom
HSYCO - User contributions [en]
2024-03-29T02:38:00Z
User contributions
MediaWiki 1.33.0
https://wiki.hsyco.com/3.8/index.php?title=AvigilonWEB&diff=11012
AvigilonWEB
2023-12-20T08:24:00Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>Avigilon Control Center (ACC) 7 and Avigilon Unity (ACC 8) are video management softwares that can be integrated in HSYCO with a TCP/IP connection.<br />
The current release of the I/O Server has been tested with the Avigilon Control Center WebEndpoint<br />
<br />
{{tip|This driver supports only a single connection with an Avigilon Control Server. If you have multiple Avigilon Control Servers it is mandatory to add more I/O servers to HSYCO, one for each Avigilon Control Server. Every I/O server must use a different IP address and TCP/IP port.}}<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Here's an example of how to configure Avigilon Control Center using WebEndpoint to send an alarm status to HSYCO.<br />
<br />
Download the Avigilon WebEndpoint executable from the [https://www.avigilon.com/software-downloads Avigilon download page]<br />
<br />
[[File:IO Server Avigilon WebEndpoint 1.png|center|700px]]<br />
<br />
Install the software<br />
<br />
== Creating an alarm in ACC ==<br />
<br />
Create a new alarm in ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 2.png|center|700px]]<br />
<br />
Select your camera as the trigger source<br />
<br />
[[File:IO Server Avigilon WebEndpoint 3.png|center|700px]]<br />
<br />
Select your camera as the linked device<br />
<br />
[[File:IO Server Avigilon WebEndpoint 4.png|center|700px]]<br />
<br />
Select the users that should be notified by ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 5.png|center|700px]]<br />
<br />
Select the alarm acknowledgment action<br />
<br />
[[File:IO Server Avigilon WebEndpoint 6.png|center|700px]]<br />
<br />
Give the alarm a '''lowercase''' name<br />
{{tip|only use characters from the english alphabet, don't use spaces, the only special characters allowed are - _}}<br />
<br />
[[File:IO Server Avigilon WebEndpoint 7.png|center|700px]]<br />
<br />
== Creating a Motion Detection in ACC ==<br />
<br />
Setup a new motion detection under your camera<br />
<br />
[[File:IO Server Avigilon WebEndpoint 8.png|center|700px]]<br />
[[File:IO Server Avigilon WebEndpoint 9.png|center|700px]]<br />
<br />
== HSYCO Configuration ==<br />
Add an AVIGILONAPI I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''IP Address''': IP address of the AVIGILON ACC 7 or AVIGILON UNITY server. <br />
*'''IP Port''': TCP/IP port to use, leave blank to use default port 8443<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
*'''username''': Username of the AVIGILON ACC 7 or AVIGILON UNITY client.<br />
*'''password''': Password of the AVIGILON ACC 7 or AVIGILON UNITY client.<br />
*'''userkey''': User api key [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''usernonce''': User api nonce [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''pollingtime''': Time in milliseconds that hsyco will wait before the next alarm check, leave blank or set it o 0 to use default polling time 300<br />
*'''usessl''': Tells the driver if the webendpoint uses SSL or not, leave blank for true<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|HSYCO connection socket is open<br />
|-<br />
|offline<br />
|R<br />
|HSYCO cannot create the connection socket<br />
|-<br />
<br />
|rowspan="2" |<alarmName>.alarm<br />
|0<br />
|R<br />
|The alarm is off<br />
|-<br />
|1<br />
|R<br />
|The alarm is on<br />
|-<br />
|<alarmName>.state<br />
|active, autoacknowledged, acknowledged<br />
|R<br />
|get an alarm state<br />
|-<br />
|<alarmName>.command<br />
|trigger<br />
|W<br />
|triggers an alarm<br />
|-<br />
|<alarmName>.command<br />
|ack<br />
|W<br />
|acks an alarm<br />
|-<br />
|}<br />
<br />
== States ==<br />
<br />
{| class="wikitable"<br />
!Value<br />
!Description<br />
|-<br />
<br />
|active<br />
|This state indicates that the motion detection actually detected some movement<br />
|-<br />
|acknowledged<br />
|This state indicates that the camera operator acknowledged the alarm<br />
|-<br />
|autoacknowledged<br />
|This state indicates that motion detection has stopped detecting the movement<br />
|-<br />
|}<br />
<br />
== Example ==<br />
<br />
In this example HSYCO is using the following format to turn on a light when the alarm goes off:<br />
<br />
io avigilonapi.newalarm.alarm = 1 : io dummy.light.1 = 1<br />
Where "avigilonapi" is the name of the driver given in HSYCO<br />
and "newalarm" is the name of the alarm given in ACC<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''AVIGILON is a registered trademark of Avigilon Corporation''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Siemens_Vanderbilt_Edp&diff=11011
Siemens Vanderbilt Edp
2023-12-18T07:35:36Z
<p>Enrico: </p>
<hr />
<div>Siemens / Vanderbilt is a family of security panels compatible with the control protocol EDP (Vanderbilt/Siemens series 4000, 5000 and 6000) with firmware >= 2.3. This driver has been developed following the EDP protocol specification rev 2.2, 2012-11-12 <br />
<br />
The integration with HSYCO can be accomplished with a TCP/IP network connection.<br />
<br />
== Siemens / Vanderbilt Configuration ==<br />
<br />
Login in the panel web configuration page using a Full Engineer account.<br />
<br />
You should see something like this in the upper right corner of the web page:<br />
<br />
[[File:vanderbilt01.png|250px]]<br />
<br />
Select "Configuration" then "Reporting" then "EDP".<br />
You must configure 2 different receivers, one for the command session, one for the event session.<br />
<br />
[[File:vanderbilt02.png|700px]]<br />
<br />
Let's take a look in detail at the configuration of these receivers. The events receiver is configured as "Primary receiver".<br />
<br />
[[File:vanderbilt03.png|700px]]<br />
<br />
Unflag "Primary receiver" for the command receiver. The "IP port" parameter must be different from the one of the event receiver. Set the "Receiver Id" to 1.<br />
<br />
[[File:vanderbilt04.png|700px]]<br />
<br />
Flag "Always connected" on both the receivers. Select protocol version 2 on both. The "Receiver IP Address" is the IP address of the HSYCO server that you want to communicate with. Set the "Receiver Id" to 2.<br />
<br />
The "Polling Time" is a very crucial parameter. In the event receiver configuration 8 seconds should be fine because every change of status is sent in asynchronous way by the panel and the polling time only represent the interval between one polling ack and the next one. In the command receiver configuration set 2 seconds, this time, by empirical methods, it's the best one to ensure the connection stability.<br />
<br />
In Communication > Reporting > EDP > Settings this is the suggested configuration:<br />
<br />
[[File:vanderbilt05.png|700px]]<br />
<br />
At the end of the configuration process switch from Engineer user to Soft Engineer mode.<br />
<br />
[[File:vanderbilt06.png|250px]]<br />
<br />
== HSYCO Configuration ==<br />
Add a SIEMENSEDP I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''IP Address''': Leave empty<br />
*'''IP Port''': Leave empty<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to true.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|eventsport<br />
|50000<br />
|number<br />
|the TCP/IP port specified in the event receiver of the panel<br />
|-<br />
<br />
|commandsport<br />
|50001<br />
|number<br />
|the TCP/IP port specified in the command receiver of the panel<br />
|-<br />
<br />
|eventsaddress<br />
|1<br />
|number<br />
|the event receiver id address<br />
|-<br />
<br />
|commandsaddress<br />
|2<br />
|number<br />
|the command receiver id address<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|true<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|generate uisets<br />
|-<br />
|false<br />
|disable uisets<br />
|-<br />
<br />
|eventspolling<br />
|8000<br />
|number<br />
|the event receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.<br />
|-<br />
<br />
|commandspolling<br />
|2000<br />
|number<br />
|the command receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.<br />
|-<br />
<br />
|}<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|connection failed<br />
|-<br />
<br />
|rowspan="1"|log0<br />
|<text><br />
|R<br />
|latest line of the security log when a new entry is added<br />
|-<br />
<br />
|rowspan="2"|areas.armed<br />
|1<br />
|R<br />
|at least one area has mode equal to fullset, part_A or part_B<br />
|-<br />
|0<br />
|R<br />
|no area has mode equal to fullset, part_a or part_b<br />
|-<br />
<br />
|rowspan="1"|area.<n>.mode.cmd.unset<br />
|1<br />
|W<br />
|disarm area <n><br />
|-<br />
<br />
|rowspan="1"|area.<n>.mode.cmd.part.set.a<br />
|1<br />
|W<br />
|partially arm area <n>, partition a<br />
|-<br />
<br />
|rowspan="1"|area.<n>.mode.cmd.part.set.b<br />
|1<br />
|W<br />
|partially arm area <n>, partition b<br />
|-<br />
<br />
|rowspan="1"|area.<n>.mode.cmd.fullset<br />
|1<br />
|W<br />
|full arm area <n><br />
|-<br />
<br />
|rowspan="4"|area.<n>.mode<br />
|unset<br />
|R<br />
|area <n> is disarmed<br />
|-<br />
|part_a<br />
|R<br />
|area <n>, partition a is armed<br />
|-<br />
|part_b<br />
|R<br />
|area <n>, partition b is armed<br />
|-<br />
|fullset<br />
|R<br />
|area <n>, area is full armed<br />
|-<br />
<br />
|rowspan="1"|area.<n>.name<br />
|<text><br />
|R<br />
|name assigned to area <n><br />
|-<br />
<br />
|rowspan="2"|zones.inhibited<br />
|1<br />
|R<br />
|at least one zone is inhibited<br />
|-<br />
|0<br />
|R<br />
|no zone is inhibited<br />
|-<br />
<br />
|rowspan="2"|zones.isolated<br />
|1<br />
|R<br />
|at least one zone is isolated<br />
|-<br />
|0<br />
|R<br />
|no zone is isolated<br />
|-<br />
<br />
|rowspan="2"|zones.alarmed<br />
|1<br />
|R<br />
|at least one zone is alarmed<br />
|-<br />
|0<br />
|R<br />
|no zone is alarmed<br />
|-<br />
<br />
|rowspan="2"|zones.shorted<br />
|1<br />
|R<br />
|at least one zone is shorted<br />
|-<br />
|0<br />
|R<br />
|no zone is shorted<br />
|-<br />
<br />
|rowspan="2"|zones.offline<br />
|1<br />
|R<br />
|at least one zone is offline<br />
|-<br />
|0<br />
|R<br />
|no zone is offline<br />
|-<br />
<br />
|rowspan="2"|zone.<n>.mode.cmd.isolate<br />
|1<br />
|W<br />
|isolate zone <n><br />
|-<br />
|0<br />
|W<br />
|de-isolate zone <n><br />
|-<br />
<br />
|rowspan="2"|zone.<n>.mode.cmd.inhibit<br />
|1<br />
|W<br />
|inhibit zone <n><br />
|-<br />
|0<br />
|W<br />
|disinhibit zone <n><br />
|-<br />
<br />
|rowspan="1"|zone.<n>.name<br />
|<text><br />
|R<br />
|name assigned to zone <n><br />
|-<br />
<br />
|rowspan="18"|zone.<n>.type<br />
|alarm<br />
|R<br />
|zone <n> type is ALARM<br />
|-<br />
|entryexit<br />
|R<br />
|zone <n> type is ENTRY EXIT<br />
|-<br />
|fire<br />
|R<br />
|zone <n> type is FIRE<br />
|-<br />
|firex<br />
|R<br />
|zone <n> type is FIREX<br />
|-<br />
|line<br />
|R<br />
|zone <n> type is LINE<br />
|-<br />
|panic<br />
|R<br />
|zone <n> type PANIC<br />
|-<br />
|holdup<br />
|R<br />
|zone <n> type HOLDUP<br />
|-<br />
|tamper<br />
|R<br />
|zone <n> type is TAMPER<br />
|-<br />
|fault<br />
|R<br />
|zone <n> type is FAULT<br />
|-<br />
|fault_holdup<br />
|R<br />
|zone <n> type is FAULT HOLDUP<br />
|-<br />
|fault_warning<br />
|R<br />
|zone <n> type is WARNING<br />
|-<br />
|tech<br />
|R<br />
|zone <n> type is TECH<br />
|-<br />
|medic<br />
|R<br />
|zone <n> type MEDIC<br />
|-<br />
|keyarm<br />
|R<br />
|zone <n> type is KEYARM<br />
|-<br />
|shunt<br />
|R<br />
|zone <n> type is SHUNT<br />
|-<br />
|xshunt<br />
|R<br />
|zone <n> type is XSHUNT<br />
|-<br />
|locksup<br />
|R<br />
|zone <n> type is LOCKSUP<br />
|-<br />
|seismic<br />
|R<br />
|zone <n> type is SEISMIC<br />
|-<br />
<br />
|rowspan="11"|zone.<n>.state<br />
|isolate<br />
|R<br />
|zone <n> is ISOLATED<br />
|-<br />
|inhibit<br />
|R<br />
|zone <n> is INHIBIT<br />
|-<br />
|soak<br />
|R<br />
|zone <n> is SOAK<br />
|-<br />
|offline<br />
|R<br />
|zone <n> is OFFLINE<br />
|-<br />
|dcsub<br />
|R<br />
|zone <n> is DCSUB<br />
|-<br />
|alarm<br />
|R<br />
|zone <n> is ALARMED<br />
|-<br />
|masked<br />
|R<br />
|zone <n> is MASKED<br />
|-<br />
|closed<br />
|R<br />
|zone <n> is CLOSED<br />
|-<br />
|open<br />
|R<br />
|zone <n> is OPEN<br />
|-<br />
|short<br />
|R<br />
|zone <n> is SHORT CUTTED<br />
|-<br />
|discon<br />
|R<br />
|zone <n> is DISCONNECTED<br />
|-<br />
|}<br />
<br />
== UISET Actions ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
|-<br />
|log<br />
|value<br />
|colspan="2"|latest security log lines (as many as specified by the 'logsize' option)<br />
|-<br />
|log0<br />
|value<br />
|colspan="2"|latest line of the security log when a new entry is added, set back to blank after a short period<br />
|-<br />
|rowspan="2"|areas.armed<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint area<n>.mode is equal to fullset or part_a or part_b<br />
|-<br />
|false<br />
|when no datapoint area<n>.mode is equal to fullset or part_a or part_b<br />
|-<br />
|area.<n>.name<br />
|value<br />
|colspan="2"|name assigned to area<n><br />
|-<br />
|area.<n>.mode<br />
|value<br />
|colspan="2"|area<n> mode value<br />
|-<br />
|rowspan="2"|area<n>.mode.fullset<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint area<n>.mode = fullset<br />
|-<br />
|false<br />
|when datapoint area<n>.mode != fullset<br />
|-<br />
|rowspan="2"|area<n>.mode.unset<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint area<n>.mode = unset<br />
|-<br />
|false<br />
|when datapoint area<n>.mode != unset<br />
|-<br />
|rowspan="2"|area<n>.mode.part.set.a<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint area<n>.mode = part_a<br />
|-<br />
|false<br />
|when datapoint area<n>.mode != part_a<br />
|-<br />
|rowspan="2"|area<n>.mode.part.set.b<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint area<n>.mode = part_b<br />
|-<br />
|false<br />
|when datapoint area<n>.mode != part_b<br />
|-<br />
|rowspan="2"|output<n>.1<br />
|rowspan="2"|visible<br />
|true<br />
|when output<n> has value '1'<br />
|-<br />
|false<br />
|when output<n> has value '0'<br />
|-<br />
|rowspan="2"|output.<n>.0<br />
|rowspan="2"|visible<br />
|true<br />
|when output<n> has value '0'<br />
|-<br />
|false<br />
|when output<n> has value '1'<br />
|-<br />
|rowspan="2"|zones.inhibited<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint zone<n>.state is equal to inhibit<br />
|-<br />
|false<br />
|when no datapoint zone<n>.state is equal to inhibit<br />
|-<br />
|rowspan="2"|zones.isolated<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint zone<n>.state is equal to isolate<br />
|-<br />
|false<br />
|when no datapoint zone<n>.state is equal to isolate<br />
|-<br />
|rowspan="2"|zones.shorted<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint zone<n>.state is equal to short<br />
|-<br />
|false<br />
|when no datapoint zone<n>.state is equal to short<br />
|-<br />
|rowspan="2"|zones.offline<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint zone<n>.state is equal to offline<br />
|-<br />
|false<br />
|when no datapoint zone<n>.state is equal to offline<br />
|-<br />
|rowspan="2"|zones.alarmed<br />
|rowspan="2"|visible<br />
|true<br />
|when at least one datapoint zone<n>.state is equal to alarm<br />
|-<br />
|false<br />
|when no datapoint zone<n>.state is equal to alarm<br />
|-<br />
|zone.<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone<n><br />
|-<br />
|zone.<n>.type<br />
|value<br />
|colspan="2"|zone<n> type value<br />
|-<br />
|zone.<n>.state<br />
|value<br />
|colspan="2"|zone<n> state value<br />
|-<br />
|rowspan="2"|zone<n>.state.inhibit<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint zone<n>.state = inhibit<br />
|-<br />
|false<br />
|when datapoint zone<n>.state != inhibit<br />
|-<br />
|rowspan="2"|zone<n>.state.isolate<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint zone<n>.state = isolate<br />
|-<br />
|false<br />
|when datapoint zone<n>.state != isolate<br />
|-<br />
|rowspan="2"|zone<n>.state.open<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint zone<n>.state = open<br />
|-<br />
|false<br />
|when datapoint zone<n>.state != open<br />
|-<br />
|rowspan="2"|zone<n>.state.closed<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint zone<n>.state = closed<br />
|-<br />
|false<br />
|when datapoint zone<n>.state != closed<br />
|}<br />
<br />
== Log Files ==<br />
If a Vanderbilt 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.<br />
<br />
This file is never overwritten or deleted from HSYCO SERVER.<br />
<br />
<br />
<br />
=== 3.8.0 ===<br />
*initial version release<br />
<br />
----<br />
<br />
<br />
''Vanderbilt is a registered trademark of Vanderbilt Industries''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=AvigilonWEB&diff=11010
AvigilonWEB
2023-12-13T15:51:16Z
<p>Enrico: /* HSYCO Configuration */</p>
<hr />
<div>Avigilon Control Center (ACC) 7 and Avigilon Unity (ACC 8) are video management softwares that can be integrated in HSYCO with a TCP/IP connection.<br />
The current release of the I/O Server has been tested with the Avigilon Control Center WebEndpoint<br />
<br />
{{tip|This driver supports only a single connection with an Avigilon Control Server. If you have multiple Avigilon Control Servers it is mandatory to add more I/O servers to HSYCO, one for each Avigilon Control Server. Every I/O server must use a different IP address and TCP/IP port.}}<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Here's an example of how to configure Avigilon Control Center using WebEndpoint to send an alarm status to HSYCO.<br />
<br />
Download the Avigilon WebEndpoint executable from the [https://www.avigilon.com/software-downloads Avigilon download page]<br />
<br />
[[File:IO Server Avigilon WebEndpoint 1.png|center|700px]]<br />
<br />
Install the software<br />
<br />
== Creating an alarm in ACC ==<br />
<br />
Create a new alarm in ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 2.png|center|700px]]<br />
<br />
Select your camera as the trigger source<br />
<br />
[[File:IO Server Avigilon WebEndpoint 3.png|center|700px]]<br />
<br />
Select your camera as the linked device<br />
<br />
[[File:IO Server Avigilon WebEndpoint 4.png|center|700px]]<br />
<br />
Select the users that should be notified by ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 5.png|center|700px]]<br />
<br />
Select the alarm acknowledgment action<br />
<br />
[[File:IO Server Avigilon WebEndpoint 6.png|center|700px]]<br />
<br />
Give the alarm a '''lowercase''' name<br />
{{tip|only use characters from the english alphabet, don't use spaces, the only special characters allowed are - _}}<br />
<br />
[[File:IO Server Avigilon WebEndpoint 7.png|center|700px]]<br />
<br />
== Creating a Motion Detection in ACC ==<br />
<br />
Setup a new motion detection under your camera<br />
<br />
[[File:IO Server Avigilon WebEndpoint 8.png|center|700px]]<br />
[[File:IO Server Avigilon WebEndpoint 9.png|center|700px]]<br />
<br />
== HSYCO Configuration ==<br />
Add an AVIGILONAPI I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''IP Address''': IP address of the AVIGILON ACC 7 or AVIGILON UNITY server. <br />
*'''IP Port''': TCP/IP port to use, leave blank to use default port 8443<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
*'''username''': Username of the AVIGILON ACC 7 or AVIGILON UNITY client.<br />
*'''password''': Password of the AVIGILON ACC 7 or AVIGILON UNITY client.<br />
*'''userkey''': User api key [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''usernonce''': User api nonce [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''pollingtime''': Time in milliseconds that hsyco will wait before the next alarm check, leave blank or set it o 0 to use default polling time 300<br />
*'''usessl''': Tells the driver if the webendpoint uses SSL or not, leave blank for true<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|HSYCO connection socket is open<br />
|-<br />
|offline<br />
|R<br />
|HSYCO cannot create the connection socket<br />
|-<br />
<br />
|rowspan="2" |<alarmName>.alarm<br />
|0<br />
|R<br />
|The alarm is off<br />
|-<br />
|1<br />
|R<br />
|The alarm is on<br />
|-<br />
|<alarmName>.state<br />
|active, autoacknowledged, acknowledged<br />
|R<br />
|get an alarm state<br />
|-<br />
|}<br />
<br />
== States ==<br />
<br />
{| class="wikitable"<br />
!Value<br />
!Description<br />
|-<br />
<br />
|active<br />
|This state indicates that the motion detection actually detected some movement<br />
|-<br />
|acknowledged<br />
|This state indicates that the camera operator acknowledged the alarm<br />
|-<br />
|autoacknowledged<br />
|This state indicates that motion detection has stopped detecting the movement<br />
|-<br />
|}<br />
<br />
== Example ==<br />
<br />
In this example HSYCO is using the following format to turn on a light when the alarm goes off:<br />
<br />
io avigilonapi.newalarm.alarm = 1 : io dummy.light.1 = 1<br />
Where "avigilonapi" is the name of the driver given in HSYCO<br />
and "newalarm" is the name of the alarm given in ACC<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''AVIGILON is a registered trademark of Avigilon Corporation''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=AvigilonWEB&diff=11009
AvigilonWEB
2023-12-13T15:50:29Z
<p>Enrico: </p>
<hr />
<div>Avigilon Control Center (ACC) 7 and Avigilon Unity (ACC 8) are video management softwares that can be integrated in HSYCO with a TCP/IP connection.<br />
The current release of the I/O Server has been tested with the Avigilon Control Center WebEndpoint<br />
<br />
{{tip|This driver supports only a single connection with an Avigilon Control Server. If you have multiple Avigilon Control Servers it is mandatory to add more I/O servers to HSYCO, one for each Avigilon Control Server. Every I/O server must use a different IP address and TCP/IP port.}}<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Here's an example of how to configure Avigilon Control Center using WebEndpoint to send an alarm status to HSYCO.<br />
<br />
Download the Avigilon WebEndpoint executable from the [https://www.avigilon.com/software-downloads Avigilon download page]<br />
<br />
[[File:IO Server Avigilon WebEndpoint 1.png|center|700px]]<br />
<br />
Install the software<br />
<br />
== Creating an alarm in ACC ==<br />
<br />
Create a new alarm in ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 2.png|center|700px]]<br />
<br />
Select your camera as the trigger source<br />
<br />
[[File:IO Server Avigilon WebEndpoint 3.png|center|700px]]<br />
<br />
Select your camera as the linked device<br />
<br />
[[File:IO Server Avigilon WebEndpoint 4.png|center|700px]]<br />
<br />
Select the users that should be notified by ACC<br />
<br />
[[File:IO Server Avigilon WebEndpoint 5.png|center|700px]]<br />
<br />
Select the alarm acknowledgment action<br />
<br />
[[File:IO Server Avigilon WebEndpoint 6.png|center|700px]]<br />
<br />
Give the alarm a '''lowercase''' name<br />
{{tip|only use characters from the english alphabet, don't use spaces, the only special characters allowed are - _}}<br />
<br />
[[File:IO Server Avigilon WebEndpoint 7.png|center|700px]]<br />
<br />
== Creating a Motion Detection in ACC ==<br />
<br />
Setup a new motion detection under your camera<br />
<br />
[[File:IO Server Avigilon WebEndpoint 8.png|center|700px]]<br />
[[File:IO Server Avigilon WebEndpoint 9.png|center|700px]]<br />
<br />
== HSYCO Configuration ==<br />
Add an AVIGILONAPI I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''IP Address''': IP address of the AVIGILON ACC 7 server. <br />
*'''IP Port''': TCP/IP port to use, leave blank to use default port 8443<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
*'''username''': Username of the AVIGILON ACC 7 client.<br />
*'''password''': Password of the AVIGILON ACC 7 client.<br />
*'''userkey''': User api key [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''usernonce''': User api nonce [https://support.avigilon.com/s/technology-partners Avigilon developer page].<br />
*'''pollingtime''': Time in milliseconds that hsyco will wait before the next alarm check, leave blank or set it o 0 to use default polling time 300<br />
*'''usessl''': Tells the driver if the webendpoint uses SSL or not, leave blank for true<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|HSYCO connection socket is open<br />
|-<br />
|offline<br />
|R<br />
|HSYCO cannot create the connection socket<br />
|-<br />
<br />
|rowspan="2" |<alarmName>.alarm<br />
|0<br />
|R<br />
|The alarm is off<br />
|-<br />
|1<br />
|R<br />
|The alarm is on<br />
|-<br />
|<alarmName>.state<br />
|active, autoacknowledged, acknowledged<br />
|R<br />
|get an alarm state<br />
|-<br />
|}<br />
<br />
== States ==<br />
<br />
{| class="wikitable"<br />
!Value<br />
!Description<br />
|-<br />
<br />
|active<br />
|This state indicates that the motion detection actually detected some movement<br />
|-<br />
|acknowledged<br />
|This state indicates that the camera operator acknowledged the alarm<br />
|-<br />
|autoacknowledged<br />
|This state indicates that motion detection has stopped detecting the movement<br />
|-<br />
|}<br />
<br />
== Example ==<br />
<br />
In this example HSYCO is using the following format to turn on a light when the alarm goes off:<br />
<br />
io avigilonapi.newalarm.alarm = 1 : io dummy.light.1 = 1<br />
Where "avigilonapi" is the name of the driver given in HSYCO<br />
and "newalarm" is the name of the alarm given in ACC<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''AVIGILON is a registered trademark of Avigilon Corporation''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Paradox&diff=11008
Paradox
2023-11-16T15:08:56Z
<p>Enrico: </p>
<hr />
<div>PARADOX® EVO48, EVO192 and EVOHD are advanced, multi-area security systems integrated with a variety of wired and wireless sensors.<br />
<br />
The EVO48 supports up to 48 zones in 4 areas (partitions), while the EVO192 and EVOHD support 192 zones in 8 areas. All units support programmable outputs (PGM) and virtual inputs.<br />
<br />
The Paradox EVO driver in HSYCO supports the integration of more than one EVO unit within the same HSYCO interface.<br />
<br />
The integration with HSYCO can be accomplished via direct control through the RS-232 port on the PRT3 Integration Module or the BUS2SER Integration Module.<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Employ a DE-9 (often called DB-9) male-female RS-232 crossed cable to connect the PRT3/BUS2SER to the serial port on HSYCO SERVER. <br />
<br />
RS-232 parameters:<br />
{| class="wikitable"<br />
| '''Baud rate'''<br />
| same as defined on the PRT3 (default 9600)<br />
|-<br />
| '''Data bits'''<br />
| 8<br />
|-<br />
| '''Stop bit'''<br />
| 1<br />
|-<br />
| '''Parity'''<br />
| no parity<br />
|-<br />
| '''Flow control'''<br />
| none<br />
|}<br />
<br />
Using the Babyware (do not use Babyware version 5.4.3, there is a bug in PRT3 module programming, please use the latest version available) configuration software, set the PRT3 speed to the appropriate rate setting (section 016, options 2 and 3).<br />
You can use any of the speeds that the PRT3 supports. 9600 or higher is recommended.<br />
<br />
Enable the serial port (section 016, option 1 to ON), enable home automation protocol (section 016, option 4 to ON) and select Ascii protocol (section 016, options 5 and 6).<br />
<br />
[[File:paradox2.png | 500px]]<br />
<br />
== HSYCO Configuration ==<br />
Add a PARADOX I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Comm ID''': select the comm port the device is connected to.<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to true.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|language<br />
|rowspan="2"|system language<br />
|en<br />
|rowspan="2"|language of log and display messages. Supported values are it and en<br />
|-<br />
|it<br />
|-<br />
<br />
|rowspan="2"|zoneactivitylog<br />
|rowspan="2"|false<br />
|true<br />
|logs the open/close status of zones in the log page and security.log files<br />
|-<br />
|false<br />
|disable zone status log<br />
|-<br />
<br />
|maxzone<br />
|0<br />
|0 ... 192<br />
|force zones status detect and data points initialization at startup (zones data points are initialized with events disabled) for zones 1 to maxzone value<br />
|-<br />
<br />
|rowspan="2"|userlogs<br />
|rowspan="2"|false<br />
|true<br />
|generates logs that can be viewed with the userlist object, and can be selected to generate user events<br />
|-<br />
|false<br />
|logs for userlist objects disabled. Normal text logs are generated even when this option is false<br />
|-<br />
<br />
|rowspan="2"|areanamelog<br />
|rowspan="2"|true<br />
|true<br />
|adds the area name to all log messages<br />
|-<br />
|false<br />
|remove the area name (if only one area is used, having the area name in the logs could be useless)<br />
|-<br />
<br />
|code<br />
|<br />
|code<br />
|the user code to be used when sending IO commands to the EVO, if code is not explicitly set in the command<br />
|-<br />
<br />
|logsize<br />
|50<br />
|n &ge; 0<br />
|the number of log lines to display in the UI object<br />
|-<br />
<br />
|}<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|rowspan="10" |area.<n><br />
|arm<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|disarm<br />
|W<br />
|disarm area <n> using default code<br />
|-<br />
|force<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|stay<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|instant<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|arm.<c><br />
|W<br />
|arm area <n> using code <c><br />
|-<br />
|disarm.<c><br />
|W<br />
|disarm area <n> using code <c><br />
|-<br />
|force.<c><br />
|W<br />
|forced arm area <n> using code <c><br />
|-<br />
|stay.<c><br />
|W<br />
|stay arm area <n> using code <c><br />
|-<br />
|instant.<c><br />
|W<br />
|instant arm area <n> using code <c><br />
|-<br />
<br />
<br />
|rowspan="5" |area.<n>.mode<br />
|disarmed<br />
|R<br />
|the area is disarmed<br />
|-<br />
|armed<br />
|R<br />
|the area is armed<br />
|-<br />
|forced<br />
|R<br />
|the area is armed (force mode)<br />
|-<br />
|stay<br />
|R<br />
|the area is armed (stay mode)<br />
|-<br />
|instant<br />
|R<br />
|the area is armed (instant mode)<br />
|-<br />
<br />
|rowspan="3" |area.<n>.status<br />
|alarm<br />
|R<br />
|area in alarm<br />
|-<br />
|strobe<br />
|R<br />
|area in strobe (silent alarm)<br />
|-<br />
|reset<br />
|R<br />
|area alarm end<br />
|-<br />
<br />
|rowspan="2" |area.<n>.trouble<br />
|trouble<br />
|R<br />
|general trouble in the area<br />
|-<br />
|reset<br />
|R<br />
|trouble end<br />
|-<br />
<br />
|rowspan="4" |zone.<n>.status<br />
|closed<br />
|R<br />
|zone is closed<br />
|-<br />
|open<br />
|R<br />
|zone is open<br />
|-<br />
|tamper<br />
|R<br />
|zone tampered<br />
|-<br />
|fireloop<br />
|R<br />
|fire loop trouble<br />
|-<br />
<br />
|rowspan="3" |zone.<n>.alarm<br />
|alarm<br />
|R<br />
|zone alarm<br />
|-<br />
|fire<br />
|R<br />
|zone fire alarm<br />
|-<br />
|reset<br />
|R<br />
|alarm end<br />
|-<br />
<br />
|rowspan="3" |zone.<n>.trouble<br />
|radio<br />
|R<br />
|zone radio supervision lost<br />
|-<br />
|battery<br />
|R<br />
|zone low battery warning<br />
|-<br />
|reset<br />
|R<br />
|zone trouble end<br />
|-<br />
<br />
<br />
|rowspan="2" |trouble<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|connection failed<br />
|-<br />
<br />
|rowspan="2" |pgm.<n><br />
|on<br />
|R<br />
|the PGM is activated<br />
|-<br />
|off<br />
|R<br />
|the PGM is deactivated<br />
|-<br />
<br />
|rowspan="4" |input.<n><br />
|open<br />
|RW<br />
|the virtual input is open<br />
|-<br />
|0<br />
|W<br />
|set virtual input to open<br />
|-<br />
|closed<br />
|RW<br />
|set virtual input to closed<br />
|-<br />
|1<br />
|W<br />
|set virtual input to open<br />
<br />
|-<br />
|log0<br />
|<text><br />
|R<br />
|reports the latest line of the security log when a new entry is added<br />
|}<br />
<br />
== User Interface ==<br />
<br />
=== Paradox Object ===<br />
<br />
{{:Paradox_(UI Object)}}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
|-<br />
<br />
|areas<br />
|value<br />
|shows the status of all areas (up to 8)<br />
|-<br />
|log0<br />
|value<br />
|shows the latest entry of the security log for a short period<br />
|-<br />
|logs<br />
|value<br />
|shows the latest entries of the security log (as many as specified in hsyco.ini)<br />
|-<br />
|zones<br />
|value<br />
|shows the status of all known zones (zones are added to this list as soon as an event is detected on a zone)<br />
|-<br />
|connection.label.online<br />
|visible <br />
|true when the panel is connected to HSYCO, false otherwise<br />
|-<br />
|connection.label.offline<br />
|visible <br />
|true when the panel is not connected to HSYCO, false otherwise<br />
|-<br />
|area.<n>.mode.label.disarmed<br />
|visible <br />
|true when area <n> is disarmed, false otherwise<br />
|-<br />
|area.<n>.mode.label.armed<br />
|visible <br />
|true when area N is armed, false otherwise<br />
|-<br />
|area.<n>.mode.label.force<br />
|visible <br />
|true when area <n> is armed (force mode), false otherwise<br />
|-<br />
|area.<n>.mode.label.stay<br />
|visible<br />
|true when area <n> is armed (stay mode), false otherwise<br />
|-<br />
|area.<n>.mode.label.instant<br />
|visible<br />
|true when area <n> is armed (instant mode), false otherwise<br />
|-<br />
|area.<n>.status.label.alarm<br />
|visible <br />
|true when area <n> alarm is active, false otherwise<br />
|-<br />
|area.<n>.trouble.label.trouble<br />
|visible <br />
|true when trouble detected for area <n>, false otherwise<br />
|-<br />
|zone.<n>.status.label.closed<br />
|visible <br />
|true when zone N is closed, false otherwise<br />
|-<br />
|zone.<n>.status.label.open<br />
|visible <br />
|true when zone <n> is open, false otherwise<br />
|-<br />
|zone.<n>.status.label.tamper<br />
|visible<br />
|true when tamper detected for zone <n>, false otherwise<br />
|-<br />
|zone.<n>.status.label.fireloop<br />
|visible <br />
|true when fire loop detected for zone <n>, false otherwise<br />
|-<br />
|zone.<n>.alarm.label.fire<br />
|visible <br />
|true when zone <n> fire alarm is active, false otherwise<br />
|-<br />
|zone.<n>.alarm.label.alarm<br />
|visible <br />
|true when zone <n> alarm is active, false otherwise<br />
|-<br />
|zone.<n>.trouble.label.radio<br />
|visible <br />
|true when radio trouble detected for zone <n>, false otherwise<br />
|-<br />
|zone.N.trouble.label.battery<br />
|visible <br />
|true when battery trouble detected for zone <n>, false otherwise<br />
|}<br />
<br />
== Log Files ==<br />
A permanent record of all the events shown in the log page is saved in a file called security.log in the logs/YYYY directory for the current year.<br />
<br />
This file is never overwritten or deleted by HSYCO.<br />
<pre><br />
2014.05.12 08:48:59.182 - Inserimento<br />
2014.05.12 08:48:59.195 - [Sensors] Inserimento istantaneo<br />
2014.05.12 08:49:09.207 - [] Accesso remoto<br />
2014.05.12 08:49:09.431 - [Sensors] Master: Disinserito<br />
2014.05.12 09:10:06.703 - [Sensors] Kitchen: Aperta<br />
2014.05.12 09:10:10.659 - [Sensors] Kitchen: Chiusa<br />
2014.05.12 09:10:20.867 - [Sensors] Kitchen: Aperta<br />
2014.05.12 09:10:24.843 - [Sensors] Kitchen: Chiusa<br />
2014.05.12 09:17:26.867 - [] Accesso remoto<br />
2014.05.12 09:17:27.151 - [Sensors] Master: Inserito<br />
2014.05.12 09:17:27.343 - Inserimento<br />
2014.05.12 09:17:35.807 - [] Accesso remoto<br />
2014.05.12 09:17:36.059 - [Sensors] Master: Disinserito<br />
2014.05.12 09:20:12.603 - [Sensors] Living: Aperta<br />
2014.05.12 09:20:16.511 - [Sensors] Living: Chiusa<br />
2014.05.12 09:20:26.791 - [Sensors] Living: Aperta<br />
2014.05.12 09:20:30.675 - [Sensors] Living: Chiusa<br />
</pre><br />
Other information related to the ParadoxEVO driver are saved in the daily message.log files.<br />
<br />
== Release Notes ==<br />
<br />
=== 3.7.0 ===<br />
*added datapoint "log0"<br />
*minor bug fixes<br />
<br />
=== 3.3.0 ===<br />
*ParadoxEVO driver converted to I/O Server<br />
*Java API write command methods are now obsolete and deprecated, replaced by IO write commands<br />
*new (paradox) object<br />
*new option userlogs. Used to create (userlist) clickable logs<br />
<br />
=== 2.1.0 ===<br />
*integrated with HSYCO 2.10.0<br />
*you can now embed the main keypad GUI components in a container with id IDmainkeypad, for example (container !evomainkeypad r1c1). This container will be made invisible when the code keypad is displayed, so that any custom graphic object that is embedded in the container will be made invisible as well, and visible again when you exit the code keypad<br />
*added areanamelog option in paradox.ini<br />
=== 2.0.0 ===<br />
*full integration within HSYCO 2.9.0<br />
<br />
----<br />
<br />
<br />
''Paradox and EVO are registered trademarks of Paradox Security Systems.''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Paradox&diff=11007
Paradox
2023-11-16T15:07:20Z
<p>Enrico: </p>
<hr />
<div>PARADOX® EVO48, EVO192 and EVOHD are advanced, multi-area security systems integrated with a variety of wired and wireless sensors.<br />
<br />
The EVO48 supports up to 48 zones in 4 areas (partitions), while the EVO192 and EVOHD support 192 zones in 8 areas. All units support programmable outputs (PGM) and virtual inputs.<br />
<br />
The Paradox EVO driver in HSYCO supports the integration of more than one EVO unit within the same HSYCO interface.<br />
<br />
The integration with HSYCO can be accomplished via direct control through the RS-232 port on the PRT3 Integration Module or the BUS2SER Integration Module.<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Employ a DE-9 (often called DB-9) male-female RS-232 crossed cable to connect the PRT3 to the serial port on HSYCO SERVER. <br />
<br />
RS-232 parameters:<br />
{| class="wikitable"<br />
| '''Baud rate'''<br />
| same as defined on the PRT3 (default 9600)<br />
|-<br />
| '''Data bits'''<br />
| 8<br />
|-<br />
| '''Stop bit'''<br />
| 1<br />
|-<br />
| '''Parity'''<br />
| no parity<br />
|-<br />
| '''Flow control'''<br />
| none<br />
|}<br />
<br />
Using the Babyware (do not use Babyware version 5.4.3, there is a bug in PRT3 module programming, please use the latest version available) configuration software, set the PRT3 speed to the appropriate rate setting (section 016, options 2 and 3).<br />
You can use any of the speeds that the PRT3 supports. 9600 or higher is recommended.<br />
<br />
Enable the serial port (section 016, option 1 to ON), enable home automation protocol (section 016, option 4 to ON) and select Ascii protocol (section 016, options 5 and 6).<br />
<br />
[[File:paradox2.png | 500px]]<br />
<br />
== HSYCO Configuration ==<br />
Add a PARADOX I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Comm ID''': select the comm port the device is connected to.<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to true.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|language<br />
|rowspan="2"|system language<br />
|en<br />
|rowspan="2"|language of log and display messages. Supported values are it and en<br />
|-<br />
|it<br />
|-<br />
<br />
|rowspan="2"|zoneactivitylog<br />
|rowspan="2"|false<br />
|true<br />
|logs the open/close status of zones in the log page and security.log files<br />
|-<br />
|false<br />
|disable zone status log<br />
|-<br />
<br />
|maxzone<br />
|0<br />
|0 ... 192<br />
|force zones status detect and data points initialization at startup (zones data points are initialized with events disabled) for zones 1 to maxzone value<br />
|-<br />
<br />
|rowspan="2"|userlogs<br />
|rowspan="2"|false<br />
|true<br />
|generates logs that can be viewed with the userlist object, and can be selected to generate user events<br />
|-<br />
|false<br />
|logs for userlist objects disabled. Normal text logs are generated even when this option is false<br />
|-<br />
<br />
|rowspan="2"|areanamelog<br />
|rowspan="2"|true<br />
|true<br />
|adds the area name to all log messages<br />
|-<br />
|false<br />
|remove the area name (if only one area is used, having the area name in the logs could be useless)<br />
|-<br />
<br />
|code<br />
|<br />
|code<br />
|the user code to be used when sending IO commands to the EVO, if code is not explicitly set in the command<br />
|-<br />
<br />
|logsize<br />
|50<br />
|n &ge; 0<br />
|the number of log lines to display in the UI object<br />
|-<br />
<br />
|}<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|rowspan="10" |area.<n><br />
|arm<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|disarm<br />
|W<br />
|disarm area <n> using default code<br />
|-<br />
|force<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|stay<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|instant<br />
|W<br />
|arm area <n> using default code<br />
|-<br />
|arm.<c><br />
|W<br />
|arm area <n> using code <c><br />
|-<br />
|disarm.<c><br />
|W<br />
|disarm area <n> using code <c><br />
|-<br />
|force.<c><br />
|W<br />
|forced arm area <n> using code <c><br />
|-<br />
|stay.<c><br />
|W<br />
|stay arm area <n> using code <c><br />
|-<br />
|instant.<c><br />
|W<br />
|instant arm area <n> using code <c><br />
|-<br />
<br />
<br />
|rowspan="5" |area.<n>.mode<br />
|disarmed<br />
|R<br />
|the area is disarmed<br />
|-<br />
|armed<br />
|R<br />
|the area is armed<br />
|-<br />
|forced<br />
|R<br />
|the area is armed (force mode)<br />
|-<br />
|stay<br />
|R<br />
|the area is armed (stay mode)<br />
|-<br />
|instant<br />
|R<br />
|the area is armed (instant mode)<br />
|-<br />
<br />
|rowspan="3" |area.<n>.status<br />
|alarm<br />
|R<br />
|area in alarm<br />
|-<br />
|strobe<br />
|R<br />
|area in strobe (silent alarm)<br />
|-<br />
|reset<br />
|R<br />
|area alarm end<br />
|-<br />
<br />
|rowspan="2" |area.<n>.trouble<br />
|trouble<br />
|R<br />
|general trouble in the area<br />
|-<br />
|reset<br />
|R<br />
|trouble end<br />
|-<br />
<br />
|rowspan="4" |zone.<n>.status<br />
|closed<br />
|R<br />
|zone is closed<br />
|-<br />
|open<br />
|R<br />
|zone is open<br />
|-<br />
|tamper<br />
|R<br />
|zone tampered<br />
|-<br />
|fireloop<br />
|R<br />
|fire loop trouble<br />
|-<br />
<br />
|rowspan="3" |zone.<n>.alarm<br />
|alarm<br />
|R<br />
|zone alarm<br />
|-<br />
|fire<br />
|R<br />
|zone fire alarm<br />
|-<br />
|reset<br />
|R<br />
|alarm end<br />
|-<br />
<br />
|rowspan="3" |zone.<n>.trouble<br />
|radio<br />
|R<br />
|zone radio supervision lost<br />
|-<br />
|battery<br />
|R<br />
|zone low battery warning<br />
|-<br />
|reset<br />
|R<br />
|zone trouble end<br />
|-<br />
<br />
<br />
|rowspan="2" |trouble<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|connection failed<br />
|-<br />
<br />
|rowspan="2" |pgm.<n><br />
|on<br />
|R<br />
|the PGM is activated<br />
|-<br />
|off<br />
|R<br />
|the PGM is deactivated<br />
|-<br />
<br />
|rowspan="4" |input.<n><br />
|open<br />
|RW<br />
|the virtual input is open<br />
|-<br />
|0<br />
|W<br />
|set virtual input to open<br />
|-<br />
|closed<br />
|RW<br />
|set virtual input to closed<br />
|-<br />
|1<br />
|W<br />
|set virtual input to open<br />
<br />
|-<br />
|log0<br />
|<text><br />
|R<br />
|reports the latest line of the security log when a new entry is added<br />
|}<br />
<br />
== User Interface ==<br />
<br />
=== Paradox Object ===<br />
<br />
{{:Paradox_(UI Object)}}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
|-<br />
<br />
|areas<br />
|value<br />
|shows the status of all areas (up to 8)<br />
|-<br />
|log0<br />
|value<br />
|shows the latest entry of the security log for a short period<br />
|-<br />
|logs<br />
|value<br />
|shows the latest entries of the security log (as many as specified in hsyco.ini)<br />
|-<br />
|zones<br />
|value<br />
|shows the status of all known zones (zones are added to this list as soon as an event is detected on a zone)<br />
|-<br />
|connection.label.online<br />
|visible <br />
|true when the panel is connected to HSYCO, false otherwise<br />
|-<br />
|connection.label.offline<br />
|visible <br />
|true when the panel is not connected to HSYCO, false otherwise<br />
|-<br />
|area.<n>.mode.label.disarmed<br />
|visible <br />
|true when area <n> is disarmed, false otherwise<br />
|-<br />
|area.<n>.mode.label.armed<br />
|visible <br />
|true when area N is armed, false otherwise<br />
|-<br />
|area.<n>.mode.label.force<br />
|visible <br />
|true when area <n> is armed (force mode), false otherwise<br />
|-<br />
|area.<n>.mode.label.stay<br />
|visible<br />
|true when area <n> is armed (stay mode), false otherwise<br />
|-<br />
|area.<n>.mode.label.instant<br />
|visible<br />
|true when area <n> is armed (instant mode), false otherwise<br />
|-<br />
|area.<n>.status.label.alarm<br />
|visible <br />
|true when area <n> alarm is active, false otherwise<br />
|-<br />
|area.<n>.trouble.label.trouble<br />
|visible <br />
|true when trouble detected for area <n>, false otherwise<br />
|-<br />
|zone.<n>.status.label.closed<br />
|visible <br />
|true when zone N is closed, false otherwise<br />
|-<br />
|zone.<n>.status.label.open<br />
|visible <br />
|true when zone <n> is open, false otherwise<br />
|-<br />
|zone.<n>.status.label.tamper<br />
|visible<br />
|true when tamper detected for zone <n>, false otherwise<br />
|-<br />
|zone.<n>.status.label.fireloop<br />
|visible <br />
|true when fire loop detected for zone <n>, false otherwise<br />
|-<br />
|zone.<n>.alarm.label.fire<br />
|visible <br />
|true when zone <n> fire alarm is active, false otherwise<br />
|-<br />
|zone.<n>.alarm.label.alarm<br />
|visible <br />
|true when zone <n> alarm is active, false otherwise<br />
|-<br />
|zone.<n>.trouble.label.radio<br />
|visible <br />
|true when radio trouble detected for zone <n>, false otherwise<br />
|-<br />
|zone.N.trouble.label.battery<br />
|visible <br />
|true when battery trouble detected for zone <n>, false otherwise<br />
|}<br />
<br />
== Log Files ==<br />
A permanent record of all the events shown in the log page is saved in a file called security.log in the logs/YYYY directory for the current year.<br />
<br />
This file is never overwritten or deleted by HSYCO.<br />
<pre><br />
2014.05.12 08:48:59.182 - Inserimento<br />
2014.05.12 08:48:59.195 - [Sensors] Inserimento istantaneo<br />
2014.05.12 08:49:09.207 - [] Accesso remoto<br />
2014.05.12 08:49:09.431 - [Sensors] Master: Disinserito<br />
2014.05.12 09:10:06.703 - [Sensors] Kitchen: Aperta<br />
2014.05.12 09:10:10.659 - [Sensors] Kitchen: Chiusa<br />
2014.05.12 09:10:20.867 - [Sensors] Kitchen: Aperta<br />
2014.05.12 09:10:24.843 - [Sensors] Kitchen: Chiusa<br />
2014.05.12 09:17:26.867 - [] Accesso remoto<br />
2014.05.12 09:17:27.151 - [Sensors] Master: Inserito<br />
2014.05.12 09:17:27.343 - Inserimento<br />
2014.05.12 09:17:35.807 - [] Accesso remoto<br />
2014.05.12 09:17:36.059 - [Sensors] Master: Disinserito<br />
2014.05.12 09:20:12.603 - [Sensors] Living: Aperta<br />
2014.05.12 09:20:16.511 - [Sensors] Living: Chiusa<br />
2014.05.12 09:20:26.791 - [Sensors] Living: Aperta<br />
2014.05.12 09:20:30.675 - [Sensors] Living: Chiusa<br />
</pre><br />
Other information related to the ParadoxEVO driver are saved in the daily message.log files.<br />
<br />
== Release Notes ==<br />
<br />
=== 3.7.0 ===<br />
*added datapoint "log0"<br />
*minor bug fixes<br />
<br />
=== 3.3.0 ===<br />
*ParadoxEVO driver converted to I/O Server<br />
*Java API write command methods are now obsolete and deprecated, replaced by IO write commands<br />
*new (paradox) object<br />
*new option userlogs. Used to create (userlist) clickable logs<br />
<br />
=== 2.1.0 ===<br />
*integrated with HSYCO 2.10.0<br />
*you can now embed the main keypad GUI components in a container with id IDmainkeypad, for example (container !evomainkeypad r1c1). This container will be made invisible when the code keypad is displayed, so that any custom graphic object that is embedded in the container will be made invisible as well, and visible again when you exit the code keypad<br />
*added areanamelog option in paradox.ini<br />
=== 2.0.0 ===<br />
*full integration within HSYCO 2.9.0<br />
<br />
----<br />
<br />
<br />
''Paradox and EVO are registered trademarks of Paradox Security Systems.''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Elmo&diff=11006
Elmo
2023-11-14T10:33:18Z
<p>Enrico: </p>
<hr />
<div>EL.MO. security panels are multi-area intrusion detection systems. The integration with HSYCO can be accomplished via direct control through the RS232 port on the panel. The panels supported are: ETR, Pregio, Vidomo, Proxima (FW ver >= 1.0.9) and Titania (This driver is also compatible with IESS ETR series)<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
Employ the RS-232 cable provided with the EL.MO. panel to connect it directly to HSYCO or to an Ethernet/RS-232 gateway.<br />
<br />
RS-232 parameters:<br />
{| class="wikitable"<br />
| '''Baud rate'''<br />
| 9600<br />
|-<br />
| '''Data bits'''<br />
| 8<br />
|-<br />
| '''Stop bit'''<br />
| 1<br />
|-<br />
| '''Parity'''<br />
| none<br />
|-<br />
| '''Flow control'''<br />
| none<br />
|}<br />
<br />
Or connect the EL.MO. panel using the ethernet/serial converter ELAN100 (default tcp/ip port 10002) or the ethernet interface MDLAN (default tcp/ip port 10001) or direct tcp/ip connection on port 10001.<br />
<br />
== EL.MO. Configuration ==<br />
For the newer "G2" series of EL.MO. ETR panels it is necessary to enable the compatibility mode for direct connection in the panel configuration. Refer to its manual for further details.<br />
<br />
== HSYCO Configuration ==<br />
Add an ELMO I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Comm ID''': select the comm port connected to the panel.<br />
<br />
=== Authentication ===<br />
Required for ''Pregio'', ''Vidomo'', ''Proxima'' and ''Titania'' panels<br />
<br />
*'''User''': user id used by the I/O Server to authenticate (0 - 65535)<br />
*'''Password''': numeric password for the specified user (tech code)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to true.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
<br />
|-<br />
<br />
|rowspan="2"|offlinelogs<br />
|rowspan="2"|true<br />
|false<br />
|at startup request the log of all the events occurred while HSYCO was disconnected from the panel<br />
|-<br />
|false<br />
|log only events occurred while HSYCO was connected to the panel<br />
<br />
|-<br />
<br />
|pollinterval<br />
|1<br />
|n > 0<br />
|the data acquisition interval, in seconds<br />
<br />
|-<br />
<br />
|logsize<br />
|20<br />
|n &ge; 0<br />
|the number of log lines to display in the UI object<br />
<br />
|-<br />
<br />
|maxinput<br />
|<br />
|n &ge; 0<br />
|highest input number among the inputs used on the panel. If not specified all the available inputs will be included. This option is recommended to improve the I/O Server's performances<br />
<br />
|-<br />
<br />
|maxoutput<br />
|<br />
|n &ge; 0<br />
|highest output number among the outputs used on the panel. If not specified all the available outputs will be included. This option is recommended to improve the I/O Server's performances<br />
<br />
|-<br />
<br />
|maxgroup<br />
|<br />
|n &ge; 0<br />
|highest group number among the groups used on the panel. If not specified all the available groups will be included. This option is recommended to improve the I/O Server's performances<br />
<br />
|-<br />
<br />
|maxuser<br />
|<br />
|n &ge; 0<br />
|highest user number among the users used on the panel. If not specified all the available users will be included. This option is recommended to improve the I/O Server's performances<br />
<br />
|-<br />
<br />
|rowspan="2"|userlogs<br />
|rowspan="2"|false<br />
|true<br />
|generates logs that can be viewed with the userlist object, and can be selected to generate user events<br />
|-<br />
|false<br />
|logs for userlist objects disabled. Normal text logs are generated even when this option is false<br />
|}<br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
<br />
|-<br />
<br />
|rowspan="4" |armed<br />
|rowspan="2" |1<br />
|R<br />
|at least one partition is armed<br />
|-<br />
|W<br />
|arm all active areas<br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|no partition is armed<br />
|-<br />
|W<br />
|disarm all active areas<br />
<br />
|-<br />
<br />
|rowspan="4" |armed.max<br />
|rowspan="2" |1<br />
|R<br />
|at least one partition is armed in "max security" mode<br />
|-<br />
|W<br />
|arm all active areas in "max security" mode<br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|no partition is armed in "max security" mode<br />
|-<br />
|W<br />
|disarm all active areas in "max security" mode<br />
<br />
|-<br />
<br />
|rowspan="2" |alarm<br />
|1<br />
|R<br />
|alarm state active<br />
|-<br />
|0<br />
|R<br />
|no active alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |tamper<br />
|1<br />
|R<br />
|tamper alarm active<br />
|-<br />
|0<br />
|R<br />
|no active tamper alarm<br />
<br />
|-<br />
<br />
|i<n>.name<br />
|<text><br />
|R<br />
|the name of input <n> is set to <text><br />
<br />
|-<br />
<br />
|rowspan="2" |i<n>.open<br />
|1<br />
|R<br />
|input <n> open<br />
|-<br />
|0<br />
|R<br />
|input <n> closed<br />
<br />
|-<br />
<br />
|rowspan="2" |i<n>.alarm<br />
|1<br />
|R<br />
|alarm on input <n><br />
|-<br />
|0<br />
|R<br />
|no alarm on input <n><br />
<br />
|-<br />
<br />
|rowspan="2" |i<n>.tamper<br />
|1<br />
|R<br />
|tamper alarm on input <n><br />
|-<br />
|0<br />
|R<br />
|no tamper alarm on input <n><br />
<br />
|-<br />
<br />
|rowspan="4" |i<n>.bypassed<br />
|rowspan="2" |1<br />
|R<br />
|input <n> bypassed<br />
|-<br />
|W<br />
|bypass input <n><br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|input <n> enabled<br />
|-<br />
|W<br />
|enable input <n><br />
<br />
|-<br />
<br />
|rowspan="4" |o<n><br />
|rowspan="2" |1<br />
|R<br />
|output <n> active<br />
|-<br />
|W<br />
|activate output <n><br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|output <n> inactive<br />
|-<br />
|W<br />
|deactivate output <n><br />
<br />
|-<br />
<br />
|a<n>.<m>.name<br />
|<text><br />
|R<br />
|the name of partition <m> of area <n> is set to <text><br />
<br />
|-<br />
<br />
|rowspan="2" |a<n>.armed<br />
|1<br />
|W<br />
|arm all partitions of area <n><br />
|-<br />
|0<br />
|W<br />
|disarm all partitions of area <n><br />
<br />
|-<br />
<br />
|rowspan="2" |a<n>.armed.max<br />
|1<br />
|W<br />
|arm all partitions of area <n> in "max security" mode<br />
|-<br />
|0<br />
|W<br />
|disarm all partitions of area <n> in "max security" mode<br />
<br />
|-<br />
<br />
|rowspan="4" |a<n>.<m>.armed<br />
|rowspan="2" |1<br />
|R<br />
|partition <m> of area <n> is armed<br />
|-<br />
|W<br />
|arm partition <m> of area <n><br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|partition <m> of area <n> is disarmed<br />
|-<br />
|W<br />
|disarm partition <m> of area <n><br />
<br />
|-<br />
<br />
|rowspan="4" |a<n>.<m>.armed.max<br />
|rowspan="2" |1<br />
|R<br />
|partition <m> of area <n> is armed in "max security" mode<br />
|-<br />
|W<br />
|arm partition <m> of area <n> in "max security" mode<br />
|-<br />
|rowspan="2" |0<br />
|R<br />
|partition <m> of area <n> is not armed in "max security" mode<br />
|-<br />
|W<br />
|disarm partition <m> of area <n> in "max security" mode<br />
<br />
|-<br />
<br />
|usr<n>.name<br />
|<text><br />
|R<br />
|the name of user <n> is set to <text><br />
<br />
|-<br />
<br />
|rowspan="2" |kp<n>.tamper<br />
|1<br />
|R<br />
|keypad <n> tampered<br />
|-<br />
|0<br />
|R<br />
|keypad <n> not tampered<br />
<br />
|-<br />
<br />
|rowspan="2" |fault.battery<br />
|1<br />
|R<br />
|battery fault active<br />
|-<br />
|0<br />
|R<br />
|no battery fault active<br />
<br />
|-<br />
<br />
|rowspan="2" |panel.tamper<br />
|1<br />
|R<br />
|panel tampered<br />
|-<br />
|0<br />
|R<br />
|panel not tampered<br />
<br />
|-<br />
<br />
|rowspan="2" |rel.tamper<br />
|1<br />
|R<br />
|tamper relay is on<br />
|-<br />
|0<br />
|R<br />
|tamper relay is off<br />
<br />
|-<br />
<br />
|rowspan="2" |rel.alarm<br />
|1<br />
|R<br />
|alarm relay is on<br />
|-<br />
|0<br />
|R<br />
|alarm relay is off<br />
<br />
|}<br />
<br />
== User Interface ==<br />
<br />
=== Elmo Object ===<br />
<br />
{{:Elmo_(UI Object)}}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
|-<br />
|log<br />
|value<br />
|colspan="2"|latest security log lines (as many as specified by the 'logsize' option)<br />
|-<br />
|log0<br />
|value<br />
|colspan="2"|latest line of the security log when a new entry is added, set back to blank after a short period<br />
|-<br />
|i<n>.name<br />
|value<br />
|colspan="2"|name assigned to input <n><br />
|-<br />
|a<n>.<m>.name<br />
|value<br />
|colspan="2"|name assigned to partition <m> of area <n><br />
|-<br />
|usr<n>.name<br />
|value<br />
|colspan="2"|name assigned to user <n><br />
|-<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
|rowspan="2"|userlogs<br />(only if option userlogs=true)<br />
|labels<br />
|colspan="2"|comma-separated list of log entries<br />
|-<br />
|parameters<br />
|colspan="2"|comma-separated list of log entries with format "yyyyMMddHHmmss message" (e.g. "20141230154513 ALARM ZONE 1")<br />
<br />
|-<br />
|rowspan="2"|<datapoint_id>.label.1<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|rowspan="2"|<datapoint_id>.label.0<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
=== USER Commands ===<br />
<br />
{| class="wikitable"<br />
!Name<br />
!Param<br />
!Action<br />
|-<br />
|rowspan="2"|armed<br />
|1<br />
|arm all active areas<br />
|-<br />
|0<br />
|disarm all active areas<br />
|-<br />
|rowspan="2"|armed.max<br />
|1<br />
|arm all active areas in "max security" mode<br />
|-<br />
|0<br />
|disarm all active areas in "max security" mode<br />
|-<br />
|rowspan="2"|a<n>.armed<br />
|1<br />
|arm all partitions of area <n><br />
|-<br />
|0<br />
|disarm all partitions of area <n><br />
|-<br />
|rowspan="2"|a<n>.armed.max<br />
|1<br />
|arm all partitions of area <n> in "max security" mode<br />
|-<br />
|0<br />
|disarm all partitions of area <n> in "max security" mode<br />
|-<br />
|rowspan="2"|a<n>.<m>.armed<br />
|1<br />
|arm partition <m> of area <n><br />
|-<br />
|0<br />
|disarm partition <m> of area <n><br />
|-<br />
|rowspan="2"|a<n>.<m>.armed.max<br />
|1<br />
|arm partition <m> of area <n> in "max security" mode<br />
|-<br />
|0<br />
|disarm partition <m> of area <n> in "max security" mode<br />
|-<br />
|rowspan="2" |i<n>.bypassed<br />
|1<br />
|bypass input <n><br />
|-<br />
|0<br />
|enable input <n><br />
|-<br />
|rowspan="2" |o<n><br />
|1<br />
|activate output <n><br />
|-<br />
|0<br />
|deactivate output <n><br />
<br />
|}<br />
<br />
== Log Files ==<br />
<br />
A permanent detailed record of all the EL.MO. 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. <br />
<br />
Other information related to the ELMO driver are saved in the daily message.log files.<br />
<br />
== Release Notes ==<br />
=== 3.8.0 === <br />
*added support for ''IESS Flex Energy'' panels<br />
<br />
=== 3.7.0 === <br />
*added support for ''Pregio'', ''Vidomo'' (''Villeggio'' series), ''Proxima'' and ''Titania'' panels<br />
<br />
=== 3.3.0 === <br />
*added “offlinelogs” option<br />
*fixed bug on startup events<br />
=== 3.2.3 === <br />
*fixes to the (elmo) object<br />
=== 3.1.0 === <br />
*initial version release<br />
<br />
----<br />
<br />
<br />
''EL.MO. and ETR100 are registered trademarks of EL.MO. SpA.''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=11002
Access Control
2023-07-11T13:01:56Z
<p>Enrico: /* USER commands */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
You can use variables to programmatically disable/enable an user. <br />
<br />
<pre><br />
USER "acsctrl.user.<user_id>" = "<0,1>"<br />
</pre><br />
<br />
Where "1" enable an user, while "0" disable an user.<br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = <0,1><br />
$access.alarm.forced.<area_name>.<doorNum> = <0,1> <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = <0,1><br />
$access.alarm.held.<area_name>.<doorNum> = <0,1><br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=11001
Access Control
2023-07-11T13:01:37Z
<p>Enrico: /* USER commands */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
You can use variables to programmatically disable/enable an user. <br />
<br />
<pre><br />
USER "acsctrl.user.<user_id> = <0,1>"<br />
</pre><br />
<br />
Where "1" enable an user, while "0" disable an user.<br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = <0,1><br />
$access.alarm.forced.<area_name>.<doorNum> = <0,1> <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = <0,1><br />
$access.alarm.held.<area_name>.<doorNum> = <0,1><br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=11000
Access Control
2023-07-11T13:01:12Z
<p>Enrico: /* USER commands */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
You can use variables to programmatically disable/enable an user. <br />
<br />
<pre><br />
USER "acsctrl.user.<user_id>" = <0,1><br />
</pre><br />
<br />
Where "1" enable an user, while "0" disable an user.<br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = <0,1><br />
$access.alarm.forced.<area_name>.<doorNum> = <0,1> <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = <0,1><br />
$access.alarm.held.<area_name>.<doorNum> = <0,1><br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=10999
Access Control
2023-07-11T10:16:08Z
<p>Enrico: /* Status variables */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = <0,1><br />
$access.alarm.forced.<area_name>.<doorNum> = <0,1> <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = <0,1><br />
$access.alarm.held.<area_name>.<doorNum> = <0,1><br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=10998
Access Control
2023-07-11T10:15:53Z
<p>Enrico: /* Status variables */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = <0/1><br />
$access.alarm.forced.<area_name>.<doorNum> = <0/1> <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = <0/1><br />
$access.alarm.held.<area_name>.<doorNum> = <0/1><br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=10997
Access Control
2023-07-11T10:15:02Z
<p>Enrico: /* Status variables */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum> = "0/1"<br />
$access.alarm.forced.<area_name>.<doorNum> = "0/1" <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum> = "0/1"<br />
$access.alarm.held.<area_name>.<doorNum> = "0/1"<br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=10996
Access Control
2023-07-11T10:14:28Z
<p>Enrico: /* Status variables */</p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum>, "0/1"<br />
$access.alarm.forced.<area_name>.<doorNum>, "0/1" <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door held''' the following variables are set:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum>, "0/1"<br />
$access.alarm.held.<area_name>.<doorNum>, "0/1"<br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=Access_Control&diff=10995
Access Control
2023-07-11T10:14:02Z
<p>Enrico: </p>
<hr />
<div>This plugin lets you manage an access control installation with [[IonoPi | Iono Pi]] (with any Wiegand keypad/card-reader) and/or [[Hidedgesolo | HID]] modules.<br />
<br />
Before using the plugin, configure all the needed I/O Servers and make sure they all communicate correctly with HSYCO. No user configuration will be needed on HID devices since the access rules are stored and managed by HSYCO.<br />
<br />
To view the access control interface go to the URL of the "access" project on your server; for instance <nowiki>https://192.168.0.50/hsycoserver/access</nowiki>.<br />
<br />
From the main page you can access the different sections:<br />
<br />
[[File:plugin_access_control_hid_menu.png|border|600px]]<br />
<br />
<br />
== Configuration ==<br />
To configure the installation go to the configuration page by clicking on the icon in the bottom-right corner.<br />
<br />
[[File:plugin_access_control_hid_config.png|border|600px]]<br />
<br />
This page lists all the defined areas and the detected modules.<br />
<br />
=== Areas ===<br />
An area represents a set of modules (doors) which share the same access rules.<br />
<br />
To create a new area, press the "+" button and provide a unique name.<br />
<br />
You can assign a camera to an area.<br />
<br />
To edit, remove, disable or re-enable an area, click on the corresponding entry in the list. Disabling an area means temporarily blocking the access to all users to all the doors belonging to the area, until re-enabled. If an area is not enabled, the corresponding entry in the list will be grayed out.<br />
<br />
=== Modules ===<br />
<br />
All the detected modules are shown in this list. If an entry appears of red color, it means that HSYCO cannot connect to the module.<br />
<br />
Clicking on an entry in the list it is possible to access and edit its configuration:<br />
<br />
* '''ID''': the ID assigned to the corresponding I/O Server. Cannot be modified.<br />
* '''Enabled''': if unchecked the module is disabled.<br />
* '''Stand-alone''': (only Iono Pi modules) check this option to save the access rules and the entire I/O configuration on the module itself so that it will continue working even if not connected to HSYCO.<br />
<br />
* '''Type''': <br />
** '''Single''': This module controls a single door with a single keypad.<br />
** '''Entrance/Exit''': This module controls a single door with 2 keypads, one for entrance and one for exit.<br />
** '''Two doors''': This module has two keypads controlling two different doors.<br />
** '''Programmer''': This module will not be used to control an entrance; instead, it will be used by the application as card reader to assign cards to users.<br />
** '''Two Programmers''': This module is connected to 2 readers used as programmers<br />
<br />
Depending on the type, for each door assign a descriptive name and an area the door belongs to and for each reader specify its mode:<br />
* '''Card''': users only use cards to access from this reader.<br />
* '''Pin''': users only use pin codes to access from this reader.<br />
* '''Card and Pin''': users use cards in combination with pin codes to access from this reader.<br />
* '''Card or Pin''': users use cards or pin codes to access from this reader.<br />
<br />
You can assign a camera to each door of the module.<br />
<br />
==== Iono Pi I/O Configuration ====<br />
You can configure inputs (digital and analog) and open collectors on Iono Pi module as it follows:<br />
*'''in: grant access''': when the corresponding input is high (or low, if inverted) the door associated to that input will be granted<br />
*'''in: door contact''': used to associate a door contact sensor to an input. You can associate a door alarm timeout to the corresponding door (the alarm timeout use is explained in the section '''Iono Pi Alarms''')<br />
*'''out: led''' (only for open collectors): used to command a led with the corresponding open collector<br />
<br />
You can set door open timeout (this will affect the opening time of the relays to which doors are associated).<br />
<br />
If you configure an input (digital or analog) as '''in: door contact''' you can set a door alarm timeout, when this timeout expires Hsyco will generate the alarm '''Alarm door left open'''<br />
<br />
If you flag the option '''Clock sync''' (available only in standalone mode) Iono Pi will synchronise its date/time with Hsyco<br />
<br />
[[File:plugin_access_control_ionopi_config.png|border|600px]]<br />
<br />
Example of Iono Pi module configuration<br />
<br />
==== Iono Pi Alarms ====<br />
If you have configured an input (digital or analog) on Iono Pi module as '''in: door contact''' Hsyco can generate two types of alarm:<br />
*'''Alarm door forced''': generated when the corresponding door is opened without being granted<br />
*'''Alarm door left open''': generated when the door alarm timeout is set. If the corresponding door is opened (after being granted) then that door must be closed before the timeout expire or Hsyco will generate this alarm<br />
<br />
Those alarms are written in the logs and generate USER events as reported down in section '''Events'''<br />
<br />
=== System access ===<br />
The '''System Users''' and '''Permissions''' buttons allow to manage the system users who will use the access control application and specify which functionalities to allow/deny to each user.<br />
<br />
=== Installation settings ===<br />
The '''Facility code''' can be set to the facility code of the used cards or to 0 to disable facility code checking; useful in case cards with different facility codes are used in the same installation.<br />
<br />
The '''Max delay between card and pin''' option allows to specify how much time can elapse between the reading of a card and the inputting of the pin code for readers with typology "Card and Pin".<br />
<br />
The '''Camera recording time''' option allows to specify the recording time (in seconds) of all cameras. This value can't be less than 5 seconds, by default it is 10 seconds.<br />
<br />
=== Backup ===<br />
The '''Backup''' button gives access to the list of previously saved backups and allows to create a backup of the current configuration.<br />
<br />
== User Groups ==<br />
[[File:plugin_access_control_hid_groups.png|border|600px]]<br />
<br />
This page lists all defined user groups and their access rules.<br />
<br />
To create a new group click on the "+" button at the bottom of the list. Set a descriptive name, select the areas accessible by this group and specify the daily schedules.<br />
<br />
The "Enabled" option, if unchecked, disables the access for all the users belonging to this group. <br />
<br />
The "Special dates" link takes you to a page where you can define exceptional dates on which the access rules are different from the daily schedules set in the user groups page. <br />
Each rule will be applied only to the groups selected in the corresponding field, for the groups not selected the normal daily schedule will apply.<br />
<br />
[[File:plugin_access_control_hid_spec_dates.png|border|600px]]<br />
<br />
== Users ==<br />
[[File:plugin_access_control_hid_users.png|border|600px]]<br />
<br />
This page lists the users of the facility divided by groups. Select a user group to see the users belonging to it.<br />
<br />
To add a user, select the user group to add it to and click on the "+" button. Then, enter the user name, optionally add a start and/or end date for the user to be active and specify the corresponding card number and/or pin code. <br />
If programmer modules are available it will be possible to use them to read the card numbers.<br />
<br />
Unchecking the "Enabled" option will deny the access of the user to all areas until re-enabled.<br />
<br />
To permanently remove a user, select the corresponding entry in the list, click on the "-" button and confirm the operation.<br />
<br />
== Doors status ==<br />
[[File:plugin_access_control_hid_doors.png|border|600px]]<br />
<br />
This section lists all the detected doors connected to the system. Select an entry to check its status or to send commands.<br />
<br />
An open door will be of yellow color in the list, while doors with active alarms will be of red color.<br />
<br />
If a camera is set for the specified door the corresponding live view of that camera is shown. If a camera is not set for the specified door but a camera is set for the corresponding area of the specified door then a live view of that camera is shown.<br />
<br />
== Camera recordings ==<br />
<br />
In the configuration page you can assign cameras to areas and/or doors.<br />
<br />
If a camera is assigned to a specified door a video will be recorded for every access attempt on that door. If there's no camera assigned to a specific door but a camera is assigned to an area then for every access attempt on each door associated with that area a video will be recorded.<br />
<br />
== Logs ==<br />
[[File:plugin_access_control_hid_log.png|border|600px]]<br />
<br />
In this page the last 1000 system events are reported. If an event was recorded by a camera a white symbol of a camera appears near the date and you can click on that event to open a popup showing the recorded video, as shown in the image below.<br />
<br />
[[File:plugin_access_control_hid_log_camera.png|border|600px]]<br />
<br />
It is possible to filter the entries clicking on the magnifier icon end setting the desired criteria.<br />
<br />
[[File:plugin_access_control_hid_log_search.png|border|600px]]<br />
<br />
The result entries can be exported via e-mail.<br />
<br />
Log entries are also permanently saved in CSV format in files contained in the directory "access_ctrl/logs" in the HSYCO root on the server.<br />
<br />
== Events ==<br />
The application generates USER events that can be used to add custom logic to access events.<br />
<br />
When a user is granted access the following USER events are triggered:<br />
<pre><br />
access.granted.door.<module_id> = <group_name><br />
access.granted.area.<area_name> = <group_name><br />
</pre><br />
<br />
When a user is denied access the following USER events are triggered:<br />
<pre><br />
access.denied.door.<module_id> = <group_name_if_available_or_empty_string><br />
access.denied.area.<area_name> = <group_name_if_available_or_empty_string><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door forced''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door forced><br />
access.alarm.<area_name> = <door forced><br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
access.alarm.<module_id>.<1,2> = <door left open><br />
access.alarm.<area_name> = <door left open><br />
</pre><br />
<br />
In correspondence of user start date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.startperiod = <user_name><br />
</pre><br />
<br />
In correspondence of user end date/time Hsyco will generate the following USER event:<br />
<pre><br />
access.user.endperiod = <user_name><br />
</pre><br />
<br />
== USER commands ==<br />
You can generate custom logs to the Access Control with the following user command:<br />
<pre><br />
USER "acsctrl.customlog" = "<door_name>;<area_name>;<message>"<br />
</pre><br />
<br />
You can send a grant command to a door with the following user command:<br />
<pre><br />
USER "acsctrl.manualgrant" = "<module_name>.<door_number>"<br />
</pre><br />
<br />
You can simulate inputs status change with the following user command (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.iomock.<module_id>.<di4,di5,di6,ai1,ai2>" = <0,1,analog_value><br />
</pre><br />
<br />
You can simulate Wiegand reader events with the following user commands (not working in standalone mode):<br />
<pre><br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to false<br />
USER "acsctrl.readermock.<module_id>.wiegand.<1,2>" = "<bits>/<val>" //if option "wiegandbits" of Iono Pi I/O Server is set to true<br />
</pre><br />
<br />
== Status variables ==<br />
When Hsyco generates the alarm '''Alarm door forced''' the following variables are set:<br />
<pre><br />
$access.alarm.forced.<module_id>.<doorNum>, "0/1"<br />
$access.alarm.forced.<area_name>.<doorNum>, "0/1" <br />
</pre><br />
<br />
When Hsyco generates the alarm '''Alarm door left open''' the following USER events are triggered:<br />
<pre><br />
$access.alarm.held.<module_id>.<doorNum>, "0/1"<br />
$access.alarm.held.<area_name>.<doorNum>, "0/1"<br />
</pre><br />
<br />
== Control variables ==<br />
You can use variables to programmatically disable groups. To this end set the corresponding variable to '0':<br />
<pre><br />
$access.group.<group_name>.enabled = 0<br />
</pre><br />
In the above code <group_name> must be set to the name of the group (case insensitive) with spaces replaced by '_'.<br />
<br />
For instance, to disable "My Group":<br />
<pre><br />
$access.group.my_group.enabled = 0<br />
</pre><br />
<br />
Any value other than '0' assigned to the variable will be ignored.</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10991
InimPrevidia
2023-06-30T09:27:30Z
<p>Enrico: </p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|220V voltage is ok<br />
|-<br />
|1<br />
|R<br />
|220V fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.alarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in alarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.prealarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in prealarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <o> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <o> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|W<br />
|de-activate io <n><br />
|-<br />
|1<br />
|W<br />
|activate io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n><br /> *compact version only<br />
|disable<br />
|W<br />
|disable io <n><br />
|-<br />
|enable<br />
|W<br />
|enable io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10990
InimPrevidia
2023-06-30T08:19:24Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.alarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in alarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.prealarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in prealarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <o> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <o> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|W<br />
|de-activate io <n><br />
|-<br />
|1<br />
|W<br />
|activate io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n><br /> *compact version only<br />
|disable<br />
|W<br />
|disable io <n><br />
|-<br />
|enable<br />
|W<br />
|enable io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10989
InimPrevidia
2023-06-29T12:22:43Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.alarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in alarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.prealarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in prealarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <o> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <o> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|W<br />
|de-activate io <n><br />
|-<br />
|1<br />
|W<br />
|activate io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10988
InimPrevidia
2023-06-29T12:12:14Z
<p>Enrico: </p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.alarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in alarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.prealarm.<n> <br /> n=1..16 <br /><br />
|0<br />
|R<br />
|loop <n> has at least one device in prealarm<br />
|-<br />
|1<br />
|R<br />
|loop <n> no devices in prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <o> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <o> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=I/O_Servers&diff=10987
I/O Servers
2023-06-28T09:58:53Z
<p>Enrico: </p>
<hr />
<div>This page lists all the available I/O Servers provided by HSYCO and links to their application note.<br />
<br />
For an introduction on I/O Servers and how to use the application notes refer to [[Introduction to I/O Servers]].<br />
<br /><br />
<br /><br />
<br />
{|<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Airzone Logo.png|100x40px|link=Airzone]]<br />
|[[Airzone]]<br />
|Airzone HVAC control system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Alert5 Logo.png|100x40px|link=Alert5]]<br />
|[[Alert5]]<br />
|Felma Alert5 system <br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arduino Logo.png|100x40px|link=Arduino]]<br />
|[[Arduino]]<br />
|Arduino Uno, Arduino Ethernet, Arduino Due and other compatible boards<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arteco Logo.png|100x40px|link=Arteco]]<br />
|[[Arteco]]<br />
|Arteco Everywhere general-purpose digital input-output Ethernet controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arteco Logo.png|100x40px|link=ArtecoOC]]<br />
|[[ArtecoOC]]<br />
|Arteco Next Open Connector protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Aton Logo.png|100x40px|link=Aton]]<br />
|[[Aton]]<br />
|Aton AH66T multi-room audio system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ats Logo.png|100x40px|link=Ats]]<br />
|[[Ats]]<br />
|Aritech Master ATS security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Avigilon Logo.png|100x40px|link=Avigilon]]<br />
|[[Avigilon]]<br />
|Avigilon Control Center Server 7<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Avigilon Logo.png|100x40px|link= AvigilonWEB]]<br />
|[[AvigilonWEB]]<br />
|Avigilon Control Center Server 7 new API<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Axis Logo.png|100x40px|link=AxisDecoder]]<br />
|[[AxisDecoder]]<br />
|Control and streaming to the AXIS Video Decoder<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server BACnet Logo.png|100x40px|link=BACnet]]<br />
|[[BACnet]]<br />
|BACnet/IP client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bentel Logo.png|100x40px|link=Bentel]]<br />
|[[Bentel]]<br />
|Bentel KYO 320 security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bosch Logo.jpeg|100x40px|link=Boschfpa]]<br />
|[[Boschfpa]]<br />
|Bosch FPA-5000 modular fire panel system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bosch Logo.jpeg|100x40px|link=Boschmap]]<br />
|[[Boschmap]]<br />
|Bosch MAP security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Cradlepoint Logo.png|100x40px|link=Cradlepoint]]<br />
|[[Cradlepoint]]<br />
|Cradlepoint IBR6xx routers<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server CSx75 Logo.png|100x40px|link=CSx75]]<br />
|[[CSx75]]<br />
|Aritech Comfort CSx75 security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Contatto Logo.png|100x40px|link=Contatto]]<br />
|[[Contatto]]<br />
|Duemmegi Contatto proprietary bus building automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Daikin Logo.jpeg|100x40px|link=Daikin]]<br />
|[[Daikin]]<br />
|Daikin’s VRF systems with Intelligent Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Daikin Logo.jpeg|100x40px|link=Daikinrc]]<br />
|[[Daikinrc]]<br />
|Daikin room air conditioner series CTXM, ATXM and FXTM units with the Daikin wireless LAN adapter<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO_Server_Xensity_Logo.jpg|100x40px|link= Dea Xensity]]<br />
|[[Dea Xensity]]<br />
|Dea Xensity indoor shock detectors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO_Detnov_Logo.png|100x40px|link= Detnov]]<br />
|[[Detnov]]<br />
|Detnov fire detection panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Domino Logo.png|100x40px|link=Domino]]<br />
|[[Domino]]<br />
|Duemmegi Domino proprietary bus building automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server DUELUX Logo.png|100x40px|link=DUELUX]]<br />
|[[DUELUX]]<br />
|Duemmegi DUELUX DALI-2 system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Dummy Logo.png|100x40px|link=Dummy]]<br />
|[[Dummy]]<br />
|a special I/O Server that simulates lighting and automation devices and can be used for demonstrations, prototyping and as a virtual I/O Server to implement complex control logic<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Elmo Logo.png|100x40px|link=Elmo]]<br />
|[[Elmo]]<br />
|EL.MO. ETR security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Elsner Logo.jpeg|100x40px|link=Elsner]]<br />
|[[Elsner]]<br />
|Elsner’s Modbus version of the P03/3 weather station<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Enttec Logo.png|100x40px|link=Enttec]]<br />
|[[Enttec]]<br />
|Enttec DMX USB PRO adapter that allows to control any DMX-512 standard bus.<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server ESCVP Logo.png|100x40px|link=ESC/VP]]<br />
|[[ESC/VP]]<br />
|Epson’s Networked projectors that support the ESC/VP control protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Server Esser Logo.png|100x40px|link=Esser]]<br />
|[[Esser]]<br />
|Esser fire detection panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server ExoSensePi Logo.png|100x40px|link=ExoSensePi]]<br />
|[[ExoSensePi]]<br />
|Sfera Labs Exo Sense Pi environment multi-sensor module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Fp2000 Logo.png|100x40px|link=Fp2000]]<br />
|[[Fp2000]]<br />
|GE UTC Interlogix fire panels based on the FP2000 protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Fias Logo.png|100x40px|link=Fias]]<br />
|[[Fias]]<br />
|Oracle's FIAS (Fidelio Interface Application Specification) hospitality PMS systems<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Giacomini Logo.gif|100x40px|link=Giacomini]]<br />
|[[Giacomini]]<br />
|GKBUS GiakoClima HVAC system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server GSM Logo.png|100x40px|link=GSM]]<br />
|[[GSM]]<br />
|standard GSM modems for SMS messages and voice call events<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Galaxy Logo.png|100x40px|link=Galaxy]]<br />
|[[Galaxy]]<br />
|Honeywell Galaxy Dimension security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Google Calendar Logo.png|100x40px|link=Google_Calendar]]<br />
|[[Google Calendar]]<br />
|Use Google Calendar to schedule events<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Guardall Logo.png|100x40px|link=Guardall]]<br />
|[[Guardall]]<br />
|Guardall QX32i, PX80 and PX500 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Heos Logo.png|100x40px|link=Heos]]<br />
|[[Heos]]<br />
|Heos WiFi audio system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hephais Logo.png|100x40px|link=Hephais]]<br />
|[[Hephais]]<br />
|Hephais 1600 fire panel with Modbus interface<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hesa Logo.png|100x40px|link=Hesa]]<br />
|[[Hesa]]<br />
|Hesa Quaranta Q15, Q50 and Q100 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hidedgesolo Logo.png|100x40px|link=Hidedgesolo]]<br />
|[[Hidedgesolo]]<br />
|HID’s Edge Solo stand-alone networked EdgeReader access control solution<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Remote Logo.png|100x40px|link=HSYCO Remote]]<br />
|[[HSYCO Remote|HSYCO]]<br />
|Access remote HSYCO servers data-points<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Hue Logo.png|100x40px|link=Hue]]<br />
|[[Hue]]<br />
|Philips Hue wireless lighting<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:HWgroup Logo.png|100x40px|link=HwgIO]]<br />
|[[HwgIO]]<br />
|HW group I/O Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:HWgroup Logo.png|100x40px|link=HwgMonitor]]<br />
|[[HwgMonitor]]<br />
|HW group monitoring devices<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IFTTT Logo.png|100x27px|link=IFTTT]]<br />
|[[IFTTT]]<br />
|IFTTT Platform<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Inim Logo.png|100x40px|link=Inim]]<br />
|[[Inim]]<br />
|Inim SmartLiving 515, 1050 and 10100 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Inim Logo.png|100x40px|link=InimPrevidia]]<br />
|[[InimPrevidia]]<br />
|Inim Previdia Compact, Mac, Ultra fire panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Iono Logo.png|100x40px|link=Iono]]<br />
|[[Iono]]<br />
|Sfera Labs Iono input/output module based on Arduino<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IonoPi Logo.png|100x40px|link=IonoPi]]<br />
|[[IonoPi]]<br />
|Sfera Labs Iono Pi input/output module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IonoPi Logo.png|100x40px|link=IonoPiMax]]<br />
|[[IonoPiMax]]<br />
|Sfera Labs Iono Pi Max input/output module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Kilsen Logo.png|100x40px|link=Kilsen]]<br />
|[[Kilsen]]<br />
|Kilsen KFP-A fire security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Kissbox Logo.png|100x40px|link=Kissbox]]<br />
|[[Kissbox]]<br />
|Kissbox DMX-512 adapter that allows to control any DMX-512 standard bus<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server KNX Logo.png|100x40px|link=KNX]]<br />
|[[KNX]]<br />
|KNX/EIB protocol via standard KNXnet/IP gateways<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ksenia Logo.png|100x40px|link=Ksenia]]<br />
|[[Ksenia]]<br />
|KSENIA lares 16IP/48IP/128IP security systems<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ksenia Logo.png|100x40px|link=Lares4]]<br />
|[[Lares4]]<br />
|KSENIA lares 4 security system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server LoRaWAN LOGO.png|100x40px|link=LoRaWAN]]<br />
|[[LoRaWAN]]<br />
|LoRaWAN networks<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MasterBus Logo.png|100x40px|link=MasterBus]]<br />
|[[MasterBus]]<br />
|Mastervolt's MasterBus protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Mews logo.png|100x40px|link=MasterBus]]<br />
|[[Mews]]<br />
|Mews Hospitality Management<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Mitsubishi Logo.jpeg|100x40px|link=Mitsubishi]]<br />
|[[Mitsubishi]]<br />
|Mitsubishi’s VRV systems that support the M-NET proprietary protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Modbus Logo.jpg|100x40px|link=Modbus]]<br />
|[[Modbus]]<br />
|HSYCO acts as a Modbus TCP client or Modbus RTU master<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Modbus Logo.jpg|100x40px|link=Modbus_Server]]<br />
|[[Modbus Server]]<br />
|a Modbus TCP/IP server, allowing external Modbus clients to connect to HSYCO and perform any standard Modbus function<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:ubiquiti_mpower.png|100x40px|link=MPower]]<br />
|[[MPower]]<br />
|Ubiquiti mFi mPower controllable power outlets<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MQTT Broker Logo.png|100x40px|link=MQTTBROKER]]<br />
|[[MQTTBROKER]]<br />
|a MQTT server, allowing external MQTT clients to connect to HSYCO<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MQTT Client Logo.png|100x40px|link=MQTTCLIENT]]<br />
|[[MQTTCLIENT]]<br />
|a MQTT client, allowing Hsyco to connect to external MQTT broker<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MyHome Logo.png|100x40px|link=MyHome]]<br />
|[[MyHome]]<br />
|BTicino/Legrand My Home proprietary bus home automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Netatmo Logo.png|100x40px|link=Netatmo]]<br />
|[[Netatmo]]<br />
|Netatmo smart radiator valves<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server NETIO Logo.png|100x40px|link=NETIO]]<br />
|[[NETIO]]<br />
|NETIO power sockets<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Networx Logo.png|100x40px|link=Networx]]<br />
|[[Networx]]<br />
|NetworX security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Niko Logo.png|100x40px|link=NIKO]]<br />
|[[NIKO]]<br />
|Niko Connected Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server NMEA Logo.jpg|100x40px|link=NMEA]]<br />
|[[NMEA]]<br />
|NMEA 0183 TCP client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Notifier Logo.jpg|100x40px|link=Notifier]]<br />
|[[Notifier]]<br />
|AM-2000 AM-4000 AM-6000 fire panels with Modbus interface<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Nuvo.png|100x40px|link=Nuvo]]<br />
|[[Nuvo]]<br />
|NuVo multi-room audio<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Paradox Logo.png|100x40px|link=Paradox]]<br />
|[[Paradox]]<br />
|Paradox EVO 48/192 and EVOHD security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server PowerOne Logo.png|100x40px|link=PowerOne]]<br />
|[[PowerOne]]<br />
|Aurora’s PowerOne inverters with support for Aurora proprietary communication protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Protege Logo.png|100x40px|link=Protege]]<br />
|[[Protege]]<br />
|ICT Protege security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server APC Logo.png|100x40px|link=RACKPDU]]<br />
|[[RACKPDU]]<br />
|Rack PDU by APC<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server RayCONTROL.png|100x40px|link=RayCONTROL]]<br />
|[[RayCONTROL]]<br />
|HVAC control system by FCC Planterm<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Redscan Logo.png|100x40px|link=Redscan]]<br />
|[[Redscan]]<br />
|OPTEX REDSCAN laser scan detectors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SamsungTV Logo.jpg|100x40px|link=SamsungTV]]<br />
|[[SamsungTV]]<br />
|Samsung Smart TV<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Satel Logo.jpg|100x40px|link=Satel]]<br />
|[[Satel]]<br />
|Satel security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vanderbilt Logo.png|100x40px|link=Siemens Vanderbilt Edp]]<br />
|[[Siemens Vanderbilt Edp]]<br />
|Siemens Vanderbilt Edp panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SIGFOX Logo.png|100x40px|link=SIGFOX]]<br />
|[[SIGFOX]]<br />
|Sigfox Cloud<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SIP Logo.png|100x40px|link=Sip]]<br />
|[[Sip]]<br />
|SIP VoIP Client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SMTP Logo.png|100x40px|link=SMTPSERVER]]<br />
|[[SMTPSERVER]]<br />
|Simple Mail Transfer Protocol (SMTP) server<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Sonos Logo.png|100x40px|link=Sonos]]<br />
|[[Sonos]]<br />
|Sonos wireless HiFi system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SSH Logo.png|100x40px|link=SSH]]<br />
|[[SSH]]<br />
|SSH Client for remote shell and secure file copy<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Strato Logo.png|100x40px|link=Strato]]<br />
|[[Strato]]<br />
|Sfera Labs Strato expansion board for Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server System Logo.png|100x40px|link=System]]<br />
|[[System]]<br />
|HSYCO Server performance and system monitor<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tecnoalarm Logo.png|100x40px|link=Tecnoalarm]]<br />
|[[Tecnoalarm]]<br />
|Tecnoalarm Tecno-Out security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tecnofire Logo.png|100x40px|link=Tecnofire]]<br />
|[[Tecnofire]]<br />
| Tecnofire Tecno-Out fire panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Teledata Logo.png|100x40px|link=Teledata]]<br />
|[[Teledata]]<br />
|Teledata<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Telegram Logo.png|100x40px|link=Telegram]]<br />
|[[Telegram]]<br />
|Telegram Bot<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Texecom Logo.png|100x40px|link=Texecom]]<br />
|[[Texecom]]<br />
|Texecom security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server TLABQ logo.png|100x40px|link=TLABQ]]<br />
|[[TLABQ]]<br />
|TLAB-Q security system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tridonic Logo.png|100x40px|link=Tridonic]]<br />
|[[Tridonic]]<br />
|Dali protocol via the Tridonic SCI2 interface module<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server TSEC Logo.png|100x40px|link= TSECMACS]]<br />
|[[TSECMACS]]<br />
|TSEC MACS is a perimeter anti-intrusion system for rigid and semi-rigid metal fences<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Victron Logo.png|100x40px|link=VEDIRECT]]<br />
|[[VEDIRECT]]<br />
|Victron Energy VE.Direct protocol for the BlueSolar MPPT Charge 70/15 and the BMV-700 series battery monitors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vivaldifreenet Logo.png|100x40px|link=Vivaldifreenet]]<br />
|[[Vivaldifreenet]]<br />
|Vivaldi Giove FREENETMK2 in-wall stand alone amplifier with RS-485<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Wolf8Access Logo.png|100x40px|link=Wolf8Access]]<br />
|[[Wolf8Access]]<br />
|Wolf 8Access access control system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server WXonline Logo.png|100x40px|link=WXonline]]<br />
|[[WXonline]]<br />
|Internet-based weather conditions and forecast data acquisition using OpenWeatherMap!’s data<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vaisala Logo.png|100x40px|link=WXT520]]<br />
|[[WXT520]]<br />
|Vaisala WXT520 weather station<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Wyrestorm Logo.png|100x40px|link=Wyrestorm]]<br />
|[[Wyrestorm]]<br />
|Wyrestorm MX-0808-PP, MX-0606-PP and MX-0404-PP HDMI matrix<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Xgen Logo.png|100x40px|link=XGenConnect]]<br />
|[[XGenConnect]]<br />
|Hesa XGenConnect security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Yamaha RX-V Logo.png|100x40px|link= YamahaEc]]<br />
|[[YamahaEc]]<br />
|Yamaha Extended Control communication protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Yamaha RX-V Logo.png|100x40px|link=Yamaha RX]]<br />
|style="white-space:nowrap"|[[Yamaha RX]]<br />
|Yamaha’s RX family of networked A/V receivers<br />
|-<br />
|}</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=I/O_Servers&diff=10986
I/O Servers
2023-06-28T09:58:22Z
<p>Enrico: </p>
<hr />
<div>This page lists all the available I/O Servers provided by HSYCO and links to their application note.<br />
<br />
For an introduction on I/O Servers and how to use the application notes refer to [[Introduction to I/O Servers]].<br />
<br /><br />
<br /><br />
<br />
{|<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Airzone Logo.png|100x40px|link=Airzone]]<br />
|[[Airzone]]<br />
|Airzone HVAC control system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Alert5 Logo.png|100x40px|link=Alert5]]<br />
|[[Alert5]]<br />
|Felma Alert5 system <br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arduino Logo.png|100x40px|link=Arduino]]<br />
|[[Arduino]]<br />
|Arduino Uno, Arduino Ethernet, Arduino Due and other compatible boards<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arteco Logo.png|100x40px|link=Arteco]]<br />
|[[Arteco]]<br />
|Arteco Everywhere general-purpose digital input-output Ethernet controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Arteco Logo.png|100x40px|link=ArtecoOC]]<br />
|[[ArtecoOC]]<br />
|Arteco Next Open Connector protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Aton Logo.png|100x40px|link=Aton]]<br />
|[[Aton]]<br />
|Aton AH66T multi-room audio system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ats Logo.png|100x40px|link=Ats]]<br />
|[[Ats]]<br />
|Aritech Master ATS security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Avigilon Logo.png|100x40px|link=Avigilon]]<br />
|[[Avigilon]]<br />
|Avigilon Control Center Server 7<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Avigilon Logo.png|100x40px|link= AvigilonWEB]]<br />
|[[AvigilonWEB]]<br />
|Avigilon Control Center Server 7 new API<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Axis Logo.png|100x40px|link=AxisDecoder]]<br />
|[[AxisDecoder]]<br />
|Control and streaming to the AXIS Video Decoder<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server BACnet Logo.png|100x40px|link=BACnet]]<br />
|[[BACnet]]<br />
|BACnet/IP client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bentel Logo.png|100x40px|link=Bentel]]<br />
|[[Bentel]]<br />
|Bentel KYO 320 security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bosch Logo.jpeg|100x40px|link=Boschfpa]]<br />
|[[Boschfpa]]<br />
|Bosch FPA-5000 modular fire panel system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Bosch Logo.jpeg|100x40px|link=Boschmap]]<br />
|[[Boschmap]]<br />
|Bosch MAP security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Cradlepoint Logo.png|100x40px|link=Cradlepoint]]<br />
|[[Cradlepoint]]<br />
|Cradlepoint IBR6xx routers<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server CSx75 Logo.png|100x40px|link=CSx75]]<br />
|[[CSx75]]<br />
|Aritech Comfort CSx75 security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Contatto Logo.png|100x40px|link=Contatto]]<br />
|[[Contatto]]<br />
|Duemmegi Contatto proprietary bus building automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Daikin Logo.jpeg|100x40px|link=Daikin]]<br />
|[[Daikin]]<br />
|Daikin’s VRF systems with Intelligent Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Daikin Logo.jpeg|100x40px|link=Daikinrc]]<br />
|[[Daikinrc]]<br />
|Daikin room air conditioner series CTXM, ATXM and FXTM units with the Daikin wireless LAN adapter<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO_Server_Xensity_Logo.jpg|100x40px|link= Dea Xensity]]<br />
|[[Dea Xensity]]<br />
|Dea Xensity indoor shock detectors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO_Detnov_Logo.png|100x40px|link= Detnov]]<br />
|[[Detnov]]<br />
|Detnov fire detection panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Domino Logo.png|100x40px|link=Domino]]<br />
|[[Domino]]<br />
|Duemmegi Domino proprietary bus building automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server DUELUX Logo.png|100x40px|link=DUELUX]]<br />
|[[DUELUX]]<br />
|Duemmegi DUELUX DALI-2 system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Dummy Logo.png|100x40px|link=Dummy]]<br />
|[[Dummy]]<br />
|a special I/O Server that simulates lighting and automation devices and can be used for demonstrations, prototyping and as a virtual I/O Server to implement complex control logic<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Elmo Logo.png|100x40px|link=Elmo]]<br />
|[[Elmo]]<br />
|EL.MO. ETR security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Elsner Logo.jpeg|100x40px|link=Elsner]]<br />
|[[Elsner]]<br />
|Elsner’s Modbus version of the P03/3 weather station<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Enttec Logo.png|100x40px|link=Enttec]]<br />
|[[Enttec]]<br />
|Enttec DMX USB PRO adapter that allows to control any DMX-512 standard bus.<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server ESCVP Logo.png|100x40px|link=ESC/VP]]<br />
|[[ESC/VP]]<br />
|Epson’s Networked projectors that support the ESC/VP control protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Server Esser Logo.png|100x40px|link=Esser]]<br />
|[[Esser]]<br />
|Esser fire detection panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server ExoSensePi Logo.png|100x40px|link=ExoSensePi]]<br />
|[[ExoSensePi]]<br />
|Sfera Labs Exo Sense Pi environment multi-sensor module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Fp2000 Logo.png|100x40px|link=Fp2000]]<br />
|[[Fp2000]]<br />
|GE UTC Interlogix fire panels based on the FP2000 protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Fias Logo.png|100x40px|link=Fias]]<br />
|[[Fias]]<br />
|Oracle's FIAS (Fidelio Interface Application Specification) hospitality PMS systems<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Giacomini Logo.gif|100x40px|link=Giacomini]]<br />
|[[Giacomini]]<br />
|GKBUS GiakoClima HVAC system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server GSM Logo.png|100x40px|link=GSM]]<br />
|[[GSM]]<br />
|standard GSM modems for SMS messages and voice call events<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Galaxy Logo.png|100x40px|link=Galaxy]]<br />
|[[Galaxy]]<br />
|Honeywell Galaxy Dimension security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Google Calendar Logo.png|100x40px|link=Google_Calendar]]<br />
|[[Google Calendar]]<br />
|Use Google Calendar to schedule events<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Guardall Logo.png|100x40px|link=Guardall]]<br />
|[[Guardall]]<br />
|Guardall QX32i, PX80 and PX500 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Heos Logo.png|100x40px|link=Heos]]<br />
|[[Heos]]<br />
|Heos WiFi audio system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hephais Logo.png|100x40px|link=Hephais]]<br />
|[[Hephais]]<br />
|Hephais 1600 fire panel with Modbus interface<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hesa Logo.png|100x40px|link=Hesa]]<br />
|[[Hesa]]<br />
|Hesa Quaranta Q15, Q50 and Q100 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Hidedgesolo Logo.png|100x40px|link=Hidedgesolo]]<br />
|[[Hidedgesolo]]<br />
|HID’s Edge Solo stand-alone networked EdgeReader access control solution<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Remote Logo.png|100x40px|link=HSYCO Remote]]<br />
|[[HSYCO Remote|HSYCO]]<br />
|Access remote HSYCO servers data-points<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Hue Logo.png|100x40px|link=Hue]]<br />
|[[Hue]]<br />
|Philips Hue wireless lighting<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:HWgroup Logo.png|100x40px|link=HwgIO]]<br />
|[[HwgIO]]<br />
|HW group I/O Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:HWgroup Logo.png|100x40px|link=HwgMonitor]]<br />
|[[HwgMonitor]]<br />
|HW group monitoring devices<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IFTTT Logo.png|100x27px|link=IFTTT]]<br />
|[[IFTTT]]<br />
|IFTTT Platform<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Inim Logo.png|100x40px|link=Inim]]<br />
|[[Inim]]<br />
|Inim SmartLiving 515, 1050 and 10100 security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Inim Logo.png|100x40px|link=InimPrevidia]]<br />
|[[Inim]]<br />
|Inim Previdia Compact, Mac, Ultra fire panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Iono Logo.png|100x40px|link=Iono]]<br />
|[[Iono]]<br />
|Sfera Labs Iono input/output module based on Arduino<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IonoPi Logo.png|100x40px|link=IonoPi]]<br />
|[[IonoPi]]<br />
|Sfera Labs Iono Pi input/output module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server IonoPi Logo.png|100x40px|link=IonoPiMax]]<br />
|[[IonoPiMax]]<br />
|Sfera Labs Iono Pi Max input/output module based on Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Kilsen Logo.png|100x40px|link=Kilsen]]<br />
|[[Kilsen]]<br />
|Kilsen KFP-A fire security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Kissbox Logo.png|100x40px|link=Kissbox]]<br />
|[[Kissbox]]<br />
|Kissbox DMX-512 adapter that allows to control any DMX-512 standard bus<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server KNX Logo.png|100x40px|link=KNX]]<br />
|[[KNX]]<br />
|KNX/EIB protocol via standard KNXnet/IP gateways<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ksenia Logo.png|100x40px|link=Ksenia]]<br />
|[[Ksenia]]<br />
|KSENIA lares 16IP/48IP/128IP security systems<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Ksenia Logo.png|100x40px|link=Lares4]]<br />
|[[Lares4]]<br />
|KSENIA lares 4 security system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server LoRaWAN LOGO.png|100x40px|link=LoRaWAN]]<br />
|[[LoRaWAN]]<br />
|LoRaWAN networks<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MasterBus Logo.png|100x40px|link=MasterBus]]<br />
|[[MasterBus]]<br />
|Mastervolt's MasterBus protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Mews logo.png|100x40px|link=MasterBus]]<br />
|[[Mews]]<br />
|Mews Hospitality Management<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Mitsubishi Logo.jpeg|100x40px|link=Mitsubishi]]<br />
|[[Mitsubishi]]<br />
|Mitsubishi’s VRV systems that support the M-NET proprietary protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Modbus Logo.jpg|100x40px|link=Modbus]]<br />
|[[Modbus]]<br />
|HSYCO acts as a Modbus TCP client or Modbus RTU master<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Modbus Logo.jpg|100x40px|link=Modbus_Server]]<br />
|[[Modbus Server]]<br />
|a Modbus TCP/IP server, allowing external Modbus clients to connect to HSYCO and perform any standard Modbus function<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:ubiquiti_mpower.png|100x40px|link=MPower]]<br />
|[[MPower]]<br />
|Ubiquiti mFi mPower controllable power outlets<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MQTT Broker Logo.png|100x40px|link=MQTTBROKER]]<br />
|[[MQTTBROKER]]<br />
|a MQTT server, allowing external MQTT clients to connect to HSYCO<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MQTT Client Logo.png|100x40px|link=MQTTCLIENT]]<br />
|[[MQTTCLIENT]]<br />
|a MQTT client, allowing Hsyco to connect to external MQTT broker<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server MyHome Logo.png|100x40px|link=MyHome]]<br />
|[[MyHome]]<br />
|BTicino/Legrand My Home proprietary bus home automation system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Netatmo Logo.png|100x40px|link=Netatmo]]<br />
|[[Netatmo]]<br />
|Netatmo smart radiator valves<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server NETIO Logo.png|100x40px|link=NETIO]]<br />
|[[NETIO]]<br />
|NETIO power sockets<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Networx Logo.png|100x40px|link=Networx]]<br />
|[[Networx]]<br />
|NetworX security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Niko Logo.png|100x40px|link=NIKO]]<br />
|[[NIKO]]<br />
|Niko Connected Controller<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server NMEA Logo.jpg|100x40px|link=NMEA]]<br />
|[[NMEA]]<br />
|NMEA 0183 TCP client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Notifier Logo.jpg|100x40px|link=Notifier]]<br />
|[[Notifier]]<br />
|AM-2000 AM-4000 AM-6000 fire panels with Modbus interface<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:Nuvo.png|100x40px|link=Nuvo]]<br />
|[[Nuvo]]<br />
|NuVo multi-room audio<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Paradox Logo.png|100x40px|link=Paradox]]<br />
|[[Paradox]]<br />
|Paradox EVO 48/192 and EVOHD security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server PowerOne Logo.png|100x40px|link=PowerOne]]<br />
|[[PowerOne]]<br />
|Aurora’s PowerOne inverters with support for Aurora proprietary communication protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Protege Logo.png|100x40px|link=Protege]]<br />
|[[Protege]]<br />
|ICT Protege security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server APC Logo.png|100x40px|link=RACKPDU]]<br />
|[[RACKPDU]]<br />
|Rack PDU by APC<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server RayCONTROL.png|100x40px|link=RayCONTROL]]<br />
|[[RayCONTROL]]<br />
|HVAC control system by FCC Planterm<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Redscan Logo.png|100x40px|link=Redscan]]<br />
|[[Redscan]]<br />
|OPTEX REDSCAN laser scan detectors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SamsungTV Logo.jpg|100x40px|link=SamsungTV]]<br />
|[[SamsungTV]]<br />
|Samsung Smart TV<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Satel Logo.jpg|100x40px|link=Satel]]<br />
|[[Satel]]<br />
|Satel security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vanderbilt Logo.png|100x40px|link=Siemens Vanderbilt Edp]]<br />
|[[Siemens Vanderbilt Edp]]<br />
|Siemens Vanderbilt Edp panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SIGFOX Logo.png|100x40px|link=SIGFOX]]<br />
|[[SIGFOX]]<br />
|Sigfox Cloud<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SIP Logo.png|100x40px|link=Sip]]<br />
|[[Sip]]<br />
|SIP VoIP Client<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SMTP Logo.png|100x40px|link=SMTPSERVER]]<br />
|[[SMTPSERVER]]<br />
|Simple Mail Transfer Protocol (SMTP) server<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Sonos Logo.png|100x40px|link=Sonos]]<br />
|[[Sonos]]<br />
|Sonos wireless HiFi system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server SSH Logo.png|100x40px|link=SSH]]<br />
|[[SSH]]<br />
|SSH Client for remote shell and secure file copy<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Strato Logo.png|100x40px|link=Strato]]<br />
|[[Strato]]<br />
|Sfera Labs Strato expansion board for Raspberry Pi<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server System Logo.png|100x40px|link=System]]<br />
|[[System]]<br />
|HSYCO Server performance and system monitor<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tecnoalarm Logo.png|100x40px|link=Tecnoalarm]]<br />
|[[Tecnoalarm]]<br />
|Tecnoalarm Tecno-Out security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tecnofire Logo.png|100x40px|link=Tecnofire]]<br />
|[[Tecnofire]]<br />
| Tecnofire Tecno-Out fire panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Teledata Logo.png|100x40px|link=Teledata]]<br />
|[[Teledata]]<br />
|Teledata<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Telegram Logo.png|100x40px|link=Telegram]]<br />
|[[Telegram]]<br />
|Telegram Bot<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Texecom Logo.png|100x40px|link=Texecom]]<br />
|[[Texecom]]<br />
|Texecom security panels<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server TLABQ logo.png|100x40px|link=TLABQ]]<br />
|[[TLABQ]]<br />
|TLAB-Q security system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Tridonic Logo.png|100x40px|link=Tridonic]]<br />
|[[Tridonic]]<br />
|Dali protocol via the Tridonic SCI2 interface module<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server TSEC Logo.png|100x40px|link= TSECMACS]]<br />
|[[TSECMACS]]<br />
|TSEC MACS is a perimeter anti-intrusion system for rigid and semi-rigid metal fences<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Victron Logo.png|100x40px|link=VEDIRECT]]<br />
|[[VEDIRECT]]<br />
|Victron Energy VE.Direct protocol for the BlueSolar MPPT Charge 70/15 and the BMV-700 series battery monitors<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vivaldifreenet Logo.png|100x40px|link=Vivaldifreenet]]<br />
|[[Vivaldifreenet]]<br />
|Vivaldi Giove FREENETMK2 in-wall stand alone amplifier with RS-485<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Wolf8Access Logo.png|100x40px|link=Wolf8Access]]<br />
|[[Wolf8Access]]<br />
|Wolf 8Access access control system<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server WXonline Logo.png|100x40px|link=WXonline]]<br />
|[[WXonline]]<br />
|Internet-based weather conditions and forecast data acquisition using OpenWeatherMap!’s data<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Vaisala Logo.png|100x40px|link=WXT520]]<br />
|[[WXT520]]<br />
|Vaisala WXT520 weather station<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Wyrestorm Logo.png|100x40px|link=Wyrestorm]]<br />
|[[Wyrestorm]]<br />
|Wyrestorm MX-0808-PP, MX-0606-PP and MX-0404-PP HDMI matrix<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Xgen Logo.png|100x40px|link=XGenConnect]]<br />
|[[XGenConnect]]<br />
|Hesa XGenConnect security panel<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Yamaha RX-V Logo.png|100x40px|link= YamahaEc]]<br />
|[[YamahaEc]]<br />
|Yamaha Extended Control communication protocol<br />
|-<br />
|style="text-align:center; padding-right:20px; padding-left:20px; padding-bottom:10px; padding-top:10px"|[[File:IO Server Yamaha RX-V Logo.png|100x40px|link=Yamaha RX]]<br />
|style="white-space:nowrap"|[[Yamaha RX]]<br />
|Yamaha’s RX family of networked A/V receivers<br />
|-<br />
|}</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10984
InimPrevidia
2023-06-20T13:30:43Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <o> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <o> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <o> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10983
InimPrevidia
2023-06-20T13:29:29Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|enable<br />
|W<br />
|enable channel <c> of module ifm4io <n><br />
|-<br />
|disable<br />
|W<br />
|disable channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10982
InimPrevidia
2023-06-20T13:08:25Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.prealarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.notice <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|io <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.fault <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|io <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.disabled <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|io <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.out <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> out is not active<br />
|-<br />
|1<br />
|R<br />
|io <n> out is active<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.test <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in test<br />
|-<br />
|1<br />
|R<br />
|io <n> in test<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10981
InimPrevidia
2023-06-20T13:06:04Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |io.<n>.alarm <br /> *compact version only<br />
|0<br />
|R<br />
|io <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|io <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10980
InimPrevidia
2023-06-20T13:04:10Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu <br /> *ultra/max version only<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16 <br /> *ultra/max version only<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000 <br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10979
InimPrevidia
2023-06-20T12:55:58Z
<p>Enrico: /* Options */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|Inim Previdia Ultra panel<br />
|-<br />
|max<br />
|Inim Previdia Max panel<br />
|-<br />
|compact<br />
|Inim Previdia Compact panel<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10978
InimPrevidia
2023-06-20T12:49:34Z
<p>Enrico: /* Options */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
<br />
|rowspan="3"|model<br />
|rowspan="3"|ultra<br />
|ultra<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|max<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
|compact<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10977
InimPrevidia
2023-06-20T09:36:40Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2"|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
|write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10976
InimPrevidia
2023-06-20T09:35:38Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
|write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
|0<br />
|W<br />
||write "false" on the generic coil register <r><br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10975
InimPrevidia
2023-06-20T09:34:48Z
<p>Enrico: /* UISET Actions */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10974
InimPrevidia
2023-06-20T09:34:25Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|previdia.write.coil.register.<r><br />
|1<br />
|W<br />
|write "true" on the generic coil register <r><br />
|-<br />
<br />
|-<br />
<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10973
InimPrevidia
2023-06-20T09:26:06Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.prealarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.notice <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in notice<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.fault <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in fault<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.disabled <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is enabled<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.out <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> out is not active<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.test <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> channel <o> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> channel <o> is in test mode<br />
<br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10972
InimPrevidia
2023-06-20T08:46:34Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o>.alarm <br /> *ultra/max version only<br />
|0<br />
|R<br />
|ifm4io <k> chaennel <o> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|ifm4io <k> chaennel <o> alarm<br />
<br />
|-<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10971
InimPrevidia
2023-06-20T08:43:13Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="2" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|0<br />
|W<br />
|turn off channel <c> of module ifm4io <n><br />
|-<br />
|1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
<br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10970
InimPrevidia
2023-06-20T08:41:25Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|rowspan="2" |1<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
|-<br />
|rowspan="2"|0<br />
|W<br />
|turn off channel <c> of module ifm4if <n><br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10969
InimPrevidia
2023-06-20T07:39:56Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o> <br /> *ultra/max version only<br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io <n>, channel <c>, is active<br />
|-<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io <n>, channel <c>, is not active<br />
|-<br />
|W<br />
|turn off channel <c> of module ifm4if <n><br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10968
InimPrevidia
2023-06-20T07:35:29Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o> <br /> *only for ultra version<br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io <n>, channel <c>, is active<br />
|-<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io <n>, channel <c>, is not active<br />
|-<br />
|W<br />
|turn off channel <c> of module ifm4if <n><br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10966
InimPrevidia
2023-06-20T05:58:21Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o><br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io <n>, channel <c>, is active<br />
|-<br />
|W<br />
|turn on channel <c> of module ifm4io <n><br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io <n>, channel <c>, is not active<br />
|-<br />
|W<br />
|turn off channel <c> of module ifm4if <n><br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10965
InimPrevidia
2023-06-20T05:57:23Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o><br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io n, channel c, is active<br />
|-<br />
|W<br />
|turn on channel c of module ifm4io n<br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io n, channel c, is not active<br />
|-<br />
|W<br />
|turn off channel c of module ifm4if<br />
|-<br />
<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10964
InimPrevidia
2023-06-20T05:57:11Z
<p>Enrico: /* UISET Actions */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10963
InimPrevidia
2023-06-20T05:56:58Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|-<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o><br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io n, channel c, is active<br />
|-<br />
|W<br />
|turn on channel c of module ifm4io n<br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io n, channel c, is not active<br />
|-<br />
|W<br />
|turn off channel c of module ifm4if<br />
|-<br />
<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10962
InimPrevidia
2023-06-20T05:56:45Z
<p>Enrico: /* UISET Actions */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10961
InimPrevidia
2023-06-20T05:56:16Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
<br />
|rowspan="4" |ifm4io.<n>.c<o><br />
|rowspan="2" |1<br />
|R<br />
|module ifm4io n, channel c, is active<br />
|-<br />
|W<br />
|turn on channel c of module ifm4io n<br />
|-<br />
|rowspan="2"|0<br />
|R<br />
|module ifm4io n, channel c, is not active<br />
|-<br />
|W<br />
|turn off channel c of module ifm4if<br />
|-<br />
<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10960
InimPrevidia
2023-06-16T13:01:17Z
<p>Enrico: </p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation: "INIM Guida all'integrazione con sistemi di supervisione"<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10959
InimPrevidia
2023-06-16T12:58:06Z
<p>Enrico: /* UISET Actions */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|g<n>.name<br />
|value<br />
|colspan="2"|name assigned to group <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10958
InimPrevidia
2023-06-16T12:54:37Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|}<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10957
InimPrevidia
2023-06-16T12:53:55Z
<p>Enrico: </p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10956
InimPrevidia
2023-06-16T12:51:50Z
<p>Enrico: </p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-<br />
<br />
=== UISET Actions ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Attribute<br />
!colspan="2"|Set to<br />
<br />
|-<br />
<br />
|z<n>.name<br />
|value<br />
|colspan="2"|name assigned to zone <n> <br />
<br />
|-<br />
<br />
|l<k>.d<n>.name<br />
|value<br />
|colspan="2"|name assigned to device <n> of loop <k> <br />
<br />
|-<br />
<br />
|rowspan="2"|connection.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint connection = offline<br />
|-<br />
|false<br />
|when datapoint connection = online<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.1.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
<br />
|-<br />
<br />
|rowspan="2"|<datapoint_id>.0.label<br />
|rowspan="2"|visible<br />
|true<br />
|when datapoint with ID <datapoint_id> has value '0'<br />
|-<br />
|false<br />
|when datapoint with ID <datapoint_id> has value '1'<br />
|}<br />
<br />
== Release Notes ==<br />
=== 3.8.0 ===<br />
*initial release<br />
<br />
----<br />
<br />
<br />
''Inim Previdia are registered trademarks of Inim Electronics''</div>
Enrico
https://wiki.hsyco.com/3.8/index.php?title=InimPrevidia&diff=10955
InimPrevidia
2023-06-16T12:50:31Z
<p>Enrico: /* Datapoints */</p>
<hr />
<div>INIM PREVIDIA are multi-zone fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation INIM Guida all'integrazione con sistemi di supervisione<br />
<br />
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.<br />
<br />
[[File:IO Server Inim Previdia.png|center]]<br />
<br />
[[Category:I/O Server]]<br />
<br />
== Communication ==<br />
<br />
INIM PREVIDIA panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.<br />
<br />
== HSYCO Configuration ==<br />
<br />
Add a INIMPREVIDIA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:<br />
<br />
=== Communication ===<br />
*'''Address''': IP address of the INIM PREVIDIA panel<br />
*'''Port''': TCP/IP port for MODBUS communication (default 502)<br />
<br />
=== High Availability ===<br />
*'''Shutdown when inactive''': defaults to false.<br />
<br />
=== Options ===<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Default<br />
!Values<br />
!Description<br />
|-<br />
<br />
|rowspan="2"|gui<br />
|rowspan="2"|true<br />
|true<br />
|enable support for the UI object, UISET actions and USER commands<br />
|-<br />
|false<br />
|disable UI support<br />
|-<br />
<br />
|rowspan="2"|startupevents<br />
|rowspan="2"|false<br />
|true<br />
|generate IO events also during the driver’s start-up phase<br />
|-<br />
|false<br />
|start generating events only after HSYCO is aligned with the current status of the system<br />
|-<br />
<br />
|unitid<br />
|1<br />
|> 0<br />
|MODBUS unit ID of the INIM PREVIDIA panel<br />
<br />
|-<br />
<br />
|pollingtime<br />
|1000<br />
|style="white-space:nowrap"|n >= 1000, n <= 30000<br />
|the data polling interval, in milliseconds.<br />
|-<br />
<br />
|loopsnumber<br />
|16<br />
|style="white-space:nowrap"|n = 1..16<br />
|the number of configured loops<br />
|-<br />
<br />
|groupsnumber<br />
|240<br />
|style="white-space:nowrap"|n = 1..240<br />
|the number of configured groups<br />
|-<br />
<br />
|zonesnumber<br />
|1000<br />
|style="white-space:nowrap"|n = 1..1000<br />
|the number of configured zones<br />
|-<br />
|}<br />
<br />
{{tip|INIM PREVIDIA Compact panel requires loopsnumber set to 2}}<br />
<br />
=== inimprevidia.ini ===<br />
<br />
The inimprevidia.ini file is a specific configuration file located in the root directory.<br />
<br />
This file is required to provide the I/O Server the name assignment of zones and devices.<br />
<br />
This is an example of the file content:<br />
<br />
<pre><br />
previdia.z1 = Zone 1<br />
previdia.g2 = Group 2<br />
previdia.l1.d1 = Device 1 Loop 1<br />
previdia.l8.d4 = Device 8 Loop 4<br />
</pre><br />
<br />
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server<br />
<br />
If you have multiples INIM PREVIDIA I/O Servers:<br />
<br />
<pre><br />
previdia1.z1 = Zone 1 Previdia 1<br />
previdia2.z1 = Zone 2 Previdia 2<br />
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1<br />
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2<br />
</pre><br />
<br />
== Datapoints ==<br />
<br />
{| class="wikitable"<br />
!ID<br />
!Value<br />
!R/W<br />
!Description<br />
|-<br />
<br />
|rowspan="2" |connection<br />
|online<br />
|R<br />
|connection established<br />
|-<br />
|offline<br />
|R<br />
|HSYCO can't connect to the panel<br />
|-<br />
<br />
|reset<br />
|1<br />
|W<br />
|force panel reset<br />
|-<br />
<br />
|-<br />
<br />
|buzzeroff<br />
|1<br />
|W<br />
|force buzzer off<br />
|-<br />
<br />
|-<br />
<br />
|prealarmoff<br />
|1<br />
|W<br />
|force pre alarm off<br />
|-<br />
<br />
|-<br />
<br />
|patrol<br />
|1<br />
|W<br />
|start patrol mode<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |mute<br />
|0<br />
|W<br />
|disable panel mute<br />
|-<br />
|1<br />
|W<br />
|enable panel mute<br />
<br />
|-<br />
<br />
|rowspan="2" |l<k>.d<n><br />
|enable<br />
|W<br />
|device <n> of loop <k> is enabled<br />
|-<br />
|disable<br />
|W<br />
|device <n> of loop <k> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n><br />
|enable<br />
|W<br />
|zone <n> is enabled<br />
|-<br />
|disable<br />
|W<br />
|zone <n> is disabled<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.night.mode<br />
|0<br />
|R<br />
|night mode is not active<br />
|-<br />
|1<br />
|R<br />
|night mode is active<br />
|-<br />
<br />
<br />
|-<br />
<br />
|rowspan="2" |global.silence<br />
|0<br />
|R<br />
|panel is not muted<br />
|-<br />
|1<br />
|R<br />
|panel is muted<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.patrol<br />
|0<br />
|R<br />
|patrol mode is not active<br />
|-<br />
|1<br />
|R<br />
|patrol mode is active<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.buzzer.silence<br />
|0<br />
|R<br />
|buzzer is active<br />
|-<br />
|1<br />
|R<br />
|buzzer is not active<br />
|-<br />
<br />
|-<br />
<br />
|global.access.level<br />
|<n><br />
|R<br />
|panel access level 1..4<br />
<br />
|-<br />
<br />
|rowspan="2" |global.alarm<br />
|0<br />
|R<br />
|no active alarms<br />
|-<br />
|1<br />
|R<br />
|at least one active alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.prealarm<br />
|0<br />
|R<br />
|no active pre alarms<br />
|-<br />
|1<br />
|R<br />
||at least one active pre alarm<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.notice<br />
|0<br />
|R<br />
|no active notice<br />
|-<br />
|1<br />
|R<br />
||at least one active notice<br />
|-<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault<br />
|0<br />
|R<br />
|no faults<br />
|-<br />
|1<br />
|R<br />
|at least one fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.disabled<br />
|0<br />
|R<br />
|panel is enabled<br />
|-<br />
|1<br />
|R<br />
|panel is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 1 power supply fault<br />
|-<br />
|1<br />
|R<br />
|rs485 1 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.rs485.1<br />
|0<br />
|R<br />
|no rs485 2 power supply fault<br />
|-<br />
|1<br />
|R<br />
||rs485 2 power supply fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|battery fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.low.battery<br />
|0<br />
|R<br />
|battery is ok<br />
|-<br />
|1<br />
|R<br />
|low battery<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.net<br />
|0<br />
|R<br />
|net is ok<br />
|-<br />
|1<br />
|R<br />
|net fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.rt.net<br />
|0<br />
|R<br />
|rt net is ok<br />
|-<br />
|1<br />
|R<br />
|rt net problem<br />
|-<br />
<br />
|rowspan="2" |global.fault.ground<br />
|0<br />
|R<br />
|ground is ok<br />
|-<br />
|1<br />
|R<br />
|ground fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm16io.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|ifm16io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm16io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmlan<br />
|0<br />
|R<br />
|ifmlan is ok<br />
|-<br />
|1<br />
|R<br />
|ifmlan fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.emergency.cpu<br />
|0<br />
|R<br />
|cpu is ok<br />
|-<br />
|1<br />
|R<br />
|cpu fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmnet<br />
|0<br />
|R<br />
|ifmnet is ok<br />
|-<br />
|1<br />
|R<br />
|ifmnet fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmdial<br />
|0<br />
|R<br />
|ifmdial is ok<br />
|-<br />
|1<br />
|R<br />
|ifmdial fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm2l.<n> <br /> n=1..8<br />
|0<br />
|R<br />
|ifm2l module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm2l module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmext.<n> <br /> n=1..24<br />
|0<br />
|R<br />
|ifmext module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmext module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifm4io.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifm4io module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifm4io module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.power.supply.<n> <br /> n=1..4<br />
|0<br />
|R<br />
|power supply <n> is ok<br />
|-<br />
|1<br />
|R<br />
|power supply <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.fpmled.<n> <br /> n=1..7<br />
|0<br />
|R<br />
|fpmled module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|fpmled module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.fault.ifmr4.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|ifmr4 module <n> is ok<br />
|-<br />
|1<br />
|R<br />
|ifmr4 module <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.fault.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is ok<br />
|-<br />
|1<br />
|R<br />
|loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |global.loop.disabled.<n> <br /> n=1..16<br />
|0<br />
|R<br />
|loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|loop <n> disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.alarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no alarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|alarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.prealarm <br /> n=1..1000<br />
|0<br />
|R<br />
|no prealarm on zone <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.notice <br /> n=1..1000<br />
|0<br />
|R<br />
|no notice on zone <n><br />
|-<br />
|1<br />
|R<br />
|notice on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.fault <br /> n=1..1000<br />
|0<br />
|R<br />
|no fault on zone <n><br />
|-<br />
|1<br />
|R<br />
|fault on zone <n><br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.disabled <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|zone <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> is not in test mode<br />
|-<br />
|1<br />
|R<br />
|zone <n> is in test mode<br />
<br />
|-<br />
<br />
|rowspan="2" |z<n>.test <br /> n=1..1000<br />
|0<br />
|R<br />
|zone <n> smoke detection enable<br />
|-<br />
|1<br />
|R<br />
|zone <n> smoke detection disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.alarm <br /> n=1..240<br />
|0<br />
|R<br />
|no alarm on group <n><br />
|-<br />
|1<br />
|R<br />
|alarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.prealarm <br /> n=1..240<br />
|0<br />
|R<br />
|no prealarm on group <n><br />
|-<br />
|1<br />
|R<br />
|prealarm on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.notice <br /> n=1..240<br />
|0<br />
|R<br />
|no notice on group <n><br />
|-<br />
|1<br />
|R<br />
|notice on group <n><br />
<br />
|-<br />
<br />
|rowspan="2" |g<n>.disabled <br /> n=1..240<br />
|0<br />
|R<br />
|group <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|group <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.alarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in alarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> alarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.prealarm <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in prealarm<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> prealarm<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.notice <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in notice<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> notice<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.fault <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is not in fault<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> fault<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.disabled <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> is enabled<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is disabled<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.out <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> out open<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> out closed<br />
<br />
|-<br />
<br />
|rowspan="2" |l<n>.d<k>.test <br /> n=1..16,k=1..240<br />
|0<br />
|R<br />
|device <k> of loop <n> not in test<br />
|-<br />
|1<br />
|R<br />
|device <k> of loop <n> is in test<br />
<br />
|-</div>
Enrico