Difference between revisions of "DUELUX"

From HSYCO
Jump to navigation Jump to search
 
(131 intermediate revisions by the same user not shown)
Line 1: Line 1:
DUELUX is a lighting system based on the DALI-2 ndustry-standardized protocol for lighting control. HSYCO integrates this system and communicates with it through the DLCP gateway module via a TCP/IP connection.
+
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.
  
 
[[Category:I/O Server]]
 
[[Category:I/O Server]]
  
== Tridonic Configuration ==
+
== HSYCO Configuration ==
An illustrative scenario for a DALI architecture looks as follows:
+
Add an DUELUX I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters.
 
 
[[File:IO Servers Tridonic DALI Architecture.png|center]]
 
 
 
On one BUS, there can be up to 64 dimmers, addressed from 0 to 63, organized in up to 16 groups (0 - 15) or individually addressable.
 
The driver also includes the support for the MSensor 2.0 motion detector and photometer functionalities.
 
The MSensor 2.0 can be configured to work in two different modes:
 
  
*Direct-master mode (default mode): The MSensor has a DALI address and sends motion detection and light regulation commands to the group specified by its rotary switch (if the switch is set on the value X the controlled group will be X - 1, if the switch is set on “0” the commands are broadcasted). The light intensity value measured by the light sensor is only read upon request (see the [[#Datapoints|datapoints table]])
+
{{note|Note that the DUELUX I/O Server counts as 1/4 unit in the I/O servers license total when connected to a DLCP, while it counts as one standard unit when connected to the DLCP4.}}
  
*Indirect-master mode: The MSensor doesn’t have a DALI address and does not control any dimmer directly. The motion detector and the light sensor have two different eDALI (extended DALI) addresses from which they send motion and light intensity asynchronous events.
 
 
== HSYCO Configuration ==
 
Add an NMEA I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
 
  
 
=== Communication ===
 
=== Communication ===
*'''IP Address''': host name or IP address of the NMEA 0183 server
+
*'''IP Address''': host name or IP address of the DLCP gateway
*'''IP Port''': TCP/IP port of the NMEA 0183 server
+
*'''IP Port''': TCP/IP port of the DLCP gateway (defaults to 80 if not set)
  
 
=== High Availability ===
 
=== High Availability ===
Line 35: Line 27:
 
|-
 
|-
  
|rowspan="2"|discovery
+
|rowspan="2"|startupevents
 +
|rowspan="2"|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
 +
|-
 +
 
 +
|rowspan="2"|groupdiscovery
 
|rowspan="2"|true
 
|rowspan="2"|true
 
|true
 
|true
|auto-detects all DALI devices and groups, and automatically lists them in the systemtopo.txt file
+
|auto-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
 
|-
 
|-
 
|false
 
|false
|auto-detect for devices is disabled
+
|auto-detect for input devices is disabled
 
|-
 
|-
  
|rowspan="2"|startupevents
+
|rowspan="2"|outputdiscovery
 +
|rowspan="2"|true
 +
|true
 +
|auto-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
 +
|-
 +
|false
 +
|auto-detect for output devices is disabled
 +
|-
 +
 
 +
|rowspan="2"|areasconfiguration
 
|rowspan="2"|false
 
|rowspan="2"|false
 
|true
 
|true
|generate IO events also during the driver’s start-up phase
+
|polls the DLCP areas/scenarios set point and delay configuration settings. Option ignored and always enabled for DLCP4
 
|-
 
|-
 
|false
 
|false
|start generating events only after HSYCO is aligned with the current status of the system
+
|areas configuration polling disabled
 
|-
 
|-
  
|broadcastrange
+
|rowspan="2"|detectevents
|1-254
+
|rowspan="2"|false
|style="white-space:nowrap"|<min>-<max>
+
|true
|specifies the minimum <min> and maximum<max> allowed light levels for the broadcast command
+
|generate "detected" events when a device is detected at start-up
 +
|-
 +
|false
 +
|do not generate events when a device is detected at start-up
 
|-
 
|-
  
|groupsrange
+
|rowspan="2"|commands
|style="white-space:nowrap"|g<n>:1-254
+
|rowspan="2"|64
|style="white-space:nowrap"|g<n>:<min>-<max>
+
|0
|specifies the minimum <min> and maximum<max> allowed light levels for the group <n>. If more than one group range is to be specified, then list the ranges separated by “;”, e.g. groupsrange=g0:20-254;g1:40-250
+
|polling of commands is disabled
 +
|-
 +
|1 ... 64
 +
|enables 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
 
|-
 
|-
  
|luxdelta
+
|rowspan="2"| toolsproxy
|0
+
|rowspan="2"|false
|&ge; 0
+
|true
|option for MSensors. Specifies the minimum difference between light intensity readings required to generate a new event. I.e. when a “xxx.lux” event is generated, a new event (from the same sensor) will be generated only if the new value is greater than the old value plus the luxdelta value or smaller than the old value minus the luxdelta value
+
|HSYCO acts as a Web proxy to enable access to DLCP's Web tools
 +
|-
 +
|false
 +
|tools proxy disabled
 
|-
 
|-
  
 +
|toolspassword
 +
|
 +
|string
 +
|set this option with a long string (only letters and numbers) password to allow the remote  connection of DLPIDE and other configuration tools (not Web-based tools) to the DLCP gateways that are connected to HSYCO. For additional security, it is recommended to set this option only when required
 +
|-
  
 
|}
 
|}
Line 76: Line 100:
 
== The Device Configuration Database ==
 
== The Device Configuration Database ==
  
The systemtopo.txt file contains the list of all dimmers, groups and the broadcast address that could be directly associated to graphic objects in the Web-based user interface.
+
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 and automatic generation of devices’ information in the systemtopo.txt file, set the 'discovery' option to true.  
+
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:
 
This is an example of an automatically generated systemtopo.txt file:
 
<pre>
 
<pre>
 
(devices)
 
(devices)
tr.0 : LIGHT ; DIMMER ;
+
dlcp.g1 : LIGHT ; DIMMER ; G1
tr.1 : LIGHT ; DIMMER ;
+
dlcp.g10 : LIGHT ; DIMMER ; G10
tr.2 : LIGHT ; DIMMER ;
+
dlcp.g11 : LIGHT ; DIMMER ; G11
tr.g1 : LIGHT ; DIMMER ; DALI group [1,2]
+
dlcp.g12 : LIGHT ; DIMMER ; G12
tr.g4 : LIGHT ; DIMMER ; DALI group [0,1]
+
dlcp.g13 : LIGHT ; DIMMER ; G13
tr.broadcast : LIGHT ; DIMMER ; DALI broadcast
+
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
 
</pre>
 
</pre>
  
You should then manually add comments and other optional parameters:
+
You should then manually add comments and other optional parameters.
<pre>
+
 
(devices)
+
== DLCP Web Tools Proxy Access ==
tr.0 : LIGHT ; DIMMER ; door
+
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.
tr.1 : LIGHT ; DIMMER ; corridor 1
+
 
tr.2 : LIGHT ; DIMMER ; corridor 2
+
Use the following URLs to access the tools menu and home page of each one of the connected and enabled DLCP units:
tr.g1 : LIGHT ; DIMMER ; corridor group
+
<nowiki>https://<HSYCO Server name and port>/duelux/<I/O Server ID>/webmenu.htm</nowiki>
tr.g4 : LIGHT ; DIMMER ; entrance group
+
<nowiki>https://<HSYCO Server name and port>/duelux/<I/O Server ID>/</nowiki>
tr.broadcast : LIGHT ; DIMMER ; DALI broadcast
+
 
</pre>
+
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.}}
  
