InimPrevidia
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"
This driver has been tested on INIM PREVIDIA Ultra, Max and Compact panels.
Communication
Section titled “Communication”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.
HSYCO Configuration
Section titled “HSYCO Configuration”Add a INIMPREVIDIA I/O Server in the I/O Servers section of the Settings and set its parameters:
Communication
Section titled “Communication”- Address: IP address of the INIM PREVIDIA panel
- Port: TCP/IP port for MODBUS communication (default 502)
High Availability
Section titled “High Availability”- Shutdown when inactive: defaults to false.
Options
Section titled “Options”| ID | Default | Values | Description |
|---|---|---|---|
| gui | true | true | enable support for the UI object, UISET actions and USER commands |
| false | disable UI support | ||
| startupevents | false | true | generate IO events also during the driver’s start-up phase |
| false | start generating events only after HSYCO is aligned with the current status of the system | ||
| unitid | 1 | > 0 | MODBUS unit ID of the INIM PREVIDIA panel |
| pollingtime | 1000 | n >= 1000, n <= 30000 | the data polling interval, in milliseconds. |
| loopsnumber | 16 | n = 1..16 | the number of configured loops |
| groupsnumber | 240 | n = 1..240 | the number of configured groups |
| zonesnumber | 1000 | n = 1..1000 | the number of configured zones |
| model | ultra | ultra | Inim Previdia Ultra panel |
| max | Inim Previdia Max panel | ||
| compact | Inim Previdia Compact panel | ||
| micro | Inim Micro Compact panel |
INIM PREVIDIA Compact panel requires loopsnumber set to 2
inimprevidia.ini
Section titled “inimprevidia.ini”The inimprevidia.ini file is a specific configuration file located in the root directory.
This file is required to provide the I/O Server the name assignment of zones and devices.
This is an example of the file content:
previdia.z1 = Zone 1
previdia.g2 = Group 2
previdia.l1.d1 = Device 1 Loop 1
previdia.l8.d4 = Device 8 Loop 4
previdia.line.1 = Line 1
previdia.io.1 = Io 1
Where "previdia" is the I/O Server id of the INIM PREVIDIA I/O Server
If you have multiples INIM PREVIDIA I/O Servers:
previdia1.z1 = Zone 1 Previdia 1
previdia2.z1 = Zone 2 Previdia 2
previdia1.l1.d1 = Device 1 Loop 1 Previdia 1
previdia2.l2.d1 = Device 1 Loop 1 Previdia 2
Datapoints
Section titled “Datapoints”| ID | Value | R/W | Description |
|---|---|---|---|
| connection | online | R | connection established |
| offline | R | HSYCO can't connect to the panel | |
| reset | 1 | W | force panel reset |
| buzzeroff | 1 | W | force buzzer off |
| prealarmoff | 1 | W | force pre alarm off |
| patrol | 1 | W | start patrol mode |
| mute | 0 | W | disable panel mute |
| 1 | W | enable panel mute | |
| l<k>.d<n> | enable | W | device <n> of loop <k> is enabled |
| disable | W | device <n> of loop <k> is disabled | |
| z<n> | enable | W | zone <n> is enabled |
| disable | W | zone <n> is disabled | |
| global.night.mode | 0 | R | night mode is not active |
| 1 | R | night mode is active | |
| global.silence | 0 | R | panel is not muted |
| 1 | R | panel is muted | |
| global.patrol | 0 | R | patrol mode is not active |
| 1 | R | patrol mode is active | |
| global.buzzer.silence | 0 | R | buzzer is active |
| 1 | R | buzzer is not active | |
| global.access.level | <n> | R | panel access level 1..4 |
| global.alarm | 0 | R | no active alarms |
| 1 | R | at least one active alarm | |
| global.prealarm | 0 | R | no active pre alarms |
| 1 | R | at least one active pre alarm | |
| global.notice | 0 | R | no active notice |
| 1 | R | at least one active notice | |
| global.fault | 0 | R | no faults |
| 1 | R | at least one fault | |
| global.disabled | 0 | R | panel is enabled |
| 1 | R | panel is disabled | |
| global.fault.rs485.1 | 0 | R | no rs485 1 power supply fault |
| 1 | R | rs485 1 power supply fault | |
| global.fault.rs485.1 | 0 | R | no rs485 2 power supply fault |
| 1 | R | rs485 2 power supply fault | |
| global.fault.battery | 0 | R | battery is ok |
| 1 | R | battery fault | |
| global.low.battery | 0 | R | battery is ok |
| 1 | R | low battery | |
| global.fault.net | 0 | R | 220V voltage is ok |
| 1 | R | 220V fault | |
| global.rt.net | 0 | R | rt net is ok |
| 1 | R | rt net problem | |
| global.fault.ground | 0 | R | ground is ok |
| 1 | R | ground fault | |
| global.fault.ifm16io.<n> n=1..4 *ultra/max version only |
0 | R | ifm16io module <n> is ok |
| 1 | R | ifm16io module <n> fault | |
| global.fault.ifmlan *ultra/max version only |
0 | R | ifmlan is ok |
| 1 | R | ifmlan fault | |
| global.fault.emergency.cpu *ultra/max version only |
0 | R | cpu is ok |
| 1 | R | cpu fault | |
| global.fault.ifmnet *ultra/max version only |
0 | R | ifmnet is ok |
| 1 | R | ifmnet fault | |
| global.fault.ifmdial *ultra/max version only |
0 | R | ifmdial is ok |
| 1 | R | ifmdial fault | |
| global.fault.ifm2l.<n> n=1..8 *ultra/max version only |
0 | R | ifm2l module <n> is ok |
| 1 | R | ifm2l module <n> fault | |
| global.fault.ifmext.<n> n=1..24 *ultra/max version only |
0 | R | ifmext module <n> is ok |
| 1 | R | ifmext module <n> fault | |
| global.fault.ifm4io.<n> n=1..16 *ultra/max version only |
0 | R | ifm4io module <n> is ok |
| 1 | R | ifm4io module <n> fault | |
| global.fault.power.supply.<n> n=1..4 *ultra/max version only |
0 | R | power supply <n> is ok |
| 1 | R | power supply <n> fault | |
| global.fault.fpmled.<n> n=1..7 *ultra/max version only |
0 | R | fpmled module <n> is ok |
| 1 | R | fpmled module <n> fault | |
| global.fault.ifmr4.<n> n=1..16 *ultra/max version only |
0 | R | ifmr4 module <n> is ok |
| 1 | R | ifmr4 module <n> fault | |
| global.loop.fault.<n> n=1..16 *ultra/max version only |
0 | R | loop <n> is ok |
| 1 | R | loop <n> fault | |
| global.loop.disabled.<n> n=1..16 *ultra/max version only |
0 | R | loop <n> is enabled |
| 1 | R | loop <n> disabled | |
| global.loop.alarm.<n> n=1..16 |
0 | R | loop <n> has at least one device in alarm |
| 1 | R | loop <n> no devices in alarm | |
| global.loop.prealarm.<n> n=1..16 |
0 | R | loop <n> has at least one device in prealarm |
| 1 | R | loop <n> no devices in prealarm | |
| z<n>.alarm n=1..1000 |
0 | R | no alarm on zone <n> |
| 1 | R | alarm on zone <n> | |
| z<n>.prealarm n=1..1000 |
0 | R | no prealarm on zone <n> |
| 1 | R | prealarm on zone <n> | |
| z<n>.notice n=1..1000 |
0 | R | no notice on zone <n> |
| 1 | R | notice on zone <n> | |
| z<n>.fault n=1..1000 |
0 | R | no fault on zone <n> |
| 1 | R | fault on zone <n> | |
| z<n>.disabled n=1..1000 |
0 | R | zone <n> is enabled |
| 1 | R | zone <n> is disabled | |
| z<n>.test n=1..1000 |
0 | R | zone <n> is not in test mode |
| 1 | R | zone <n> is in test mode | |
| z<n>.test n=1..1000 |
0 | R | zone <n> smoke detection enable |
| 1 | R | zone <n> smoke detection disabled | |
| g<n>.alarm n=1..240 |
0 | R | no alarm on group <n> |
| 1 | R | alarm on group <n> | |
| g<n>.prealarm n=1..240 |
0 | R | no prealarm on group <n> |
| 1 | R | prealarm on group <n> | |
| g<n>.notice n=1..240 |
0 | R | no notice on group <n> |
| 1 | R | notice on group <n> | |
| g<n>.disabled n=1..240 |
0 | R | group <n> is enabled |
| 1 | R | group <n> is disabled | |
| l<n>.d<k>.alarm n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in alarm |
| 1 | R | device <k> of loop <n> alarm | |
| l<n>.d<k>.prealarm n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in prealarm |
| 1 | R | device <k> of loop <n> prealarm | |
| l<n>.d<k>.notice n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in notice |
| 1 | R | device <k> of loop <n> notice | |
| l<n>.d<k>.fault n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is not in fault |
| 1 | R | device <k> of loop <n> fault | |
| l<n>.d<k>.disabled n=1..16,k=1..240 |
0 | R | device <k> of loop <n> is enabled |
| 1 | R | device <k> of loop <n> is disabled | |
| l<n>.d<k>.out n=1..16,k=1..240 |
0 | R | device <k> of loop <n> out open |
| 1 | R | device <k> of loop <n> out closed | |
| l<n>.d<k>.test n=1..16,k=1..240 |
0 | R | device <k> of loop <n> not in test |
| 1 | R | device <k> of loop <n> is in test | |
| ifm4io.<n>.c<o> *ultra/max version only |
0 | W | turn off channel <o> of module ifm4io <n> |
| 1 | W | turn on channel <o> of module ifm4io <n> | |
| ifm4io.<n>.c<o> *ultra/max version only |
enable | W | enable channel <o> of module ifm4io <n> |
| disable | W | disable channel <o> of module ifm4io <n> | |
| ifm4io.<n>.c<o>.alarm *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in alarm |
| 1 | R | ifm4io <k> channel <o> alarm | |
| ifm4io.<n>.c<o>.prealarm *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in prealarm |
| 1 | R | ifm4io <k> channel <o> prealarm | |
| ifm4io.<n>.c<o>.notice *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in notice |
| 1 | R | ifm4io <k> channel <o> notice | |
| ifm4io.<n>.c<o>.fault *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in fault |
| 1 | R | ifm4io <k> channel <o> fault | |
| ifm4io.<n>.c<o>.disabled *ultra/max version only |
0 | R | ifm4io <k> channel <o> is enabled |
| 1 | R | ifm4io <k> channel <o> is disabled | |
| ifm4io.<n>.c<o>.out *ultra/max version only |
0 | R | ifm4io <k> channel <o> out is not active |
| 1 | R | ifm4io <k> channel <o> out is not active | |
| ifm4io.<n>.c<o>.test *ultra/max version only |
0 | R | ifm4io <k> channel <o> is not in test mode |
| 1 | R | ifm4io <k> channel <o> is in test mode | |
| io.<n>.alarm *compact version only |
0 | R | io <n> is not in alarm |
| 1 | R | io <n> alarm | |
| io.<n>.prealarm *compact version only |
0 | R | io <n> is not in alarm |
| 1 | R | io <n> prealarm | |
| io.<n>.notice *compact version only |
0 | R | io <n> is not in notice |
| 1 | R | io <n> notice | |
| io.<n>.fault *compact version only |
0 | R | io <n> is not in fault |
| 1 | R | io <n> fault | |
| io.<n>.disabled *compact version only |
0 | R | io <n> is enabled |
| 1 | R | io <n> is disabled | |
| io.<n>.out *compact version only |
0 | R | io <n> out is not active |
| 1 | R | io <n> out is active | |
| io.<n>.out *compact version only |
0 | W | de-activate io <n> |
| 1 | W | activate io <n> | |
| io.<n> *compact version only |
disable | W | disable io <n> |
| enable | W | enable io <n> | |
| io.<n>.test *compact version only |
0 | R | io <n> is not in test |
| 1 | R | io <n> in test | |
| write.coil.register.<r> | 1 | W | write "true" on the generic coil register <r> |
| 0 | W | write "false" on the generic coil register <r> |
Previdia Micro Datapoints
Section titled “Previdia Micro Datapoints”Use `model=micro` option to enable these datapoints.
Micro Lines, Terminals and I/O
Section titled “Micro Lines, Terminals and I/O”| ID | Value | R/W | Description |
|---|---|---|---|
| Lines (Main Unit) - Lines 1..4 | |||
| line.1..4.alarm | 0 | R | line not in alarm |
| 1 | R | line alarm | |
| line.1..4.prealarm | 0 | R | line not in prealarm |
| 1 | R | line prealarm | |
| line.1..4.notice | 0 | R | line not in notice |
| 1 | R | line notice | |
| line.1..4.fault | 0 | R | line not in fault |
| 1 | R | line fault | |
| line.1..4.disabled | 0 | R | line enabled |
| 1 | R | line disabled | |
| line.1..4.out | 0 | R | output not active |
| 1 | R | output active | |
| line.1..4.test | 0 | R | line not in test mode |
| 1 | R | line in test mode | |
| line.1..4 | 1 | W | activate output (toggles output on) |
| 0 | W | deactivate output (toggles output off) | |
| line.1..4 | enable | W | enable line |
| disable | W | disable line | |
| Lines (Expanders) - Exp 1..4, Lines 1..8 | |||
| line.exp<n>.l<k>.alarm | 0 | R | line not in alarm |
| 1 | R | line alarm | |
| line.exp<n>.l<k>.prealarm | 0 | R | line not in prealarm |
| 1 | R | line prealarm | |
| line.exp<n>.l<k>.notice | 0 | R | line not in notice |
| 1 | R | line notice | |
| line.exp<n>.l<k>.fault | 0 | R | line not in fault |
| 1 | R | line fault | |
| line.exp<n>.l<k>.disabled | 0 | R | line enabled |
| 1 | R | line disabled | |
| line.exp<n>.l<k>.out | 0 | R | output not active |
| 1 | R | output active | |
| line.exp<n>.l<k>.test | 0 | R | line not in test mode |
| 1 | R | line in test mode | |
| line.exp<n>.l<k> | 1 | W | activate output (toggles output on) |
| 0 | W | deactivate output (toggles output off) | |
| line.exp<n>.l<k> | enable | W | enable line |
| disable | W | disable line | |
| Terminals (Main Unit) - Terminals T1..T4 | |||
| t1..4.alarm | 0 | R | terminal not in alarm |
| 1 | R | terminal alarm | |
| t1..4.prealarm | 0 | R | terminal not in prealarm |
| 1 | R | terminal prealarm | |
| t1..4.notice | 0 | R | terminal not in notice |
| 1 | R | terminal notice | |
| t1..4.fault | 0 | R | terminal not in fault |
| 1 | R | terminal fault | |
| t1..4.disabled | 0 | R | terminal enabled |
| 1 | R | terminal disabled | |
| t1..4.out | 0 | R | terminal output not active |
| 1 | R | terminal output active | |
| t1..4.test | 0 | R | terminal not in test mode |
| 1 | R | terminal in test mode | |
| t1..4 | enable | W | enable terminal |
| disable | W | disable terminal | |
| Terminals (Expanders) - Exp 1..4, Terminals 1..6 | |||
| exp<n>.t<k>.alarm | 0 | R | terminal not in alarm |
| 1 | R | terminal alarm | |
| exp<n>.t<k>.prealarm | 0 | R | terminal not in prealarm |
| 1 | R | terminal prealarm | |
| exp<n>.t<k>.notice | 0 | R | terminal not in notice |
| 1 | R | terminal notice | |
| exp<n>.t<k>.fault | 0 | R | terminal not in fault |
| 1 | R | terminal fault | |
| exp<n>.t<k>.disabled | 0 | R | terminal enabled |
| 1 | R | terminal disabled | |
| exp<n>.t<k>.out | 0 | R | terminal output not active |
| 1 | R | terminal output active | |
| exp<n>.t<k>.test | 0 | R | terminal not in test mode |
| 1 | R | terminal in test mode | |
| exp<n>.t<k> | enable | W | enable terminal |
| disable | W | disable terminal | |
| I/O - Main (1..4) | |||
| io.1..4.alarm | 0 | R | io not in alarm |
| 1 | R | io alarm | |
| io.1..4.prealarm | 0 | R | io not in prealarm |
| 1 | R | io prealarm | |
| io.1..4.notice | 0 | R | io not in notice |
| 1 | R | io notice | |
| io.1..4.fault | 0 | R | io not in fault |
| 1 | R | io fault | |
| io.1..4.disabled | 0 | R | io enabled |
| 1 | R | io disabled | |
| io.1..4.out | 0 | R | io output not active |
| 1 | R | io output active | |
| io.1..4.test | 0 | R | io not in test mode |
| 1 | R | io in test mode | |
| io.1..4 | 1 | W | activate io |
| 0 | W | deactivate io | |
| io.1..4 | enable | W | enable io |
| disable | W | disable io | |
| I/O - Main (Aux) | |||
| io.aux.alarm | 0 | R | aux not in alarm |
| 1 | R | aux alarm | |
| io.aux.prealarm | 0 | R | aux not in prealarm |
| 1 | R | aux prealarm | |
| io.aux.notice | 0 | R | aux not in notice |
| 1 | R | aux notice | |
| io.aux.fault | 0 | R | aux not in fault |
| 1 | R | aux fault | |
| io.aux.disabled | 0 | R | aux enabled |
| 1 | R | aux disabled | |
| io.aux.out | 0 | R | aux output not active |
| 1 | R | aux output active | |
| io.aux.test | 0 | R | aux not in test mode |
| 1 | R | aux in test mode | |
| io.aux | 1 | W | activate aux |
| 0 | W | deactivate aux | |
| io.aux | enable | W | enable aux |
| disable | W | disable aux | |
| I/O (Expanders) - Exp 1..4 | |||
| io.exp<n>.alarm | 0 | R | exp io not in alarm |
| 1 | R | exp io alarm | |
| io.exp<n>.prealarm | 0 | R | exp io not in prealarm |
| 1 | R | exp io prealarm | |
| io.exp<n>.notice | 0 | R | exp io not in notice |
| 1 | R | exp io notice | |
| io.exp<n>.fault | 0 | R | exp io not in fault |
| 1 | R | exp io fault | |
| io.exp<n>.disabled | 0 | R | exp io enabled |
| 1 | R | exp io disabled | |
| io.exp<n>.out | 0 | R | exp io output not active |
| 1 | R | exp io output active | |
| io.exp<n>.test | 0 | R | exp io not in test mode |
| 1 | R | exp io in test mode | |
| io.exp<n> | 1 | W | activate exp io |
| 0 | W | deactivate exp io | |
| io.exp<n> | enable | W | enable exp io |
| disable | W | disable exp io | |
UISET Actions
Section titled “UISET Actions”| ID | Attribute | Set to | |
|---|---|---|---|
| z<n>.name | value | name assigned to zone <n> | |
| g<n>.name | value | name assigned to group <n> | |
| l<k>.d<n>.name | value | name assigned to device <n> of loop <k> | |
| connection.label | visible | true | when datapoint connection = offline |
| false | when datapoint connection = online | ||
| <datapoint_id>.1.label | visible | true | when datapoint with ID <datapoint_id> has value '1' |
| false | when datapoint with ID <datapoint_id> has value '0' | ||
| <datapoint_id>.0.label | visible | true | when datapoint with ID <datapoint_id> has value '0' |
| false | when datapoint with ID <datapoint_id> has value '1' | ||
Release Notes
Section titled “Release Notes”3.10.0
Section titled “3.10.0”- added micro panels support
- minor optimizations
- initial release
Inim Previdia are registered trademarks of Inim Electronics
