Skip to main content

Duelux

DUELUX is a lighting system based on the DALI-2 industry-standard protocol for lighting control. HSYCO integrates this system and communicates with it through the DLCP or DLCP4 gateway modules via a TCP/IP connection.

DLCP and DLCP4 have a different internal architecture and the corresponding HSYCO datapoints have a different data model and naming. Because of this, there are two distinct datapoints tables below. Other differences are also highlighted in this document.

HSYCO Configuration

Add an DUELUX I/O Server in the I/O Servers section of the Settings and set its parameters.

note

Note that the DUELUX I/O Server counts as 1/4 unit in the I/O servers license total.

Communication

  • IP Address: host name or IP address of the DLCP gateway
  • IP Port: TCP/IP port of the DLCP gateway (defaults to 80 if not set)

High Availability

  • Shutdown when inactive: defaults to false.

Options

IDDefaultValuesDescription
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
groupdiscoverytruetrueauto-detects DALI groups as configured in the DLCP, and automatically creates the list of all detected devices and individual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
falseauto-detect for input devices is disabled
outputdiscoverytruetrueauto-detects DALI output devices as configured in the DLCP, as well as the broadcast command, and automatically creates the list of all detected devices and individual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
falseauto-detect for output devices is disabled
areasconfigurationfalsetruepolls the DLCP areas/scenarios set point and delay configuration settings. Option ignored and always enabled for DLCP4
falseareas configuration polling disabled
detecteventsfalsetruegenerate forced events when a device is detected at start-up
falsedo not generate events when a device is detected at start-up
toolsproxyfalsetrueHSYCO acts as a Web proxy to enable access to DLCP's Web tools
falsetools proxy disabled
toolspasswordstringset this option with a long string (only letters and numbers) password to allow the remote connection of DLPIDE and other configuration tools to the DLCP gateways that are connected to HSYCO. For additional security, it is recommended to set this option only when required
commands640polling of commands is disabled
1..64enables polling for commands C1 to Cn (inclusive). Option ignored and always enabled for DLCP4, where all commands defined in the DLCP4's program are polled

The Device Configuration Database

The systemtopo.txt file contains the list of all groups and individual outputs that could be directly associated to graphic objects in the Web-based user interface. This file can be filled manually or automatically by HSYCO at start-up. To enable automatic discovery, set the 'groupdiscovery' and/or 'outputdiscovery' option to true.

This is an example of an automatically generated systemtopo.txt file:

(devices)
dlcp.g1 : LIGHT ; DIMMER ; G1
dlcp.g10 : LIGHT ; DIMMER ; G10
dlcp.g11 : LIGHT ; DIMMER ; G11
dlcp.g12 : LIGHT ; DIMMER ; G12
dlcp.g13 : LIGHT ; DIMMER ; G13
dlcp.g14 : LIGHT ; DIMMER ; G14
dlcp.g15 : LIGHT ; DIMMER ; G15
dlcp.g16 : LIGHT ; DIMMER ; G16
dlcp.g2 : LIGHT ; DIMMER ; G2
dlcp.g3 : LIGHT ; DIMMER ; G3
dlcp.g4 : LIGHT ; DIMMER ; G4
dlcp.g5 : LIGHT ; DIMMER ; G5
dlcp.g6 : LIGHT ; DIMMER ; G6
dlcp.g7 : LIGHT ; DIMMER ; G7
dlcp.g8 : LIGHT ; DIMMER ; G8
dlcp.g9 : LIGHT ; DIMMER ; G9
dlcp.o1 : LIGHT ; DIMMER ; O1
dlcp.o2 : LIGHT ; DIMMER ; O2
dlcp.o3 : LIGHT ; DIMMER ; O3
dlcp.o4 : LIGHT ; DIMMER ; O4

You should then manually add comments and other optional parameters.

DLCP Web Tools Proxy Access

When the toolsproxy option is set to true, HSYCO acts as a web proxy to enable access to DLCP's Web tools through HSYCO's HTTPS web server.

Use the following URLs to access the tools menu and home page of each one of the connected and enabled DLCP units:

https://<HSYCO Server name and port>/duelux/<I/O Server ID>/webmenu.htm
https://<HSYCO Server name and port>/duelux/<I/O Server ID>/

Note that the .htm suffix is required to directly access the web pages, and the trailing / is required to access the home page.

note

You must be logged in with an administrator account to the HSYCO Server on the same web browser to have access to the tools proxy.

DLCP Datapoints

