Detnov
DETNOV are multi-area 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 MODBUS REGISTERS FOR DETNOV ADDRESSABLE SYSTEM VERSION 1.11 ENG
This driver has been tested on DETNOV CAD-150-2 panel. (Should be compatible with CAD 150-1, CAD 150-2, CAD 150-8, CAD 150-8+, CAD 150-4)
Communication
Section titled “Communication”DETNOV 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 DETNOV 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 DETNOV 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 DETNOV panel |
| pollingtime | 3000 | n >= 3000 | the data polling interval, in milliseconds. |
detnov.ini
Section titled “detnov.ini”The detnov.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:
detnov.z1 = Zone 1
detnov.l1.d1 = Device 1 Loop 1
detnov.l8.d4 = Device 8 Loop 4
Where "detnov" is the I/O Server id of the Detnov I/O Server
If you have multiples Detnov I/O Servers:
detnov1.z1 = Zone 1 Detnov 1
detnov2.z1 = Zone 2 Detnov 2
detnov1.l1.d1 = Device 1 Loop 1 Detnov 1
detnov2.l2.d1 = Device 1 Loop 1 Detnov 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 | panel reset |
| mute | 1 | W | panel mute |
| sounderson | 1 | W | enable sounders |
| soundersoff | 1 | W | disable sounders |
| info.modbus.status | 0 | R | modbus is disconnected |
| 1 | R | modbus slave is connected | |
| info.panel.type | <n> | R | n=1,2 > CAD 150-1, CAD 150-2 n=4,8 > CAD 150-8, CAD 150-8+, CAD 150-4 |
| info.panel.version | <n> | R | n is the version of the panel |
| info.panel.network.version | <n> | R | n is the network version of the panel |
| info.panel.modbus.version | <n> | R | n is the modbus version of the panel |
| global.mute | 0 | R | mute is not active |
| 1 | R | mute is active | |
| global.sounders | 0 | R | sounders are not active |
| 1 | R | sounders are active | |
| global.sounders.silenced | 0 | R | sounders are not silenced |
| 1 | R | sounders are silenced | |
| intest.zone.exists | 0 | R | at least one zone is in test |
| 1 | R | no zones are in test | |
| disabled.zone.exists | 0 | R | at least one zone is disabled |
| 1 | R | no zones are disabled | |
| output.disabled | 0 | R | at least one output is disabled |
| 1 | R | no outputs are disabled | |
| sounders.disabled | 0 | R | at least one sounder is disabled |
| 1 | R | no sounders are disabled | |
| sounders.delayed | 0 | R | at least one sounder is delayed |
| 1 | R | no sounders are delayed | |
| global.panel.fault | 0 | R | panel has no fault |
| 1 | R | there is at least one fault in the panel | |
| global.power.fault | 0 | R | panel has no power fault |
| 1 | R | panel has a power fault | |
| global.pcb.fault | 0 | R | panel has no pcb fault |
| 1 | R | panel has a pcb fault | |
| global.loops.fault | 0 | R | the panel has no loop fault |
| 1 | R | panel has a loop fault | |
| global.device.fault | 0 | R | panel has no device fault |
| 1 | R | panel has a device fault | |
| global.alarm | 0 | R | the panel is not in alarm |
| 1 | R | panel is in alarm | |
| global.alarm.from.network | 0 | R | panel is not in network alarm |
| 1 | R | panel is in network alarm | |
| global.mcp.alarm | 0 | R | panel has no mcp alarm |
| 1 | R | panel has a mcp alarm | |
| global.main.supply.fault | 0 | R | panel has no main supply fault |
| 1 | R | panel has a main supply fault | |
| global.ground.fault | 0 | R | panel has no global ground fault |
| 1 | R | panel has a global ground fault | |
| global.sounder<n>.short.cut | 0 | R | the sounder <n> is not in short cut |
| 1 | R | the sounder <n> is in short cut | |
| global.sounder<n>.quiescent | 0 | R | the sounder <n> is not quiescent |
| 1 | R | the sounder <n> is quiescent | |
| global.sounder<n>.short.fault | 0 | R | the sounder <n> is not in short fault |
| 1 | R | the sounder <n> is in short fault | |
| global.sounder<n>.sounders.on | 0 | R | the sounder <n> is not active |
| 1 | R | the sounder <n> is active | |
| global.relay.fault | 0 | R | global relay fault is off |
| 1 | R | global relay fault is on | |
| global.relay.alarm | 0 | R | global relay alarm is off |
| 1 | R | global relay alarm is on | |
| global.faults.counter | <n> | R | n is the number of global faults |
| global.alarms.counter | <n> | R | n is the number of global alarms |
| loop.<n>.active | 0 | R | loop <n> is not active |
| 1 | R | loop <n> is active | |
| loop.<n>.shortopen.fault | 0 | R | loop <n> is not in short or open fault |
| 1 | R | loop <n> is in short or open fault | |
| loop.<n>.comm.fault | 0 | R | loop <n> is not in communication fault |
| 1 | R | loop <n> is in communication fault | |
| z<n>.fault | 0 | R | zone <n> is not in fault. n = 1..250 |
| 1 | R | zone <n> is in fault | |
| z<n>.alarm | 0 | R | zone <n> is not in alarm. n = 1..250 |
| 1 | R | zone <n> is in alarm | |
| z<n>.normal | 0 | R | zone <n> is not normal status. n = 1..250 |
| 1 | R | zone <n> is in normal status | |
| z<n>.disabled | 0 | R | zone <n> is not disabled. n = 1..250 |
| 1 | R | zone <n> is disabled | |
| z<n>.test | 0 | R | zone <n> is not in test. n = 1..250 |
| 1 | R | zone <n> is in test | |
| z<n>.name | 1 | R | name assigned to the zone <n> |
| l<k>.d<n>.fault | 0 | R | device <n> is not in fault. n = 1..250, k = 1..8 |
| 1 | R | zone <n> is in fault | |
| l<k>.d<n>.alarm | 0 | R | device <n> of loop <k> is not in alarm. n = 1..250, k = 1..8 |
| 1 | R | device <n> of loop <k> is in alarm | |
| l<k>.d<n>.normal | 0 | R | device <n> of loop <k> is not normal status. n = 1..250, k = 1..8 |
| 1 | R | device <n> of loop <k> is in normal status | |
| l<k>.d<n>.disabled | 0 | R | device <n> of loop <k> is not disabled. n = 1..250, k = 1..8 |
| 1 | R | device <n> of loop <k> is disabled | |
| l<k>.d<n>.test | 0 | R | device <n> of loop <k> is not in test. n = 1..250, k = 1..8 |
| 1 | R | device <n> of loop <k> is in test | |
| l<k>.d<n> | enable | W | device <n> of loop <k> is activated |
| disable | W | device <n> of loop <k> is disabled | |
| l<k>.d<n>.name | 1 | R | name assigned to the device <n> of loop <k> |
UISET Actions
Section titled “UISET Actions”| ID | Attribute | Set to | |
|---|---|---|---|
| z<n>.name | value | name assigned to zone <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”- Bug fix: loop status was not updated
- initial release
Detnov are registered trademarks of Detnov.