== Datapoints ==
+
== DLCP Datapoints ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 118: Line 158:
 
|offline
 
|offline
 
|R
 
|R
|HSYCO can't connect to the panel
+
|HSYCO can't connect to the DLCP
 
|-
 
|-
  
|rowspan="10"|<n>
+
|rowspan="3"|clock
g<m><br/>
+
|yyyy-mm-dd hh:mm:ss
broadcast
+
|R
 +
|the DLCP clock current time
 +
|-
 +
|read
 +
|W
 +
|read the DLCP clock, and the delta with HSYCO’s time
 +
|-
 +
|sync
 +
|W
 +
|set the DLCP clock to HSYCO’s current time
 +
|-
 +
 
 +
|clock.delta
 +
|integer number
 +
|R
 +
|the delta time in seconds between the DLCP and HSYCO clocks. A positive number means that the DLCP clock is ahead of HSYCO
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.auto
 +
|0
 +
|R
 +
|area <n> scenario <m> automatic control is off
 +
|-
 +
|1
 +
|R
 +
|area <n> scenario <m> automatic control is on
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.delay
 +
|rowspan="2" |0...65535
 +
|R
 +
|area <n> scenario <m> delay in seconds (refreshed every 10 seconds)
 +
|-
 +
|W
 +
|set area <n> scenario <m> delay in seconds
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.presence
 +
|0
 +
|R
 +
|area <n> scenario <m> presence not detected
 +
|-
 +
|1
 +
|R
 +
|area <n> scenario <m> presence detected
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.setpoint
 +
|rowspan="2" |0...65535
 +
|R
 +
|area <n> scenario <m> setpoint (refreshed every 10 seconds)
 +
|-
 +
|W
 +
|set area <n> scenario <m> setpoint level
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.g<x>.activationvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> activation value (refreshed only after write)
 +
|-
 +
|W
 +
|set area <n> scenario <m> group <x> activation value
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.g<x>.deactivationvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> deactivation value (refreshed only after write)
 +
|-
 +
|W
 +
|set area <n> scenario <m> group <x> deactivation value
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.g<x>.commandonvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> command on value (refreshed only after write)
 +
|-
 +
|W
 +
|set area <n> scenario <m> group <x> command on value
 +
|-
 +
 
 +
|rowspan="2" |a<n>.s<m>.g<x>.commandoffvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> command off value (refreshed only after write)
 +
|-
 +
|W
 +
|set area <n> scenario <m> group <x> command off value
 +
|-
 +
 
 +
|rowspan="1"|ai<n>.<m>
 +
|0...65535
 +
|R
 +
|analog value for input <m> of device <n>
 +
|-
 +
 
 +
|rowspan="2" |ai<n>.ide
 +
|0
 +
|R
 +
|analog input device <n> ok
 +
|-
 +
|1
 +
|R
 +
|analog input device <n> error
 +
|-
 +
 
 +
|rowspan="6"|broadcast
 
|on
 
|on
 
|W
 
|W
|set the light level of the target to the last level set before the off command
+
|send a broadcast command to the last level set before the broadcast off command
 
|-
 
|-
 
|rowspan="2"|off
 
|rowspan="2"|off
 
|R
 
|R
|the target is off
+
|last broadcast command sent is off
 
|-
 
|-
 
|W
 
|W
|switch the target off
+
|send a broadcast off command
 
|-
 
|-
 
|rowspan="2"|1...100%
 
|rowspan="2"|1...100%
 
|R
 
|R
|the light level of the target corresponds to the reported value
+
|current broadcast level
 
|-
 
|-
 
|W
 
|W
|set the light level of the target to the specified value
+
|send a broadcast command to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
 
|X/Y
 
|X/Y
 
|W
 
|W
|set the light level of the target to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
+
|send a broadcast command to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 +
|-
 +
 
 +
|rowspan="2" |broadcast.fadetime
 +
|rowspan="2" |0...65535
 +
|R
 +
|broadcast fade time in seconds (refreshed every 10 seconds)
 
|-
 
|-
|min
 
 
|W
 
|W
|set the light level of the target to the minimum level (1%) without fading
+
|set the broadcast fade time in seconds
 +
|-
 +
 
 +
|rowspan="4"|c<n>
 +
|rowspan="2"|0
 +
|R
 +
|binary command <n> off
 