IDValueR/WDescription
connectiononlineRconnection established
offlineRHSYCO can't connect to the DLCP
clockyyyy-mm-dd hh:mm:ssRthe DLCP clock current time
readWread the DLCP clock, and the delta with HSYCO’s time
syncWset the DLCP clock to HSYCO’s current time
clock.deltainteger numberRthe delta time in seconds between the DLCP and HSYCO clocks. A positive number means that the DLCP clock is ahead of HSYCO
a<n>.s<m>.auto0Rarea <n> scenario <m> automatic control is off
1Rarea <n> scenario <m> automatic control is on
a<n>.s<m>.delay0...65535Rarea <n> scenario <m> delay in seconds (refreshed every 10 seconds)
Wset area <n> scenario <m> delay in seconds
a<n>.s<m>.setpoint0...65535Rarea <n> scenario <m> setpoint (refreshed every 10 seconds)
Wset area <n> scenario <m> setpoint level
a<n>.s<m>.presence0Rarea <n> scenario <m> presence not detected
1Rset area <n> scenario <m> presence detected
a<n>.s<m>.g<x>.activationvalue0...255Rarea <n> scenario <m> group <x> activation value (refreshed only after write)
Wset area <n> scenario <m> group <x> activation value
a<n>.s<m>.g<x>.deactivationvalue0...255Rarea <n> scenario <m> group <x> deactivationvalue value (refreshed only after write)
Wset area <n> scenario <m> group <x> deactivation value
a<n>.s<m>.g<x>.commandonvalue0...255Rarea <n> scenario <m> group <x> command on value (refreshed only after write)
Wset area <n> scenario <m> group <x> command on value
a<n>.s<m>.g<x>.commandoffvalue0...255Rarea <n> scenario <m> group <x> command off value (refreshed only after write)
Wset area <n> scenario <m> group <x> command off value
ai<n>.<m>0...65535Ranalog value for input <m> of device <n>
ai<n>.ide0Ranalog input device <n> ok
1Ranalog input device <n> error
broadcastonWsend a broadcast command to the last level set before the broadcast off command
offRlast broadcast command sent is off
Wsend a broadcast off command
1...100%Rcurrent broadcast level
Wsend a broadcast command to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/YWsend a broadcast command to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
broadcast.fadetime0...65535Rbroadcast fade time in seconds (refreshed every 10 seconds)
Wset the broadcast fade time in seconds
c<n>0Rbinary command <n> off
Wset command <n> off (setting value to "off" is equivalent to "0")
1Rbinary command <n> on
Wset command <n> on (setting value to "on" is equivalent to "1")
di<n>.<m>0Rdigital input <m> of device address <n> is off
1Rdigital input <m> of device address <n> is on
di<n>.ide0Rdigital input device <n> ok
1Rdigital input device <n> error
g<n>onWset the light level of the group to the last level set before the off command
offRgroup is off
Wswitch group off
1...100%Rcurrent light level
Wset the light level of the group to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/YWset the light level of the group to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
g<n>.fadetime0...65535Rgroup fade time in seconds (refreshed every 10 seconds)
Wset the group fade time in seconds
g<n>.lock0Rgroup g<n> can be controlled by DLCP logic rules
Wenable DLCP logic rules for group g<n> Requires DLCP firmware version >= 2.9
1Rgroup g<n> DLCP logic rules disabled
Wdisable DLCP logic rules for group g<n>. Requires DLCP firmware version >= 2.9
o<n>onWset the light level of a specific output address to the last level set before the off command
offRoutput is off
Wswitch output off
1...100%Rcurrent light level
Wset the light level of the output to the specified value (the % leading character is optional. Value range is from 0 to 100)
101..255Rcurrent level for special values (above 100)
Wset the level of the output to the specified value. Value range is from 101 to 255
X/YWset the light level of the output to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
o<n>.cgf0Routput device <n> ok
1Routput device <n> fault
o<n>.lf0Rlamp <n> ok
1Rlamp <n> fault
detected.input.ai<n>.<m><type>Ranalog input <m> of device address <n> detected. Types: light sensor
detected.input.di<n>.<m><type>Rdigital input <m> of device address <n> detected. Types: push-button, switch, occupancy sensor
detected.output.o<n><type>Routput address <n> detected. Types: lamp
o<n>.time0...2^32 - 1Rthe amount of time the output has been turned on, in seconds (refreshed every 60 seconds)
Wset the on timer to the specified value, in seconds
note

Note that c<n> , g<n> and a<n>.s<m> datapoints are loaded dynamically only if defined in DLCP's configuration.

