Skip to main content

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)

Detnov panel

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

Add a DETNOV I/O Server in the I/O Servers section of the Settings and set its parameters:

Communication

  • Address: IP address of the DETNOV panel
  • Port: TCP/IP port for MODBUS communication (default 502)

High Availability

  • Shutdown when inactive: defaults to false.

Options

IDDefaultValuesDescription
guitruetrueenable support for the UI object, UISET actions and USER commands
falsedisable UI support
startupeventsfalsetruegenerate IO events also during the driver’s start-up phase
falsestart generating events only after HSYCO is aligned with the current status of the system
unitid1> 0MODBUS unit ID of the DETNOV panel
pollingtime3000n >= 3000the data polling interval, in milliseconds.

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

IDValueR/WDescription
connectiononlineRconnection established
offlineRHSYCO can't connect to the panel
reset1Wpanel reset
mute1Wpanel mute
sounderson1Wenable sounders
soundersoff1Wdisable sounders
info.modbus.status0Rmodbus is disconnected
1Rmodbus slave is connected
info.panel.type<n>Rn=1,2 > CAD 150-1, CAD 150-2 n=4,8 > CAD 150-8, CAD 150-8+, CAD 150-4
info.panel.version<n>Rn is the version of the panel
info.panel.network.version<n>Rn is the network version of the panel
info.panel.modbus.version<n>Rn is the modbus version of the panel
global.mute0Rmute is not active
1Rmute is active
global.sounders0Rsounders are not active
1Rsounders are active
global.sounders.silenced0Rsounders are not silenced
1Rsounders are silenced
intest.zone.exists0Rat least one zone is in test
1Rno zones are in test
disabled.zone.exists0Rat least one zone is disabled
1Rno zones are disabled
output.disabled0Rat least one output is disabled
1Rno outputs are disabled
sounders.disabled0Rat least one sounder is disabled
1Rno sounders are disabled
sounders.delayed0Rat least one sounder is delayed
1Rno sounders are delayed
global.panel.fault0Rpanel has no fault
1Rthere is at least one fault in the panel
global.power.fault0Rpanel has no power fault
1Rpanel has a power fault
global.pcb.fault0Rpanel has no pcb fault
1Rpanel has a pcb fault
global.loops.fault0Rthe panel has no loop fault
1Rpanel has a loop fault
global.device.fault0Rpanel has no device fault
1Rpanel has a device fault
global.alarm0Rthe panel is not in alarm
1Rpanel is in alarm
global.alarm.from.network0Rpanel is not in network alarm
1Rpanel is in network alarm
global.mcp.alarm0Rpanel has no mcp alarm
1Rpanel has a mcp alarm
global.main.supply.fault0Rpanel has no main supply fault
1Rpanel has a main supply fault
global.ground.fault0Rpanel has no global ground fault
1Rpanel has a global ground fault
global.sounder<n>.short.cut0Rthe sounder <n> is not in short cut
1Rthe sounder <n> is in short cut
global.sounder<n>.quiescent0Rthe sounder <n> is not quiescent
1Rthe sounder <n> is quiescent
global.sounder<n>.short.fault0Rthe sounder <n> is not in short fault
1Rthe sounder <n> is in short fault
global.sounder<n>.sounders.on0Rthe sounder <n> is not active
1Rthe sounder <n> is active
global.relay.fault0Rglobal relay fault is off
1Rglobal relay fault is on
global.relay.alarm0Rglobal relay alarm is off
1Rglobal relay alarm is on
global.faults.counter<n>Rn is the number of global faults
global.alarms.counter<n>Rn is the number of global alarms
loop.<n>.active0Rloop <n> is not active
1Rloop <n> is active
loop.<n>.shortopen.fault0Rloop <n> is not in short or open fault
1Rloop <n> is in short or open fault
loop.<n>.comm.fault0Rloop <n> is not in communication fault
1Rloop <n> is in communication fault
z<n>.fault0Rzone <n> is not in fault. n = 1..250
1Rzone <n> is in fault
z<n>.alarm0Rzone <n> is not in alarm. n = 1..250
1Rzone <n> is in alarm
z<n>.normal0Rzone <n> is not normal status. n = 1..250
1Rzone <n> is in normal status
z<n>.disabled0Rzone <n> is not disabled. n = 1..250
1Rzone <n> is disabled
z<n>.test0Rzone <n> is not in test. n = 1..250
1Rzone <n> is in test
z<n>.name1Rname assigned to the zone <n>
l<k>.d<n>.fault0Rdevice <n> is not in fault. n = 1..250, k = 1..8
1Rzone <n> is in fault
l<k>.d<n>.alarm0Rdevice <n> of loop <k> is not in alarm. n = 1..250, k = 1..8
1Rdevice <n> of loop <k> is in alarm
l<k>.d<n>.normal0Rdevice <n> of loop <k> is not normal status. n = 1..250, k = 1..8
1Rdevice <n> of loop <k> is in normal status
l<k>.d<n>.disabled0Rdevice <n> of loop <k> is not disabled. n = 1..250, k = 1..8
1Rdevice <n> of loop <k> is disabled
l<k>.d<n>.test0Rdevice <n> of loop <k> is not in test. n = 1..250, k = 1..8
1Rdevice <n> of loop <k> is in test
l<k>.d<n>enableWdevice <n> of loop <k> is activated
disableWdevice <n> of loop <k> is disabled
l<k>.d<n>.name1Rname assigned to the device <n> of loop <k>

UISET Actions

IDAttribute
z<n>.namevalue
l<k>.d<n>.namevalue
connection.labelvisibletruewhen datapoint connection = offline
falsewhen datapoint connection = online
<datapoint_id>.1.labelvisibletruewhen datapoint with ID <datapoint_id> has value '1'
falsewhen datapoint with ID <datapoint_id> has value '0'
<datapoint_id>.0.labelvisibletruewhen datapoint with ID <datapoint_id> has value '0'
falsewhen datapoint with ID <datapoint_id> has value '1'

Release Notes

3.9.0

  • fixed a bug on loop status update

3.8.0

  • initial release

Detnov are registered trademarks of Detnov.