|-
 
|-
|max
 
 
|W
 
|W
|set the light level of the target to the maximum level (100%) without fading
+
|set command <n> off (setting value to "off" is equivalent to "0")
 
|-
 
|-
|up
+
|rowspan="2"|1
|W
+
|R
|set the light level of the target one step higher
+
|binary command <n> on
 
|-
 
|-
|down
 
 
|W
 
|W
|set the light level of the target one step lower
+
|set command <n> on (setting value to "on" is equivalent to "1")
 
|-
 
|-
  
|rowspan="2"|<n>.lux<sup>[[#note1|[Note 1]]]</sup>
+
|rowspan="2" |di<n>.<m>
|read
+
|0
|W
+
|R
|request the reading of the light intensity measured by the targeted MSensor
+
|digital input <m> of device address <n> is off
 
|-
 
|-
|<lux>
+
|1
 
|R
 
|R
|the light intensity measured by the targeted MSensor corresponds to the reported value (in lux). The reading must be requested via the “read” function
+
|digital input <m> of device address <n> is on
 
|-
 
|-
  
|broadcast.lux<sup>[[#note1|[Note 1]]]</sup>
+
|rowspan="2" |di<n>.ide
|read
+
|0
|W
+
|R
|request the reading of the light intensity on all the MSensors
+
|digital input device <n> ok
 
|-
 
|-
 
+
|1
|e<x>.lux<sup>[[#note2|[Note 2]]]</sup>
 
where <x> is the eDALI address of the light sensor of the MSensor
 
|<lux>
 
 
|R
 
|R
|the light intensity measured by the targeted MSensor corresponds to the reported value (in lux)
+
|digital input device <n> error
 
|-
 
|-
  
|rowspan="3"|motion
+
|rowspan="6"|g<n>
|g<m><sup>[[#note1|[Note 1]]]</sup>
+
|on
 +
|W
 +
|set the light level of the group to the last level set before the off command
 +
|-
 +
|rowspan="2"|off
 
|R
 
|R
|a motion event has been reported to group <m>
+
|group is off
 +
|-
 +
|W
 +
|switch group off
 
|-
 
|-
|style="white-space:nowrap"|broadcast<sup>[[#note1|[Note 1]]]</sup>
+
|rowspan="2"|1...100%
 
|R
 
|R
|a motion event has been broadcasted
+
|current light level
 +
|-
 +
|W
 +
|set the light level of the group to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
|e<x><sup>[[#note2|[Note 2]]]</sup>
+
|X/Y
 +
|W
 +
|set the light level of the group to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 +
|-
 +
 
 +
|rowspan="2" |g<n>.fadetime
 +
|rowspan="2" |0...65535
 
|R
 
|R
|a motion event has been generated by the MSensor’s light sensor with eDALI address <x>
+
|group fade time in seconds (refreshed every 10 seconds)
 +
|-
 +
|W
 +
|set the group fade time in seconds
 
|-
 
|-
  
|<n>.scene
+
|rowspan="4"|g<n>.lock
g<m>.scene <br/>
+
|rowspan="2"|0
broadcast.scene
+
|R
|0...15
+
|group <n> can be controlled by DLCP logic rules
 +
|-
 
|W
 
|W
|set the light level of the target to the value stored for the specified scene number (from 0 to 15)
+
|enable DLCP logic rules for group <n>. Requires DLCP firmware version >= 2.9
 
|-
 
|-
 
+
|rowspan="2"|1
|rowspan="2"|command
 
|rowspan="2"|<xxyy>
 
 
|R
 
|R
|the 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> has been sent to the system
+
|group <n> DLCP logic rules disabled
 
|-
 
|-
 
|W
 
|W
|sends the 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> to the system
+
|disable DLCP logic rules for group <n>. Requires DLCP firmware version >= 2.9
 
|-
 
|-
  
|rowspan="4"|monitor
+
|rowspan="8"|o<n>
|none
+
|on
 
|W
 
|W
|none of the DALI frames detected on the bus will be reported
+
|set the light level of a specific output address to the last level set before the off command
 +
|-
 +
|rowspan="2"|off
 +
|R
 +
|output is off
 
|-
 
|-
|ignored
 
 
|W
 
|W
|only the DALI frames detected on the bus not processed by the driver will be reported
+
|switch output off
 +
|-
 +
|rowspan="2"|1...100%
 +
|R
 +
|current light level
 
|-
 
|-
|all
 
 
|W
 
|W
|all the DALI frames detected on the bus will be reported
+
|set the light level of the output to the specified value (the % trailing character is optional. Written value range is from 0 to 100)
 
|-
 
|-
|<xxyy>
+
|rowspan="2"|101..255
 
|R
 
|R
|the reported 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> has been detected on the bus
+
|current level for special values (above 100)
 +
|-
 +
|W
 +
|set the level of the output to the specified value. Value range is from 101 to 255
 +
|-
 +
|X/Y
 +
|W
 +
|set the light level of the output to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
  
|rowspan="2"|refresh
+
|rowspan="2"|o<n>.cgf
 
|0
 
|0
|W
+
|R
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) won’t be rechecked on every monitor loop iteration
+
|output device <n> ok
 
|-
 
|-
 
|1
 
|1
|W
+
|R
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) will be rechecked on every monitor loop iteration
+
|output device <n> fault
 
|-
 
|-
  
|rowspan="2"|<n>.error
+
|rowspan="2"|o<n>.lf
g<m>.error <br/>
 
broadcast.error
 
 
|0
 
|0
 
|R
 
|R
|the target works properly
+
|lamp <n> ok
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|the target is in an error state
+
|lamp <n> fault
 +
|-
 +
 
 +
|rowspan="2"|o<n>.time
 +
|rowspan="2" |0...2^32 - 1
 +
|R
 +
|the amount of time the output has been turned on, in seconds (refreshed every 60 seconds)
 +
|-
 +
|W
 +
|set the on timer to the specified value, in seconds
 +
|-
 +
 
 +
|rowspan="1"|detected.input.ai<n>.<m>
 +
|<type>
 +
|R
 +
|analog input <m> of device address <n> detected. Types: light sensor
 +
|-
 +
 
 +
|rowspan="1"|detected.input.di<n>.<m>
 +
|<type>
 +
|R
 +
|digital input <m> of device address <n> detected. Types: push-button, switch, occupancy sensor
 +
|-
 +
 
 +
|rowspan="1"|detected.output.o<n>
 +
|<type>
 +
|R
 +
|output address <n> detected. Types: lamp
 
|-
 
|-
  
 
|}
 
|}
  
<span id="note1">
+
{{note|Note that c<n>, g<n> and a<n>.s<m> datapoints are loaded dynamically only if defined in DLCP's configuration.}}
;Note 1 : Only available if the MSensor is configured to work in Direct-master mode (default mode).
 
</span>
 
  
<span id="note2">
+
== DLCP4 Datapoints ==
;Note 2 : Only available if the MSensor is configured to work in Indirect-master mode.
 
</span>
 
  
<span id="note3">
+
<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.
;Note 3 : The 2-byte DALI frames consist of an 8-bit address part and an 8-bit command part.
 
</span>
 
  
The address byte is formatted as follows:
+
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.
  
 
{| class="wikitable"
 
{| class="wikitable"
!Type of Address
+
!ID
!Byte Description
+
!Value
 +
!R/W
 +
!Description
 +
 
 
|-
 
|-
  
|Individual address
+
|rowspan="2" |connection
|0AAAAAAS  (AAAAAA = 0 .. 63, S = 0/1)
+
|online
 +
|R
 +
|connection established
 +
|-
 +
|offline
 +
|R
 +
|HSYCO can't connect to the DLCP4
 
|-
 
|-
  
|Group Address
+
|rowspan="3"|clock
|100AAAAS  (AAAA = 0 .. 15, S = 0/1)
+
|yyyy-mm-dd hh:mm:ss
 +
|R
 +
|the DLCP4 clock current time
 +
|-
 +
|read
 +
|W
 +
|read the DLCP4 clock, and the delta with HSYCO’s time
 +
|-
 +
|sync
 +
|W
 +
|set the DLCP4 clock to HSYCO’s current time
 
|-
 
|-
  
|Broadcast Address
+
|clock.delta
|1111111S  (S = 0/1)
+
|integer number
 +
|R
 +
|the delta time in seconds between the DLCP4 and HSYCO clocks. A positive number means that the DLCP4 clock is ahead of HSYCO
 
|-
 
|-
|}
 
  
The command byte is to be interpreted as an arc power level (light intensity) if bit S is 0. The arc power can range between 00 (off) and and FE (maximum level) expressed in hexadecimal. A 1 in the position S means that the command byte is to be interpreted as a DALI command. Refer to the following table for a list of all available commands:
+
|rowspan="2" |a<n>.s<m>.auto
 +
|0
 +
|R
 +
|area <n> scenario <m> automatic control is off
 +
|-
 +
|1
 +
|R
 +
|area <n> scenario <m> automatic control is on
 +
|-
  
{| class="wikitable"
+
|rowspan="2" |a<n>.s<m>.delay
!Command
+
|rowspan="2" |0...65535
!Description
+
|R
 +
|area <n> scenario <m> delay in seconds (refreshed every 10 seconds)
 +
|-
 +
|W
 +
|set area <n> scenario <m> delay in seconds
 
|-
 
|-
  
|00
+
|rowspan="2" |a<n>.s<m>.presence
|Extinguish the lamp without fading
+
|0
 +
|R
 +
|area <n> scenario <m> presence not detected
 
|-
 
|-
|01
+
|1
|Dim up 200 ms using the selected fade rate
+
|R
 +
|area <n> scenario <m> presence detected
 
|-
 
|-
|02
+
 
|Dim down 200 ms using the selected fade rate
+
|rowspan="2" |a<n>.s<m>.setpoint
 +
|rowspan="2" |0...65535
 +
|R
 +
|area <n> scenario <m> setpoint (refreshed every 10 seconds)
 
|-
 
|-
|03
+
|W
|Set the actual arc power level one step higher without fading
+
|set area <n> scenario <m> setpoint level
 
|-
 
|-
|04
+
 
|Set the actual arc power level one step lower without fading
+
|rowspan="2" |a<n>.s<m>.g<x>.activationvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> activation value (refreshed every 10 seconds)
 
|-
 
|-
|05
+
|W
|Set the actual arc power level to the maximum value
+
|set area <n> scenario <m> group <x> activation value
 
|-
 
|-
|06
+
 
|Set the actual arc power level to the minimum value
+
|rowspan="2" |a<n>.s<m>.g<x>.deactivationvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> deactivation value (refreshed every 10 seconds)
 
|-
 
|-
|07
+
|W
|Set the actual arc power level one step lower without fading
+
|set area <n> scenario <m> group <x> deactivation value
 
|-
 
|-
|08
+
 
|Set the actual arc power level one step higher without fading
+
|rowspan="2" |a<n>.s<m>.g<x>.commandonvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> command on value (refreshed every 10 seconds)
 
|-
 
|-
|10 + scene
+
|W
|Set the light level to the value stored for the selected scene
+
|set area <n> scenario <m> group <x> command on value
 
|-
 
|-
|20
+
 
|Reset the parameters to default settings
+
|rowspan="2" |a<n>.s<m>.g<x>.commandoffvalue
 +
|rowspan="2" |0...255
 +
|R
 +
|area <n> scenario <m> group <x> command off value (refreshed every 10 seconds)
 
|-
 
|-
|21
+
|W
|Store the current light level in the DTR
+
|set area <n> scenario <m> group <x> command off value
 
|-
 
|-
|2A
+
 
|Store the value in the DTR as the maximum level
+
|rowspan="1"|<ch>.ai<n>.<nowiki><i></nowiki>
 +
|0...65535
 +
|R
 +
|analog value for input instance <nowiki><i></nowiki> of device <n> on channel <ch>
 
|-
 
|-
|2B
+
 
|Store the value in the DTR as the minimum level
+
|rowspan="2" |<ch>.i<n>.derr
 +
|0
 +
|R
 +
|input device <n> ok on channel <ch>
 
|-
 
|-
|2C
+
|1
|Store the value in the DTR as the system failure level
+
|R
 +
|input device <n> error on channel <ch>
 
|-
 
|-
|2D
+
 
|Store the value in the DTR as the power on level
+
|rowspan="6"|<ch>.broadcast
 +
|on
 +
|W
 +
|send a broadcast command on channel <ch> to the last level set before the broadcast off command
 
|-
 
|-
|2E
+
|rowspan="2"|off
|Store the value in the DTR as the fade time
+
|R
 +
|last broadcast command sent on channel <ch> is off
 
|-
 
|-
|2F
+
|W
|Store the value in the DTR as the fade rate
+
|send a broadcast off command on channel <ch>
 
|-
 
|-
|40 + scene
+
|rowspan="2"|1...100%
|Store the value in the DTR as the selected scene
+
|R
 +
|current broadcast level on channel <ch>
 
|-
 
|-
|50 + scene
+
|W
|Remove the selected scene from the slave unit
+
|send a broadcast command on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
|60 + group
+
|X/Y
|Add the slave unit to the selected group
+
|W
 +
|send a broadcast command on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
|70 + group
+
 
|Remove the slave unit from the selected group
+
|rowspan="2" |<ch>.broadcast.fadetime
 +
|rowspan="2" |0...65535
 +
|R
 +
|broadcast fade time on channel <ch>, in seconds (refreshed every 10 seconds)
 
|-
 
|-
|80
+
|W
|Store the value in the DTR as a short address
+
|set the broadcast fade time in seconds on channel <ch>
 
|-
 
|-
|90
+
 
|Returns the status of the slave as XX
+
|rowspan="4"|c<n>
 +
|rowspan="2"|0
 +
|R
 +
|binary command <n> off
 
|-
 
|-
|91
+
|W
|Check if the slave is working
+
|set command <n> off (setting value to "off" is equivalent to "0")
 
|-
 
|-
|92
+
|rowspan="2"|1
|Check if there is a lamp failure
+
|R
 +
|binary command <n> on
 
|-
 
|-
|93
+
|W
|Check if the lamp is operating
+
|set command <n> on (setting value to "on" is equivalent to "1")
 
|-
 
|-
|94
+
 
|Check if the slave has received a level out of limit
+
|rowspan="2" |<ch>.di<n>.<nowiki><i></nowiki>
 +
|0
 +
|R
 +
|digital input instance <nowiki><i></nowiki> of device <n> on channel <ch> is off
 
|-
 
|-
|95
+
|1
|Check if the slave is in reset state
+
|R
 +
|digital input instance <nowiki><i></nowiki> of device <n> on channel <ch> is on
 
|-
 
|-
|96
+
 
|Check if the slave is missing a short address
+
|rowspan="6"|<ch>.g<n>
 +
|on
 +
|W
 +
|set the level of group <n> on channel <ch> to the last level set before the off command
 
|-
 
|-
|97
+
|rowspan="2"|off
|Returns the version number as XX
+
|R
 +
|group <n> on channel <ch> is off
 
|-
 
|-
|98
+
|W
|Returns the content of the DTR as XX
+
|switch group <n> on channel <ch> off
 
|-
 
|-
|99
+
|rowspan="2"|1...100%
|Returns the device type as XX
+
|R
 +
|current light level
 
|-
 
|-
|9A
+
|W
|Returns the physical minimum level as XX
+
|set the level of group <n> on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
|9B
+
|X/Y
|Check if the slave is in power failure mode
+
|W
 +
|set the level of group <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 +
|-
 +
 
 +
|rowspan="2" |<ch>.g<n>.fadetime
 +
|rowspan="2" |0...65535
 +
|R
 +
|group <n> on channel <ch> fade time in seconds (refreshed every 10 seconds)
 +
|-
 +
|W
 +
|set group <n> on channel <ch> fade time in seconds
 +
|-
 +
 
 +
|rowspan="4"|<ch>.g<n>.lock
 +
|rowspan="2"|0
 +
|R
 +
|group <n> on channel <ch> can be controlled by DLCP4 logic rules
 +
|-
 +
|W
 +
|enable DLCP4 logic rules for group <n> on channel <ch>
 +
|-
 +
|rowspan="2"|1
 +
|R
 +
|group <n> on channel <ch> DLCP4 logic rules disabled
 +
|-
 +
|W
 +
|disable DLCP4 logic rules for group <n> on channel <ch>
 +
|-
 +
 
 +
|rowspan="8"|<ch>.o<n>
 +
|on
 +
|W
 +
|set the level of output <n> on channel <ch> address to the last level set before the off command
 +
|-
 +
|rowspan="2"|off
 +
|R
 +
|output <n> on channel <ch> is off
 
|-
 
|-
|A0
+
|W
|Returns the current light level as XX
+
|switch output <n> on channel <ch> off
 
|-
 
|-
|A1
+
|rowspan="2"|1...100%
|Returns the maximum allowed light level as XX
+
|R
 +
|current level of output <n> on channel <ch>
 
|-
 
|-
|A2
+
|W
|Returns the minimum allowed light level as XX
+
|set the level of output <n> on channel <ch> to the specified value (the % trailing character is optional. Written value range is from 0 to 100)
 
|-
 
|-
|A3
+
|rowspan="2"|101..255
|Return the power up level as XX
+
|R
 +
|current level of output <n> on channel <ch> for special values (above 100)
 
|-
 
|-
|A4
+
|W
|Returns the system failure level as XX
+
|set the level of output <n> on channel <ch> to the specified value. Value range is from 101 to 255
 +
|-
 +
|X/Y
 +
|W
 +
|set the level of output <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 +
|-
 +
 
 +
|rowspan="2"|<ch>.o<n>.gfail
 +
|0
 +
|R
 +
|output <n> on channel <ch> control gear ok
 
|-
 
|-
|A5
+
|1
|Returns the fade time as X and the fade rate as Y
+
|R
 +
|output <n> on channel <ch> control gear fault
 
|-
 
|-
|B0 + scene
+
 
|Returns the light level XX for the selected scene
+
|rowspan="2"|<ch>.o<n>.lfail
 +
|0
 +
|R
 +
|output <n> on channel <ch> lamp ok
 
|-
 
|-
|C0
+
|1
|Returns a bit pattern XX indicating which group (0-7) the slave belongs to
+
|R
 +
|output <n> on channel <ch> lamp fault
 
|-
 
|-
|C1
+
 
|Returns a bit pattern XX indicating which group (8-15) the slave belongs to
+
|rowspan="2"|<ch>.o<n>.time
 +
|rowspan="2" |0...2^32 - 1
 +
|R
 +
|the amount of time output <n> on channel <ch> has been turned on, in seconds (refreshed every 60 seconds)
 
|-
 
|-
|C2
+
|W
|Returns the high bits of the random address as HH
+
|set the on timer to the specified value, in seconds
 
|-
 
|-
|C3
+
 
|Return the middle bit of the random address as MM
+
|rowspan="2"|detected.command.c<n>.equation
 +
|true
 +
|R
 +
|Equation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
 
|-
 
|-
|C4
+
|false
|Returns the lower bits of the random address as LL
+
|R
 +
|Equation defined for command <n>. Command status can be controlled by HSYCO
 
|-
 
|-
|}
 
  
Other than the above described commands, it is possible to send the following 2-byte DALI frames:
+
|rowspan="1"|detected.group.<ch>.g<n>.busfail
 +
|0...101
 +
|R
 +
|group <n> on channel <ch> defined. Level set after bus failure (0 to 100 percent, or 101 to reset the last level)
 +
|-
  
{| class="wikitable"
+
|rowspan="1"|detected.group.<ch>.g<n>.cg
!Frame
+
|<value>
!Description
+
|R
 +
|group <n> on channel <ch> defined. List of control gears in this group
 
|-
 
|-
  
|A100
+
|rowspan="1"|detected.group.<ch>.g<n>.max
|All special mode processes shall be terminated
+
|0...101
 +
|R
 +
|group <n> on channel <ch> defined. Maximum level range (0 to 100 percent, or 101 to reset the last level)
 
|-
 
|-
|A3XX
+
 
|Store value XX in the DTR
+
|rowspan="1"|detected.group.<ch>.g<n>.min
 +
|0...101
 +
|R
 +
|group <n> on channel <ch> defined. Minimum level range (0 to 100 percent, or 101 to reset the last level)
 
|-
 
|-
|A5XX
+
 
|Initialize addressing commands for slaves with address XX
+
|rowspan="1"|detected.group.<ch>.g<n>.poweron
 +
|0...101
 +
|R
 +
|group <n> on channel <ch> defined. Level set at power on (0 to 100 percent, or 101 to reset the last level)
 
|-
 
|-
|A700
+
 
|Generate a new random address
+
|rowspan="2"|detected.input.<ch>.ai<n>.<nowiki><i></nowiki>.enabled
 +
|true
 +
|R
 +
|analog input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected, enabled
 
|-
 
|-
|A900
+
|false
|Compare the random address with the search address
+
|R
 +
|analog input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected, disabled
 
|-
 
|-
|AB00
+
 
|Withdraw from the compare process
+
|rowspan="1"|detected.input.<ch>.ai<n>.<nowiki><i></nowiki>.type
 +
|<type>
 +
|R
 +
|analog input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected. Type: "light sensor" or "generic"
 
|-
 
|-
|B1HH
+
 
|Store value HH as the high bits of the search address
+
|rowspan="2"|detected.input.<ch>.di<n>.<nowiki><i></nowiki>.enabled
 +
|true
 +
|R
 +
|digital input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected, enabled
 
|-
 
|-
|B3MM
+
|false
|Store value MM as the middle bits of the search address
+
|R
 +
|digital input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected, disabled
 
|-
 
|-
|B5LL
+
 
|Store value LL as the lower bits of the search address
+
|rowspan="1"|detected.input.<ch>.di<n>.<nowiki><i></nowiki>.type
 +
|<type>
 +
|R
 +
|digital input instance <nowiki><i></nowiki> of device <n> on channel <ch> detected. Type: "push-button", "switch" or "occupancy sensor"
 
|-
 
|-
|B7XX
+
 
|Program the selected slave with short address XX
+
|rowspan="1"|detected.output.<ch>.o<n>.type
 +
|<type>
 +
|R
 +
|output address <n> on channel <ch> detected. Type: "DT0", "DT1", "DT2", "DT3", "DT4", "DT5", "DT6", "DT7" or "DT8"
 
|-
 
|-
|B9XX
+
 
|Check if the selected slave has short address XX
+
|rowspan="1"|detected.output.<ch>.o<n>.option
 +
|0...255
 +
|R
 +
|output address <n> on channel <ch> detected. Option is the decimal representation of the option bits
 
|-
 
|-
|BB00
+
 
|The selected slave returns its short address XX
+
|rowspan="2"|detected.command.c<n>.equation
 +
|true
 +
|R
 +
|Equation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
 
|-
 
|-
|BD00
+
|false
|Go into physical selection mode
+
|R
 +
|Equation defined for command <n>. Command status can be controlled by HSYCO
 
|-
 
|-
 +
 
|}
 
|}
 
The value of the events ID.command and ID.monitor is expressed as a 4-digits string “XXYY” representing the hexadecimal value (upper case letters) of the two bytes. For instance, to send the command 00 to the group 1 of our system “tr”, the following syntax will apply:
 
tr.command = 8300
 
  
 
== User Interface ==
 
== User Interface ==
All the devices that have been defined in the systemtopo.txt database are automatically listed in the Web Editor. Adding a slider to control a dimmer requires just a few clicks and no additional EVENTS logic.
+
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
  
[[File:IO Servers Tridonic Project Editor.png|center|border|600px]]
+
=== 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
  
== Release Notes ==
 
 
=== 3.7.0 ===
 
=== 3.7.0 ===
 
*initial release
 
*initial release

Latest revision as of 12:02, 30 August 2024

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 that the DUELUX I/O Server counts as 1/4 unit in the I/O servers license total when connected to a DLCP, while it counts as one standard unit when connected to the DLCP4.


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

ID Default Values Description
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
groupdiscovery true true auto-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
false auto-detect for input devices is disabled
outputdiscovery true true auto-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
false auto-detect for output devices is disabled
areasconfiguration false true polls the DLCP areas/scenarios set point and delay configuration settings. Option ignored and always enabled for DLCP4
false areas configuration polling disabled
detectevents false true generate "detected" events when a device is detected at start-up
false do not generate events when a device is detected at start-up
commands 64 0 polling of commands is disabled
1 ... 64 enables 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
toolsproxy false true HSYCO acts as a Web proxy to enable access to DLCP's Web tools
false tools proxy disabled
toolspassword string set this option with a long string (only letters and numbers) password to allow the remote connection of DLPIDE and other configuration tools (not Web-based tools) to the DLCP gateways that are connected to HSYCO. For additional security, it is recommended to set this option only when required

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.

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

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the DLCP
clock yyyy-mm-dd hh:mm:ss R the DLCP clock current time
read W read the DLCP clock, and the delta with HSYCO’s time
sync W set the DLCP clock to HSYCO’s current time
clock.delta integer number R the 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>.auto 0 R area <n> scenario <m> automatic control is off
1 R area <n> scenario <m> automatic control is on
a<n>.s<m>.delay 0...65535 R area <n> scenario <m> delay in seconds (refreshed every 10 seconds)
W set area <n> scenario <m> delay in seconds
a<n>.s<m>.presence 0 R area <n> scenario <m> presence not detected
1 R area <n> scenario <m> presence detected
a<n>.s<m>.setpoint 0...65535 R area <n> scenario <m> setpoint (refreshed every 10 seconds)
W set area <n> scenario <m> setpoint level
a<n>.s<m>.g<x>.activationvalue 0...255 R area <n> scenario <m> group <x> activation value (refreshed only after write)
W set area <n> scenario <m> group <x> activation value
a<n>.s<m>.g<x>.deactivationvalue 0...255 R area <n> scenario <m> group <x> deactivation value (refreshed only after write)
W set area <n> scenario <m> group <x> deactivation value
a<n>.s<m>.g<x>.commandonvalue 0...255 R area <n> scenario <m> group <x> command on value (refreshed only after write)
W set area <n> scenario <m> group <x> command on value
a<n>.s<m>.g<x>.commandoffvalue 0...255 R area <n> scenario <m> group <x> command off value (refreshed only after write)
W set area <n> scenario <m> group <x> command off value
ai<n>.<m> 0...65535 R analog value for input <m> of device <n>
ai<n>.ide 0 R analog input device <n> ok
1 R analog input device <n> error
broadcast on W send a broadcast command to the last level set before the broadcast off command
off R last broadcast command sent is off
W send a broadcast off command
1...100% R current broadcast level
W send a broadcast command to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/Y W send a broadcast command to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
broadcast.fadetime 0...65535 R broadcast fade time in seconds (refreshed every 10 seconds)
W set the broadcast fade time in seconds
c<n> 0 R binary command <n> off
W set command <n> off (setting value to "off" is equivalent to "0")
1 R binary command <n> on
W set command <n> on (setting value to "on" is equivalent to "1")
di<n>.<m> 0 R digital input <m> of device address <n> is off
1 R digital input <m> of device address <n> is on
di<n>.ide 0 R digital input device <n> ok
1 R digital input device <n> error
g<n> on W set the light level of the group to the last level set before the off command
off R group is off
W switch group off
1...100% R current light level
W set the light level of the group to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/Y W set the light level of the group to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
g<n>.fadetime 0...65535 R group fade time in seconds (refreshed every 10 seconds)
W set the group fade time in seconds
g<n>.lock 0 R group <n> can be controlled by DLCP logic rules
W enable DLCP logic rules for group <n>. Requires DLCP firmware version >= 2.9
1 R group <n> DLCP logic rules disabled
W disable DLCP logic rules for group <n>. Requires DLCP firmware version >= 2.9
o<n> on W set the light level of a specific output address to the last level set before the off command
off R output is off
W switch output off
1...100% R current light level
W set the light level of the output to the specified value (the % trailing character is optional. Written value range is from 0 to 100)
101..255 R current level for special values (above 100)
W set the level of the output to the specified value. Value range is from 101 to 255
X/Y W set the light level of the output to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
o<n>.cgf 0 R output device <n> ok
1 R output device <n> fault
o<n>.lf 0 R lamp <n> ok
1 R lamp <n> fault
o<n>.time 0...2^32 - 1 R the amount of time the output has been turned on, in seconds (refreshed every 60 seconds)
W set the on timer to the specified value, in seconds
detected.input.ai<n>.<m> <type> R analog input <m> of device address <n> detected. Types: light sensor
detected.input.di<n>.<m> <type> R digital input <m> of device address <n> detected. Types: push-button, switch, occupancy sensor
detected.output.o<n> <type> R output address <n> detected. Types: lamp
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.

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the DLCP4
clock yyyy-mm-dd hh:mm:ss R the DLCP4 clock current time
read W read the DLCP4 clock, and the delta with HSYCO’s time
sync W set the DLCP4 clock to HSYCO’s current time
clock.delta integer number R the 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>.auto 0 R area <n> scenario <m> automatic control is off
1 R area <n> scenario <m> automatic control is on
a<n>.s<m>.delay 0...65535 R area <n> scenario <m> delay in seconds (refreshed every 10 seconds)
W set area <n> scenario <m> delay in seconds
a<n>.s<m>.presence 0 R area <n> scenario <m> presence not detected
1 R area <n> scenario <m> presence detected
a<n>.s<m>.setpoint 0...65535 R area <n> scenario <m> setpoint (refreshed every 10 seconds)
W set area <n> scenario <m> setpoint level
a<n>.s<m>.g<x>.activationvalue 0...255 R area <n> scenario <m> group <x> activation value (refreshed every 10 seconds)
W set area <n> scenario <m> group <x> activation value
a<n>.s<m>.g<x>.deactivationvalue 0...255 R area <n> scenario <m> group <x> deactivation value (refreshed every 10 seconds)
W set area <n> scenario <m> group <x> deactivation value
a<n>.s<m>.g<x>.commandonvalue 0...255 R area <n> scenario <m> group <x> command on value (refreshed every 10 seconds)
W set area <n> scenario <m> group <x> command on value
a<n>.s<m>.g<x>.commandoffvalue 0...255 R area <n> scenario <m> group <x> command off value (refreshed every 10 seconds)
W set area <n> scenario <m> group <x> command off value
<ch>.ai<n>.<i> 0...65535 R analog value for input instance <i> of device <n> on channel <ch>
<ch>.i<n>.derr 0 R input device <n> ok on channel <ch>
1 R input device <n> error on channel <ch>
<ch>.broadcast on W send a broadcast command on channel <ch> to the last level set before the broadcast off command
off R last broadcast command sent on channel <ch> is off
W send a broadcast off command on channel <ch>
1...100% R current broadcast level on channel <ch>
W send a broadcast command on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/Y W send a broadcast command on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.broadcast.fadetime 0...65535 R broadcast fade time on channel <ch>, in seconds (refreshed every 10 seconds)
W set the broadcast fade time in seconds on channel <ch>
c<n> 0 R binary command <n> off
W set command <n> off (setting value to "off" is equivalent to "0")
1 R binary command <n> on
W set command <n> on (setting value to "on" is equivalent to "1")
<ch>.di<n>.<i> 0 R digital input instance <i> of device <n> on channel <ch> is off
1 R digital input instance <i> of device <n> on channel <ch> is on
<ch>.g<n> on W set the level of group <n> on channel <ch> to the last level set before the off command
off R group <n> on channel <ch> is off
W switch group <n> on channel <ch> off
1...100% R current light level
W set the level of group <n> on channel <ch> to the specified value (the % leading character is optional. Value range is from 0 to 100)
X/Y W set the level of group <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.g<n>.fadetime 0...65535 R group <n> on channel <ch> fade time in seconds (refreshed every 10 seconds)
W set group <n> on channel <ch> fade time in seconds
<ch>.g<n>.lock 0 R group <n> on channel <ch> can be controlled by DLCP4 logic rules
W enable DLCP4 logic rules for group <n> on channel <ch>
1 R group <n> on channel <ch> DLCP4 logic rules disabled
W disable DLCP4 logic rules for group <n> on channel <ch>
<ch>.o<n> on W set the level of output <n> on channel <ch> address to the last level set before the off command
off R output <n> on channel <ch> is off
W switch output <n> on channel <ch> off
1...100% R current level of output <n> on channel <ch>
W set the level of output <n> on channel <ch> to the specified value (the % trailing character is optional. Written value range is from 0 to 100)
101..255 R current level of output <n> on channel <ch> for special values (above 100)
W set the level of output <n> on channel <ch> to the specified value. Value range is from 101 to 255
X/Y W set the level of output <n> on channel <ch> to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
<ch>.o<n>.gfail 0 R output <n> on channel <ch> control gear ok
1 R output <n> on channel <ch> control gear fault
<ch>.o<n>.lfail 0 R output <n> on channel <ch> lamp ok
1 R output <n> on channel <ch> lamp fault
<ch>.o<n>.time 0...2^32 - 1 R the amount of time output <n> on channel <ch> has been turned on, in seconds (refreshed every 60 seconds)
W set the on timer to the specified value, in seconds
detected.command.c<n>.equation true R Equation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
false R Equation defined for command <n>. Command status can be controlled by HSYCO
detected.group.<ch>.g<n>.busfail 0...101 R group <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> R group <n> on channel <ch> defined. List of control gears in this group
detected.group.<ch>.g<n>.max 0...101 R group <n> on channel <ch> defined. Maximum level range (0 to 100 percent, or 101 to reset the last level)
detected.group.<ch>.g<n>.min 0...101 R group <n> on channel <ch> defined. Minimum level range (0 to 100 percent, or 101 to reset the last level)
detected.group.<ch>.g<n>.poweron 0...101 R group <n> on channel <ch> defined. Level set at power on (0 to 100 percent, or 101 to reset the last level)
detected.input.<ch>.ai<n>.<i>.enabled true R analog input instance <i> of device <n> on channel <ch> detected, enabled
false R analog input instance <i> of device <n> on channel <ch> detected, disabled
detected.input.<ch>.ai<n>.<i>.type <type> R analog input instance <i> of device <n> on channel <ch> detected. Type: "light sensor" or "generic"
detected.input.<ch>.di<n>.<i>.enabled true R digital input instance <i> of device <n> on channel <ch> detected, enabled
false R digital input instance <i> of device <n> on channel <ch> detected, disabled
detected.input.<ch>.di<n>.<i>.type <type> R digital input instance <i> of device <n> on channel <ch> detected. Type: "push-button", "switch" or "occupancy sensor"
detected.output.<ch>.o<n>.type <type> R output address <n> on channel <ch> detected. Type: "DT0", "DT1", "DT2", "DT3", "DT4", "DT5", "DT6", "DT7" or "DT8"
detected.output.<ch>.o<n>.option 0...255 R output address <n> on channel <ch> detected. Option is the decimal representation of the option bits
detected.command.c<n>.equation true R Equation defined for command <n>. Command is read-only and cannot be controlled by HSYCO
false R Equation 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.