DLCP4 Datapoints

<ch> is the channel number, from 1 to 4, and is always at the beginning of all datapoints that are channel specific, immediately after the I/O server id; for example, duelux.1.o2 refers to output device 2 (control gear) connected to channel 1.

All input, output, command, group and area datapoints are loaded dynamically only if defined in DLCP4's configuration. Broadcast datapoints are not available if no outputs (control gears) are defined for a channel.

IDValueR/WDescription
connectiononlineRconnection established
offlineRHSYCO can't connect to the DLCP4
clockyyyy-mm-dd hh:mm:ssRthe DLCP4 clock current time
readWread the DLCP4 clock, and the delta with HSYCO’s time
syncWset the DLCP4 clock to HSYCO’s current time
clock.deltainteger numberRthe delta time in seconds between the DLCP4 and HSYCO clocks. A positive number means that the DLCP4 clock is ahead of HSYCO
a<n>.s<m>.auto0Rarea <n> scenario <m> automatic control is off
1Rarea <n> scenario <m> automatic control is on
a<n>.s<m>.delay0...65535Rarea <n> scenario <m> delay in seconds (refreshed every 10 seconds)
Wset area <n> scenario <m> delay in seconds
a<n>.s<m>.setpoint0...65535Rarea <n> scenario <m> setpoint (refreshed every 10 seconds)
Wset area <n> scenario <m> setpoint level
a<n>.s<m>.presence0Rarea <n> scenario <m> presence not detected
1Rset area <n> scenario <m> presence detected
a<n>.s<m>.g<x>.activationvalue0...255Rarea <n> scenario <m> group <x> activation value (refreshed only after write)
Wset area <n> scenario <m> group <x> activation value
a<n>.s<m>.g<x>.deactivationvalue0...255Rarea <n> scenario <m> group <x> deactivationvalue value (refreshed only after write)
Wset area <n> scenario <m> group <x> deactivation value
a<n>.s<m>.g<x>.commandonvalue0...255Rarea <n> scenario <m> group <x> command on value (refreshed only after write)
Wset area <n> scenario <m> group <x> command on value
a<n>.s<m>.g<x>.commandoffvalue0...255Rarea <n> scenario <m> group <x> command off value (refreshed only after write)
Wset area <n> scenario <m> group <x> command off value
<ch>.ai<n>.<i>0...65535Ranalog value for the input instance <i> of the device <n> on channel <ch>
<ch>.i<n>.derr0Rinput device <n> ok on channel <ch>
1Rinput device <n> error on channel <ch>
<ch>.broadcastonWsend a broadcast command to the last level set before the broadcast off command
offRlast broadcast command sent is off
Wsend a broadcast off command
1...100%Rcurrent broadcast level
Wsend a broadcast command to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/YWsend a broadcast command to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.broadcast.fadetime0...65535Rbroadcast fade time in seconds (refreshed every 10 seconds)
Wset the broadcast fade time in seconds
c<n>0Rbinary command <n> off
Wset command <n> off (setting value to "off" is equivalent to "0")
1Rbinary command <n> on
Wset command <n> on (setting value to "on" is equivalent to "1")
<ch>.di<n>.<m>0Rdigital input <m> of device address <n> on channel <ch> is off
1Rdigital input <m> of device address <n> on channel <ch> is on
<ch>.g<n>onWset the light level of the group on channel <ch> to the last level set before the off command
offRgroup <n> on channel <ch> is off
Wswitch group <n> on channel <ch> to off
1...100%Rcurrent light level
Wset the light level of the group <n> on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/YWset the light level of the group <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.g<n>.fadetime0...65535Rgroup <n> on channel <ch> fade time in seconds (refreshed every 10 seconds)
Wset the group <n> on channel <ch> fade time in seconds
<ch>.g<n>.lock0Rgroup g<n> on channel <ch> can be controlled by DLCP4 logic rules
Wenable DLCP4 logic rules for group g<n>
1Rgroup g<n> on channel <ch> disabled
Wdisable DLCP4 logic rules for group g<n>
<ch>.o<n>onWset the light level of a the output <n> on channel <ch> address to the last level set before the off command
offRoutput <n> on channel <ch> is off
Wswitch output <n> on channel <ch> off
1...100%Rcurrent light level of output <n> on channel <ch>
Wset the light level of the output <n> on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
101..255Rcurrent level of output <n> on channel <ch> for special values (above 100)
Wset the level of the output <n> on channel <ch> to the specified value. Value range is from 101 to 255
X/YWset the light level of the output <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.o<n>.gfail0Routput device <n> on channel <ch> control gear ok
1Routput device <n> on channel <ch> control gear fault
<ch>.o<n>.lfail0Routput device <n> on channel <ch> lamp ok
1Routput device <n> on channel <ch> lamp fault
<ch>.o<n>.time0...2^32 - 1Rthe amount of time output <n> on channel <ch> has been turned on, in seconds (refreshed every 60 seconds)
Wset the on timer to the specified value, in seconds
detected.command.c<n>.equationtrueRequation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
falseRequation defined for command <n>. Command status can be controlled by HSYCO
detected.group.<ch>.g<n>.busfail0..101Rgroup <n> on channel <ch> defined. Level set after bus failure (0 to 100 percent, or 101 to reset the last level)
detected.group.<ch>.g<n>.cg<value>Rgroup <n> on channel <ch> defined. List of control gears in this group
detected.group.<ch>.g<n>.max0..101Rgroup <n> on channel <ch> defined. Maximum level range (0 to 100 percent, or 101 to reset the last level)
detected.group.<ch>.g<n>.min0..101Rgroup <n> on channel <ch> defined. Minimum level range (0 to 100 percent, or 101 to reset the last level)
detected.group.<ch>.g<n>.poweron0..101Rgroup <n> on channel <ch> defined. Level set on power on (0 to 100 percent, or 101 to reset the last level)
detected.input.<ch>.ai<n>.c<i>.enabledtrueRanalog input instance <i> of device <n> on channel <ch> detected, enabled
falseRanalog input instance <i> of device <n> on channel <ch> detected, disabled
detected.input.<ch>.di<n>.c<i>.type<type>Ranalog input instance <i> of device <n> on channel <ch> detected. Type: "light sensor" or "generic"
detected.input.<ch>.di<n>.c<i>.enabledtrueRdigital input instance <i> of device <n> on channel <ch> detected, enabled
falseRdigital input instance <i> of device <n> on channel <ch> detected, disabled
detected.input.<ch>.ai<n>.c<i>.type<type>Rdigital input instance <i> of device <n> on channel <ch> detected. Type: "push-button", "switch" or "occupancy sensor"
detected.output.<ch>.o<n>.type<type>Routput <n> on channel <ch> detected. Type: "DT0", "DT1", "DT2", "DT3", "DT4", "DT5", "DT6", "DT7" or "DT8"
detected.output.<ch>.o<n>.option0..255Routput <n> on channel <ch> detected. Option is the decimal representation of the option bits
detected.command.c<n>.equationtrueRequation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
falseREquation defined for command <n>. Command status can be controlled by HSYCO

