Difference between revisions of "DUELUX"

From HSYCO
Jump to navigation Jump to search
 
(72 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 gateway module via a TCP/IP connection.
  
 
[[Category:I/O Server]]
 
[[Category:I/O Server]]
  
 
== HSYCO Configuration ==
 
== HSYCO Configuration ==
Add an DUELUX I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
+
Add an DUELUX I/O Server in the [[Settings#I/O Servers|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 ===
 
=== Communication ===
Line 31: Line 34:
 
|-
 
|-
  
|rowspan="2"|inputdiscovery
+
|rowspan="2"|groupdiscovery
|rowspan="2"|false
+
|rowspan="2"|true
 
|true
 
|true
|auto-detects DOMINO’s input devices as configured in the DFCP, 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
+
|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
Line 43: Line 46:
 
|rowspan="2"|true
 
|rowspan="2"|true
 
|true
 
|true
|auto-detects DOMINO’s output devices as configured in the DFCP, 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
+
|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
 
|false
Line 49: Line 52:
 
|-
 
|-
  
|rowspan="2"|virtualdiscovery
+
|rowspan="2"|areasconfiguration
 
|rowspan="2"|false
 
|rowspan="2"|false
 
|true
 
|true
|auto-detects DOMINO’s virtual points for input and output devices as configured in the DFCP, and automatically creates the list of all detected virtual data points in the systemtopo.txt file. Should be enabled to allow the automatic update of (button) objects’ states
+
|polls the DLCP areas/scenarios set point and delay configuration settings
 
|-
 
|-
 
|false
 
|false
|auto-detect for devices’ virtual data points is disabled
+
|areas configuration polling disabled
 
|-
 
|-
  
Line 65: Line 68:
 
|false
 
|false
 
|do not generate events when a device is detected at start-up
 
|do not generate events when a device is detected at start-up
 +
|-
 +
 +
|rowspan="2"| toolsproxy
 +
|rowspan="2"|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 to the DLCP gateways that are connected to HSYCO. For additional security, it is recommended to set this option only when required
 
|-
 
|-
  
Line 71: Line 89:
 
== 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 ==
 
== Datapoints ==
Line 113: Line 147:
 
|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
 
|on
 
|W
 
|set the light level of the target to the last level set before the off command
 
|-
 
|rowspan="2"|off
 
 
|R
 
|R
|the target is off
+
|the DLCP clock current time
 
|-
 
|-
 +
|read
 
|W
 
|W
|switch the target off
+
|read the DLCP clock, and the delta with HSYCO’s time
|-
 
|rowspan="2"|1...100%
 
|R
 
|the light level of the target corresponds to the reported value
 
 
|-
 
|-
 +
|sync
 
|W
 
|W
|set the light level of the target to the specified value
+
|set the DLCP clock to HSYCO’s current time
 
|-
 
|-
|X/Y
+
 
|W
+
|clock.delta
|set the light level of the target to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
+
|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
 
|-
 
|-
|min
+
 
|W
+
|rowspan="2" |a<n>.s<m>.auto
|set the light level of the target to the minimum level (1%) without fading
+
|0
 +
|R
 +
|area <n> scenario <m> automatic control is off
 
|-
 
|-
|max
+
|1
|W
+
|R
|set the light level of the target to the maximum level (100%) without fading
+
|area <n> scenario <m> automatic control is on
 
|-
 
|-
|up
+
 
|W
+
|rowspan="2" |a<n>.s<m>.delay
|set the light level of the target one step higher
+
|rowspan="2" |0...65535
 +
|R
 +
|area <n> scenario <m> delay in seconds (refreshed every 10 seconds)
 
|-
 
|-
|down
 
 
|W
 
|W
|set the light level of the target one step lower
+
|set area <n> scenario <m> delay in seconds
 
|-
 
|-
  
|rowspan="2"|<n>.lux<sup>[[#note1|[Note 1]]]</sup>
+
|rowspan="2" |a<n>.s<m>.setpoint
|read
+
|rowspan="2" |0...65535
|W
 
|request the reading of the light intensity measured by the targeted MSensor
 
|-
 
|<lux>
 
 
|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
+
|area <n> scenario <m> setpoint (refreshed every 10 seconds)
 
|-
 
|-
 
|broadcast.lux<sup>[[#note1|[Note 1]]]</sup>
 
|read
 
 
|W
 
|W
|request the reading of the light intensity on all the MSensors
+
|set area <n> scenario <m> setpoint level
 
|-
 
|-
  
|e<x>.lux<sup>[[#note2|[Note 2]]]</sup>
+
|rowspan="1"|ai<n>.<m>
where <x> is the eDALI address of the light sensor of the MSensor
+
|0...65535
|<lux>
 
 
|R
 
|R
|the light intensity measured by the targeted MSensor corresponds to the reported value (in lux)
+
|analog value for input <m> of device <n>
 
|-
 
|-
  
|rowspan="3"|motion
+
|rowspan="2" |ai<n>.ide
|g<m><sup>[[#note1|[Note 1]]]</sup>
+
|0
 
|R
 
|R
|a motion event has been reported to group <m>
+
|analog input device <n> ok
 
|-
 
|-
|style="white-space:nowrap"|broadcast<sup>[[#note1|[Note 1]]]</sup>
+
|1
 
|R
 
|R
|a motion event has been broadcasted
+
|analog input device <n> error
 
|-
 
|-
|e<x><sup>[[#note2|[Note 2]]]</sup>
+
 
 +
|rowspan="6"|broadcast
 +
|on
 +
|W
 +
|send a broadcast command to the last level set before the broadcast off command
 +
|-
 +
|rowspan="2"|off
 
|R
 
|R
|a motion event has been generated by the MSensor’s light sensor with eDALI address <x>
+
|last broadcast command sent is off
 
|-
 
|-
 
|<n>.scene
 
g<m>.scene <br/>
 
broadcast.scene
 
|0...15
 
 
|W
 
|W
|set the light level of the target to the value stored for the specified scene number (from 0 to 15)
+
|send a broadcast off command
 
|-
 
|-
 
+
|rowspan="2"|1...100%
|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
+
|current broadcast level
 
|-
 
|-
 
|W
 
|W
|sends the 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> to the system
+
|send a broadcast command to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
 
+
|X/Y
|rowspan="4"|monitor
 
|none
 
 
|W
 
|W
|none of the DALI frames detected on the bus will be reported
+
|send a broadcast command to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
|ignored
+
 
|W
+
|rowspan="2" |broadcast.fadetime
|only the DALI frames detected on the bus not processed by the driver will be reported
+
|rowspan="2" |0...65535
 +
|R
 +
|broadcast fade time in seconds (refreshed every 10 seconds)
 
|-
 
|-
|all
 
 
|W
 
|W
|all the DALI frames detected on the bus will be reported
+
|set the broadcast fade time in seconds
 
|-
 
|-
|<xxyy>
+
 
 +
|rowspan="4"|c<n>
 +
|rowspan="2"|0
 
|R
 
|R
|the reported 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> has been detected on the bus
+
|binary command <n> off
 
|-
 
|-
 
|rowspan="2"|refresh
 
|0
 
 
|W
 
|W
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) won’t be rechecked on every monitor loop iteration
+
|set command <n> off (setting value to "off" is equivalent to "0")
 +
|-
 +
|rowspan="2"|1
 +
|R
 +
|binary command <n> on
 
|-
 
|-
|1
 
 
|W
 
|W
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) will be rechecked on every monitor loop iteration
+
|set command <n> on (setting value to "on" is equivalent to "1")
 
|-
 
|-
  
|rowspan="2"|<n>.error
+
|rowspan="2" |di<n>.<m>
g<m>.error <br/>
 
broadcast.error
 
 
|0
 
|0
 
|R
 
|R
|the target works properly
+
|digital input <m> of device address <n> is off
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|the target is in an error state
+
|digital input <m> of device address <n> is on
 
|-
 
|-
  
|}
+
|rowspan="2" |di<n>.ide
 
+
|0
<span id="note1">
+
|R
;Note 1 : Only available if the MSensor is configured to work in Direct-master mode (default mode).
+
|digital input device <n> ok
</span>
 
 
 
<span id="note2">
 
;Note 2 : Only available if the MSensor is configured to work in Indirect-master mode.
 
</span>
 
 
 
<span id="note3">
 
;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:
 
 
 
{| class="wikitable"
 
!Type of Address
 
!Byte Description
 
 
|-
 
|-
 
+
|1
|Individual address
+
|R
|0AAAAAAS  (AAAAAA = 0 .. 63, S = 0/1)
+
|digital input device <n> error
 
|-
 
|-
  
|Group Address
+
|rowspan="6"|g<n>
|100AAAAS  (AAAA = 0 .. 15, S = 0/1)
+
|on
 +
|W
 +
|set the light level of the group to the last level set before the off command
 
|-
 
|-
 
+
|rowspan="2"|off
|Broadcast Address
+
|R
|1111111S  (S = 0/1)
+
|group is off
 
|-
 
|-
|}
+
|W
 
+
|switch group off
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:
 
 
 
{| class="wikitable"
 
!Command
 
!Description
 
 
|-
 
|-
 
+
|rowspan="2"|1...100%
|00
+
|R
|Extinguish the lamp without fading
+
|current light level
 
|-
 
|-
|01
+
|W
|Dim up 200 ms using the selected fade rate
+
|set the light level of the group to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
|02
+
|X/Y
|Dim down 200 ms using the selected fade rate
+
|W
 +
|set the light level of the group to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
|03
+
 
|Set the actual arc power level one step higher without fading
+
|rowspan="2" |g<n>.fadetime
 +
|rowspan="2" |0...65535
 +
|R
 +
|group fade time in seconds (refreshed every 10 seconds)
 
|-
 
|-
|04
+
|W
|Set the actual arc power level one step lower without fading
+
|set the group fade time in seconds
 
|-
 
|-
|05
+
 
|Set the actual arc power level to the maximum value
+
|rowspan="6"|o<n>
 +
|on
 +
|W
 +
|set the light level of a specific output address to the last level set before the off command
 
|-
 
|-
|06
+
|rowspan="2"|off
|Set the actual arc power level to the minimum value
+
|R
 +
|output is off
 
|-
 
|-
|07
+
|W
|Set the actual arc power level one step lower without fading
+
|switch output off
 
|-
 
|-
|08
+
|rowspan="2"|1...100%
|Set the actual arc power level one step higher without fading
+
|R
 +
|current light level
 
|-
 
|-
|10 + scene
+
|W
|Set the light level to the value stored for the selected scene
+
|set the light level of the output to the specified value (the % leading character is optional. Value range is from 0 to 100)
 
|-
 
|-
|20
+
|X/Y
|Reset the parameters to default settings
+
|W
 +
|set the light level of the output to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
|21
+
 
|Store the current light level in the DTR
+
|rowspan="2"|o<n>.cgf
 +
|0
 +
|R
 +
|output device <n> ok
 
|-
 
|-
|2A
+
|1
|Store the value in the DTR as the maximum level
+
|R
 +
|output device <n> fault
 
|-
 
|-
|2B
+
 
|Store the value in the DTR as the minimum level
+
|rowspan="2"|o<n>.lf
 +
|0
 +
|R
 +
|lamp <n> ok
 
|-
 
|-
|2C
+
|1
|Store the value in the DTR as the system failure level
+
|R
 +
|lamp <n> fault
 
|-
 
|-
|2D
+
 
|Store the value in the DTR as the power on level
+
|rowspan="1"|detected.input.ai<n>.<m>
 +
|<type>
 +
|R
 +
|analog input <m> of device address <n> detected. Types: light sensor
 
|-
 
|-
|2E
+
 
|Store the value in the DTR as the fade time
+
|rowspan="1"|detected.input.di<n>.<m>
|-
+
|<type>
|2F
+
|R
|Store the value in the DTR as the fade rate
+
|digital input <m> of device address <n> detected. Types: push-button, switch, occupancy sensor
|-
 
|40 + scene
 
|Store the value in the DTR as the selected scene
 
|-
 
|50 + scene
 
|Remove the selected scene from the slave unit
 
|-
 
|60 + group
 
|Add the slave unit to the selected group
 
|-
 
|70 + group
 
|Remove the slave unit from the selected group
 
|-
 
|80
 
|Store the value in the DTR as a short address
 
|-
 
|90
 
|Returns the status of the slave as XX
 
|-
 
|91
 
|Check if the slave is working
 
|-
 
|92
 
|Check if there is a lamp failure
 
|-
 
|93
 
|Check if the lamp is operating
 
|-
 
|94
 
|Check if the slave has received a level out of limit
 
|-
 
|95
 
|Check if the slave is in reset state
 
|-
 
|96
 
|Check if the slave is missing a short address
 
|-
 
|97
 
|Returns the version number as XX
 
|-
 
|98
 
|Returns the content of the DTR as XX
 
|-
 
|99
 
|Returns the device type as XX
 
|-
 
|9A
 
|Returns the physical minimum level as XX
 
|-
 
|9B
 
|Check if the slave is in power failure mode
 
|-
 
|A0
 
|Returns the current light level as XX
 
|-
 
|A1
 
|Returns the maximum allowed light level as XX
 
|-
 
|A2
 
|Returns the minimum allowed light level as XX
 
|-
 
|A3
 
|Return the power up level as XX
 
|-
 
|A4
 
|Returns the system failure level as XX
 
|-
 
|A5
 
|Returns the fade time as X and the fade rate as Y
 
 
|-
 
|-
|B0 + scene
 
|Returns the light level XX for the selected scene
 
|-
 
|C0
 
|Returns a bit pattern XX indicating which group (0-7) the slave belongs to
 
|-
 
|C1
 
|Returns a bit pattern XX indicating which group (8-15) the slave belongs to
 
|-
 
|C2
 
|Returns the high bits of the random address as HH
 
|-
 
|C3
 
|Return the middle bit of the random address as MM
 
|-
 
|C4
 
|Returns the lower bits of the random address as LL
 
|-
 
|}
 
  
Other than the above described commands, it is possible to send the following 2-byte DALI frames:
+
|rowspan="1"|detected.output.o<n>
 
+
|<type>
{| class="wikitable"
+
|R
!Frame
+
|output address <n> detected. Types: lamp
!Description
 
 
|-
 
|-
  
|A100
+
|rowspan="2"|o<n>.time
|All special mode processes shall be terminated
+
|rowspan="2" |0...2^32 - 1
 +
|R
 +
|the amount of time the output has been turned on, in seconds (refreshed every 60 seconds)
 
|-
 
|-
|A3XX
+
|W
|Store value XX in the DTR
+
|set the on timer to the specified value, in seconds
|-
 
|A5XX
 
|Initialize addressing commands for slaves with address XX
 
|-
 
|A700
 
|Generate a new random address
 
|-
 
|A900
 
|Compare the random address with the search address
 
|-
 
|AB00
 
|Withdraw from the compare process
 
|-
 
|B1HH
 
|Store value HH as the high bits of the search address
 
|-
 
|B3MM
 
|Store value MM as the middle bits of the search address
 
|-
 
|B5LL
 
|Store value LL as the lower bits of the search address
 
|-
 
|B7XX
 
|Program the selected slave with short address XX
 
|-
 
|B9XX
 
|Check if the selected slave has short address XX
 
|-
 
|BB00
 
|The selected slave returns its short address XX
 
|-
 
|BD00
 
|Go into physical selection mode
 
 
|-
 
|-
 +
 
|}
 
|}
 
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.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
  
[[File:IO Servers Tridonic Project Editor.png|center|border|600px]]
 
 
== Release Notes ==
 
 
=== 3.7.0 ===
 
=== 3.7.0 ===
 
*initial release
 
*initial release

Latest revision as of 15:02, 5 August 2022

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 gateway module via a TCP/IP connection.

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.


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
false areas configuration polling disabled
detectevents false true generate forced events when a device is detected at start-up
false do not generate events when a device is detected at start-up
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 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.


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>.setpoint 0...65535 R area <n> scenario <m> setpoint (refreshed every 10 seconds)
W set area <n> scenario <m> setpoint level
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
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 % leading character is optional. Value range is from 0 to 100)
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
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
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

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.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.