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
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
Add an INIMPREVIDIA I/O Server in the I/O Servers section of the Settings and set its parameters:
Communication
- IP Address: the IP address assigned to the panel
- Port: the TCP port (defaults to 502)
High Availability
- Shutdown when inactive: defaults to true.
Options
| ID | Default | Values | Description |
|---|---|---|---|
| gui | true | true | enable support for the UI object, UISET actions and USER commands |
| false | disable UI support | ||
| startupevents | true | 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 | n ≥ 0 | MODBUS unit ID of the INIM PREVIDIA panel |
| pollingtime | 1000 | n > 1000, n < 30000 | the data acquisition 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 Previdia Micro panel |
INIM PREVIDIA Compact panel requires loopsnumber set to 2
Loopsnumber attribute is ignored for INIM PREVIDIA Micro panel
config.ini
The config.ini file is a specific configuration file located in the config/drivers/inimprevidia/<io_server_id> directory, where <io_server_id> is the I/O Server id in lower case.
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:
z1 = Zone 1
g2 = Group 2
l1.d1 = Device 1 Loop 1
l8.d4 = Device 8 Loop 4
line.1 = Line 1
io.1 = Io 1
If the I/O Server id of the INIM PREVIDIA I/O Server is "previdia", the file is config/drivers/inimprevidia/previdia/config.ini.
If you have multiples INIM PREVIDIA I/O Servers, each one has its own file, in the directory named after its id: for instance config/drivers/inimprevidia/previdia1/config.ini and config/drivers/inimprevidia/previdia2/config.ini.
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.2 | 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> | 0 | R | ifm16io module <n> is ok |
| 1 | R | ifm16io module <n> fault | |
| global.fault.ifmlan | 0 | R | ifmlan is ok |
| 1 | R | ifmlan fault | |
| global.fault.emergency.cpu | 0 | R | cpu is ok |
| 1 | R | cpu fault | |
| global.fault.ifmnet | 0 | R | ifmnet is ok |
| 1 | R | ifmnet fault | |
| global.fault.ifmdial | 0 | R | ifmdial is ok |
| 1 | R | ifmdial fault | |
| global.fault.ifm2l.<n> | 0 | R | ifm2l module <n> is ok |
| 1 | R | ifm2l module <n> fault | |
| global.fault.ifmext.<n> | 0 | R | ifmext module <n> is ok |
| 1 | R | ifmext module <n> fault | |
| global.fault.ifm4io.<n> | 0 | R | ifm4io module <n> is ok |
| 1 | R | ifm4io module <n> fault | |
| global.fault.power.supply.<n> | 0 | R | power supply <n> is ok |
| 1 | R | power supply <n> fault | |
| global.fault.fpmled.<n> | 0 | R | fpmled module <n> is ok |
| 1 | R | fpmled module <n> fault | |
| global.fault.ifmr4.<n> | 0 | R | ifmr4 module <n> is ok |
| 1 | R | ifmr4 module <n> fault | |
| global.loop.fault.<n> | 0 | R | loop <n> is ok |
| 1 | R | loop <n> fault | |
| global.loop.disabled.<n> | 0 | R | loop <n> is enabled |
| 1 | R | loop <n> disabled | |
| global.loop.alarm.<n> | 0 | R | loop <n> has at least one device in alarm |
| 1 | R | loop <n> no devices in alarm | |
| global.loop.prealarm.<n> | 0 | R | loop <n> has at least one device in prealarm |
| 1 | R | loop <n> no devices in prealarm | |
| z<n>.alarm | 0 | R | no alarm on zone <n> |
| 1 | R | alarm on zone <n> | |
| z<n>.prealarm | 0 | R | no prealarm on zone <n> |
| 1 | R | prealarm on zone <n> | |
| z<n>.notice | 0 | R | no notice on zone <n> |
| 1 | R | notice on zone <n> | |
| z<n>.fault | 0 | R | no fault on zone <n> |
| 1 | R | fault on zone <n> | |
| z<n>.disabled | 0 | R | zone <n> is enabled |
| 1 | R | zone <n> is disabled | |
| z<n>.test | 0 | R | zone <n> is not in test mode |
| 1 | R | zone <n> is in test mode | |
| z<n>.test | 0 | R | zone <n> smoke detection enable |
| 1 | R | zone <n> smoke detection disabled | |
| g<n>.alarm | 0 | R | no alarm on group <n> |
| 1 | R | alarm on group <n> | |
| g<n>.prealarm | 0 | R | no prealarm on group <n> |
| 1 | R | prealarm on group <n> | |
| g<n>.notice | 0 | R | no notice on group <n> |
| 1 | R | notice on group <n> | |
| g<n>.disabled | 0 | R | group <n> is enabled |
| 1 | R | group <n> is disabled | |
| l<n>.d<k>.alarm | 0 | R | device <k> of loop <n> is not in alarm |
| 1 | R | device <k> of loop <n> alarm | |
| l<n>.d<k>.prealarm | 0 | R | device <k> of loop <n> is not in prealarm |
| 1 | R | device <k> of loop <n> prealarm | |
| l<n>.d<k>.notice | 0 | R | device <k> of loop <n> is not in notice |
| 1 | R | device <k> of loop <n> notice | |
| l<n>.d<k>.fault | 0 | R | device <k> of loop <n> is not in fault |
| 1 | R | device <k> of loop <n> fault | |
| l<n>.d<k>.disabled | 0 | R | device <k> of loop <n> is enabled |
| 1 | R | device <k> of loop <n> is disabled | |
| l<n>.d<k>.out | 0 | R | device <k> of loop <n> out open |
| 1 | R | device <k> of loop <n> out closed | |
| l<n>.d<k>.test | 0 | R | device <k> of loop <n> is not in test mode |
| 1 | R | device <k> of loop <n> is in test mode | |
| ifm4io.<n>.c<o> | 0 | W | turn off channel <o> of module ifm4io <n> |
| 1 | W | turn on channel <o> of module ifm4io <n> | |
| ifm4io.<n>.c<o> | enable | W | enable channel <o> of module ifm4io <n> |
| disable | W | disable channel <o> of module ifm4io <n> | |
| ifm4io.<n>.c<o>.alarm | 0 | R | ifm4io <k> channel <o> is not in alarm |
| 1 | R | ifm4io <k> channel <o> alarm | |
| ifm4io.<n>.c<o>.prealarm | 0 | R | ifm4io <k> channel <o> is not in prealarm |
| 1 | R | ifm4io <k> channel <o> prealarm | |
| ifm4io.<n>.c<o>.notice | 0 | R | ifm4io <k> channel <o> is not in notice |
| 1 | R | ifm4io <k> channel <o> notice | |
| ifm4io.<n>.c<o>.fault | 0 | R | ifm4io <k> channel <o> is not in fault |
| 1 | R | ifm4io <k> channel <o> fault | |
| ifm4io.<n>.c<o>.disabled | 0 | R | ifm4io <k> channel <o> is enabled |
| 1 | R | ifm4io <k> channel <o> is disabled | |
| ifm4io.<n>.c<o>.out | 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 | 0 | R | ifm4io <k> channel <o> is not in test mode |
| 1 | R | ifm4io <k> channel <o> is in test mode | |
| io.<n>.alarm | 0 | R | io <n> is not in alarm |
| 1 | R | io <n> alarm | |
| io.<n>.prealarm | 0 | R | io <n> is not in alarm |
| 1 | R | io <n> prealarm | |
| io.<n>.notice | 0 | R | io <n> is not in notice |
| 1 | R | io <n> notice | |
| io.<n>.fault | 0 | R | io <n> is not in fault |
| 1 | R | io <n> fault | |
| io.<n>.disabled | 0 | R | io <n> is enabled |
| 1 | R | io <n> is disabled | |
| io.<n>.out | 0 | R | io <n> out is not active |
| 1 | R | io <n> out is active | |
| io.<n>.out | 0 | W | de-activate io <n> |
| 1 | W | activate io <n> | |
| io.<n> | disable | W | disable io <n> |
| enable | W | enable io <n> | |
| io.<n>.test | 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
Use model=micro option to enable these datapoints.
Fire Suppression Status
| ID | Value | R/W | Description |
|---|---|---|---|
| global.fire.suppression.disabled | 0 | R | fire suppression enabled |
| 1 | R | fire suppression disabled | |
| global.fire.suppression.automatic.disabled | 0 | R | automatic fire suppression enabled |
| 1 | R | automatic fire suppression disabled | |
| global.fire.suppression.manual.disabled | 0 | R | manual fire suppression enabled |
| 1 | R | manual fire suppression disabled | |
| global.fire.suppression | 0 | R | fire suppression not active |
| 1 | R | fire suppression active | |
| global.fire.suppression.pre | 0 | R | fire suppression pre-activation not active |
| 1 | R | fire suppression pre-activation active | |
| global.fire.suppression.manual.stop | 0 | R | manual stop not active |
| 1 | R | manual stop active | |
| global.fire.suppression.automatic.stop | 0 | R | automatic stop not active |
| 1 | R | automatic stop active | |
| global.fire.suppression.fault | 0 | R | no fire suppression fault |
| 1 | R | fire suppression fault | |
| global.fire.suppression.pressure.switch.open | 0 | R | pressure switch ok |
| 1 | R | pressure switch open | |
| global.fire.suppression.pressure.switch.short | 0 | R | pressure switch ok |
| 1 | R | pressure switch short | |
| global.fire.suppression.manual.open | 0 | R | manual activation button ok |
| 1 | R | manual activation button open | |
| global.fire.suppression.manual.short | 0 | R | manual activation button ok |
| 1 | R | manual activation button short | |
| global.fire.suppression.stop.output.open | 0 | R | stop output ok |
| 1 | R | stop output open | |
| global.fire.suppression.stop.output.short | 0 | R | stop output ok |
| 1 | R | stop output short | |
| global.fire.suppression.solenoid.valve.open | 0 | R | solenoid valve ok |
| 1 | R | solenoid valve open | |
| global.fire.suppression.solenoid.valve.short | 0 | R | solenoid valve ok |
| 1 | R | solenoid valve short | |
| global.fire.suppression.release.open | 0 | R | release ok |
| 1 | R | release open | |
| global.fire.suppression.release.short | 0 | R | release ok |
| 1 | R | release short | |
| global.fire.suppression.pre.open | 0 | R | pre-activation ok |
| 1 | R | pre-activation open | |
| global.fire.suppression.pre.short | 0 | R | pre-activation ok |
| 1 | R | pre-activation short | |
| global.fire.suppression.open | 0 | R | suppression ok |
| 1 | R | suppression open | |
| global.fire.suppression.short | 0 | R | suppression ok |
| 1 | R | suppression short |
Previdia Micro Datapoints
Use model=micro option to enable these datapoints.
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, aux) | ||
| 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 | |
| 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 |
User Interface
UISET Actions
| ID | Attribute | Value | Set to |
|---|---|---|---|
| z<n>.name | value | <String> | name assigned to zone <n> |
| g<n>.name | value | <String> | name assigned to group <n> |
| l<k>.d<n>.name | value | <String> | 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
3.10.0
- added micro panels support
- minor optimizations
3.8.0
- initial version release
Inim and Previdia are registered trademarks of Inim Electronics s.r.l.