User Interface

All the devices that have been defined in the systemtopo.txt database are automatically listed in the Project Editor. Adding a slider to control a dimmer requires just a few clicks and no additional EVENTS logic.

Release Notes

3.9.0

  • new a<n>.s<m>.presence data point
  • new a<n>.s<m>.g<x>.activationvalue data point
  • new a<n>.s<m>.g<x>.deactivationvalue data point
  • new a<n>.s<m>.g<x>.commandonvalue data point
  • new a<n>.s<m>.g<x>.commandoffvalue data point
  • new g<n>.lock data point
  • c<n>, g<n> and a<n>.s<m> datapoints are loaded dynamically only if defined in DLCP's configuration
  • o<n>datapoints now accept values between 0 and 255
  • new "commands" option
  • added support for DLCP4

3.8.0

  • support for the "toolspassword" option, to allow DLPIDE and other tools secure remote access to the DLCP via HSYCO
  • new "toolsproxy" option. When set to true, HSYCO acts as a Web proxy to enable access to DLCP's Web tools. Defaults to false
  • broadcast commands support
  • fade time settings support for broadcast and groups
  • the lamp on timer is also writable
  • added support for sliderh, sliderv, slider, sliderbutton and user objects to control outputs or groups level
  • new failure state data points: o<n>.lf (lamp fail), o<n>.cgf (control gear fail), i<n>.ide (input device error)
  • bug fix: button, buttonicon, buttonimage, dimmer UI objects were not shown in the Project Editor add object list
  • bug fix: ai<n>.<m> data points were limited to 255 as maximum value instead of 65535

3.7.0

  • initial release

DUELUX is a registered trademark of DUEMMEGI SRL. DALI, the DALI Logo, DALI-2 and the DALI-2 Logo are trademarks in various countries in the exclusive use of the Digital Illumination Interface Alliance.