Difference between revisions of "Tridonic"

From HSYCO
Jump to navigation Jump to search
Line 108: Line 108:
 
|-
 
|-
  
|rowspan="3" |power
+
|rowspan="10"|<n>
|1
+
g<m><br/>
|R
+
broadcast
|the system is on
+
|on
 +
|W
 +
|set the light level of the target to the last level set before the off command
 
|-
 
|-
|rowspan="2"|0
+
|rowspan="2"|off
 
|R
 
|R
| the system is off
+
|the target is off
 
|-
 
|-
 
|W
 
|W
|turn the system off
+
|switch the target off
|-
+
|-
 
+
|rowspan="2"|1...100%
|rowspan="5" |z<n>.power
 
|rowspan="2" |1
 
 
|R
 
|R
|zone <n> is on
+
|the light level of the target corresponds to the reported value
 
|-
 
|-
 
|W
 
|W
|turn zone <n> on
+
|set the light level of the target to the specified value
 
|-
 
|-
|rowspan="2"|0
+
|X/Y
|R
+
|W
|zone <n> is off
+
|set the light level of the target to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
 
|-
 
|-
 +
|min
 
|W
 
|W
|turn zone <n> off
+
|set the light level of the target to the minimum level (1%) without fading
 
|-
 
|-
|flip
+
|max
 
|W
 
|W
|toggle the power status of zone N
+
|set the light level of the target to the maximum level (100%) without fading
 
|-
 
|-
 
+
|up
|rowspan="7" |z<n>.source
+
|W
|0
+
|set the light level of the target one step higher
|R
 
|zone <n> is off
 
 
|-
 
|-
|rowspan="2"|1...6
+
|down
|R
+
|W
|the audio source of zone <n> is set to the reported source number
+
|set the light level of the target one step lower
 
|-
 
|-
 +
 +
|rowspan="2"|<n>.lux<sup>[[#note1|[Note 1]]]</sup>
 +
|read
 
|W
 
|W
|set the audio source of zone <n> to the specified source number
+
|request the reading of the light intensity measured by the targeted MSensor
 
|-
 
|-
|rowspan="2"|r1
+
|<lux>
 
|R
 
|R
|the audio source of zone <n> is set to the radio of module 1
+
|the light intensity measured by the targeted MSensor corresponds to the reported value (in lux). The reading must be requested via the “read” function
 
|-
 
|-
 +
 +
|broadcast.lux<sup>[[#note1|[Note 1]]]</sup>
 +
|read
 
|W
 
|W
|set the audio source of zone <n> to the radio of module 1
+
|request the reading of the light intensity on all the MSensors
 
|-
 
|-
|rowspan="2"|r2
+
 
 +
|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 audio source of zone <n> is set to the radio of module 2
+
|the light intensity measured by the targeted MSensor corresponds to the reported value (in lux)
|-
 
|W
 
|set the audio source of zone <n> to the radio of module 2
 
 
|-
 
|-
  
|rowspan="7" |z<n>.volume
+
|rowspan="3"|motion
|rowspan="2"|off
+
|g<m><sup>[[#note1|[Note 1]]]</sup>
 
|R
 
|R
|zone <n> is muted
+
|a motion event has been reported to group <m>
 
|-
 
|-
|W
+
|broadcast<sup>[[#note1|[Note 1]]]</sup>
|mute zone <n>
+
|R
 +
|a motion event has been broadcasted
 
|-
 
|-
|on
+
|e<x><sup>[[#note2|[Note 2]]]</sup>
|W
 
|un-mute zone <n>
 
|-
 
|rowspan="2"|0...100%
 
 
|R
 
|R
|the volume level of zone <n> is set to the specified value
+
|a motion event has been generated by the MSensor’s light sensor with eDALI address <x>
 
|-
 
|-
 +
 +
|<n>.scene
 +
g<m>.scene <br/>
 +
broadcast.scene
 +
|0...15
 
|W
 
|W
|set the volume level of zone <n> to the specified value
+
|set the light level of the target to the value stored for the specified scene number (from 0 to 15)
 
|-
 
|-
|up
+
 
|W
+
|rowspan="2"|command
|increase the volume level of zone <n>
+
|rowspan="2"|<xxyy>
 +
|R
 +
|the 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> has been sent to the system
 
|-
 
|-
|down
 
 
|W
 
|W
|decrease the volume level of zone <n>
+
|sends the 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> to the system
 
|-
 
|-
  
|rowspan="5"|z<n>.mute
+
|rowspan="4"|monitor
|rowspan="2"|1
+
|none
|R
 
|zone <n> is muted
 
|-
 
 
|W
 
|W
|mute zone <n>
+
|none of the DALI frames detected on the bus will be reported
|-
 
|rowspan="2"|0
 
|R
 
|zone <n> is un-muted
 
 
|-
 
|-
 +
|ignored
 
|W
 
|W
|un-mute zone <n>
+
|only the DALI frames detected on the bus not processed by the driver will be reported
 
|-
 
|-
|flip
+
|all
 
|W
 
|W
|toggle the mute status of zone <n>
+
|all the DALI frames detected on the bus will be reported
 
|-
 
|-
 
+
|<xxyy>
|rowspan="4"|z<n>.bass
 
|rowspan="2"|<val>
 
 
|R
 
|R
|the bass level of zone <n> is set to the specified value (between “-12” and “+12”)
+
|the reported 2-byte hexadecimal DALI frame<sup>[[#note3|[Note 3]]]</sup> has been detected on the bus
 
|-
 
|-
 +
 +
|rowspan="2"|refresh
 +
|0
 
|W
 
|W
|set the bass level of zone <n> to the specified value (between “-12” and “+12”)
+
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) won’t be rechecked on every monitor loop iteration
 
|-
 
|-
|up
+
|1
|W
 
|increases the bass level of zone <n>
 
|-
 
|down
 
 
|W
 
|W
|decreases the bass level of zone <n>
+
|the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) will be rechecked on every monitor loop iteration
 
|-
 
|-
  
|rowspan="4"|z<n>.treble
+
|rowspan="2"|<n>.error
|rowspan="2"|<val>
+
g<m>.error <br/>
 +
broadcast.error
 +
|0
 
|R
 
|R
|the treble level of zone <n> is set to the specified value (between “-12” and “+12”)
+
|the target works properly
 
|-
 
|-
|W
+
|1
|set the treble level of zone <n> to the specified value (between “-12” and “+12”)
+
|R
 +
|the target is in an error state
 
|-
 
|-
|up
+
 
|W
+
|}
|increases the treble level of zone <n>
+
 
 +
<span id="note1">
 +
;Note 1 : Only available if the MSensor is configured to work in Direct-master mode (default mode).
 +
</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
 
|-
 
|-
|down
+
 
|W
+
|Individual address
|decreases the treble level of zone <n>
+
|0AAAAAAS  (AAAAAA = 0 .. 63, S = 0/1)
 
|-
 
|-
  
|rowspan="5"|z<n>.dnd
+
|Group Address
|rowspan="2"|1
+
|100AAAAS  (AAAA = 0 .. 15, S = 0/1)
|R
 
|“do not disturb” mode is enabled on zone <n>
 
 
|-
 
|-
|W
+
 
|enable “do not disturb” mode on zone <n>
+
|Broadcast Address
 +
|1111111S  (S = 0/1)
 
|-
 
|-
|rowspan="2"|0
+
|}
|R
+
 
|“do not disturb” mode is disabled on zone <n>
+
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
 
|-
 
|-
|W
+
 
|disable “do not disturb” mode on zone <n>
+
|00
 +
|Extinguish the lamp without fading
 
|-
 
|-
|flip
+
|01
|W
+
|Dim up 200 ms using the selected fade rate
|toggles the “do not disturb” mode on zone <n>
 
 
|-
 
|-
 
+
|02
|rowspan="5"|z<n>.loud
+
|Dim down 200 ms using the selected fade rate
|rowspan="2"|1
 
|R
 
|the loudness EQ setting is enabled on zone <n>
 
 
|-
 
|-
|W
+
|03
|enable the loudness EQ setting on zone <n>
+
|Set the actual arc power level one step higher without fading
 
|-
 
|-
|rowspan="2"|0
+
|04
|R
+
|Set the actual arc power level one step lower without fading
|the loudness EQ setting is disabled on zone <n>
 
 
|-
 
|-
|W
+
|05
|disable the loudness EQ setting on zone <n>
+
|Set the actual arc power level to the maximum value
 
|-
 
|-
|flip
+
|06
|W
+
|Set the actual arc power level to the minimum value
|toggle the loudness EQ setting on zone <n>
 
 
|-
 
|-
 
+
|07
|rowspan="5"|z<n>.preamp
+
|Set the actual arc power level one step lower without fading
|rowspan="2"|fix
 
|R
 
|the pre-amp output of zone <n> is set to fixed
 
 
|-
 
|-
|W
+
|08
|set the pre-amp output of zone <n> to fixed
+
|Set the actual arc power level one step higher without fading
 
|-
 
|-
|rowspan="2"|var
+
|10 + scene
|R
+
|Set the light level to the value stored for the selected scene
|the pre-amp output of zone <n> is set to variable
 
 
|-
 
|-
|W
+
|20
|set the pre-amp output of zone <n> to variable
+
|Reset the parameters to default settings
 
|-
 
|-
|flip
+
|21
|W
+
|Store the current light level in the DTR
|toggle the status of the pre-amp output of zone <n>
 
|-
 
 
 
|rowspan="5"|z<n>.mono
 
|rowspan="2"|1
 
|R
 
|the audio mode of zone <n> is set to mono
 
 
|-
 
|-
|W
+
|2A
|set the audio mode of zone <n> to mono
+
|Store the value in the DTR as the maximum level
 
|-
 
|-
|rowspan="2"|0
+
|2B
|R
+
|Store the value in the DTR as the minimum level
|the audio mode of zone <n> is set to stereo
 
 
|-
 
|-
|W
+
|2C
|set the audio mode of zone <n> to stereo
+
|Store the value in the DTR as the system failure level
 
|-
 
|-
|flip
+
|2D
|W
+
|Store the value in the DTR as the power on level
|toggle the audio mode of zone <n>
 
 
|-
 
|-
 
+
|2E
|rowspan="5"|z<n>.whm
+
|Store the value in the DTR as the fade time
|rowspan="2"|1
 
|R
 
|“whole house music” mode is active on zone <n>
 
 
|-
 
|-
|W
+
|2F
|activate “whole house music” mode on zone <n>
+
|Store the value in the DTR as the fade rate
 
|-
 
|-
|rowspan="2"|0
+
|40 + scene
|R
+
|Store the value in the DTR as the selected scene
|“whole house music” mode is not active on zone <n>
 
 
|-
 
|-
|W
+
|50 + scene
|deactivate “whole house music” mode on zone <n>
+
|Remove the selected scene from the slave unit
 
|-
 
|-
|flip
+
|60 + group
|W
+
|Add the slave unit to the selected group
|toggle the “whole house music” mode on zone <n>
 
 
|-
 
|-
 
+
|70 + group
|rowspan="2"|m<n>.sti<m>
+
|Remove the slave unit from the selected group
|1
 
|R
 
|sense trigger input <m> on module <n> is present
 
 
|-
 
|-
|0
+
|80
|R
+
|Store the value in the DTR as a short address
|sense trigger input <m> on module <n> is absent
 
 
|-
 
|-
 
+
|90
|rowspan="2"|m<n>.asi<m>
+
|Returns the status of the slave as XX
|1
 
|R
 
|audio source input <m> on module <n> is present
 
 
|-
 
|-
|0
+
|91
|R
+
|Check if the slave is working
|audio source input <m> on module <n> is absent
 
 
|-
 
|-
 
+
|92
|rowspan="4"|m<n>.tuner.band
+
|Check if there is a lamp failure
|rowspan="2"|am
 
|R
 
|the tuner of module <n> is set on the AM radio band
 
 
|-
 
|-
|W
+
|93
|set the tuner of module <n> on the AM radio band
+
|Check if the lamp is operating
 
|-
 
|-
|rowspan="2"|fm
+
|94
|R
+
|Check if the slave has received a level out of limit
|the tuner of module <n> is set on the FM radio band
 
 
|-
 
|-
|W
+
|95
|set the tuner of module <n> on the FM radio band
+
|Check if the slave is in reset state
 
|-
 
|-
 
+
|96
|rowspan="4"|m<n>.tuner.tune
+
|Check if the slave is missing a short address
|rowspan="2"|<xxxx>
 
|R
 
|the tuner of module <n> is tuned on the reported frequency
 
 
|-
 
|-
|W
+
|97
|tune the frequency of the tuner of module <n> on the specified value
+
|Returns the version number as XX
 
|-
 
|-
|up
+
|98
|W
+
|Returns the content of the DTR as XX
|increase the frequency of the tuner of module <n>
 
 
|-
 
|-
|down
+
|99
|W
+
|Returns the device type as XX
|decrease the frequency of the tuner of module <n>
 
 
|-
 
|-
 
+
|9A
|rowspan="2"|m<n>.tuner.seek
+
|Returns the physical minimum level as XX
|up
 
|W
 
|tune module <n> on the next valid station with higher frequency
 
 
|-
 
|-
|down
+
|9B
|W
+
|Check if the slave is in power failure mode
|tune module <n> on the next valid station with lower frequency
 
 
|-
 
|-
 
+
|A0
|rowspan="2"|m<n>.tuner.group
+
|Returns the current light level as XX
|rowspan="2"|<group>
 
|R
 
|the selected group of preset radio stations for the tuner of module <n> is set to the reported value (A,B,C, or D)
 
 
|-
 
|-
|W
+
|A1
|set the selected group of preset radio stations for the tuner of module <n> to the specified value (A,B,C, or D)
+
|Returns the maximum allowed light level as XX
 
|-
 
|-
 
+
|A2
|rowspan="4"|m<n>.tuner.mode
+
|Returns the minimum allowed light level as XX
|rowspan="2"|preset
 
|R
 
|the tuning mode for the tuner of module <n> is set to preset
 
 
|-
 
|-
|W
+
|A3
|set the tuning mode for the tuner of module <n> to preset
+
|Return the power up level as XX
 
|-
 
|-
|rowspan="2"|direct
+
|A4
|R
+
|Returns the system failure level as XX
|the tuning mode for the tuner of module <n> is set to direct
 
 
|-
 
|-
|W
+
|A5
|set the tuning mode for the tuner of module <n> to direct
+
|Returns the fade time as X and the fade rate as Y
 
|-
 
|-
 
+
|B0 + scene
|rowspan="6"|m<n>.tuner.preset
+
|Returns the light level XX for the selected scene
|rowspan="2"|<xx>
 
|R
 
|the current preset for the tuner of module <n> is the reported value
 
 
|-
 
|-
|W
+
|C0
|tunes module <n> to the specified preset value
+
|Returns a bit pattern XX indicating which group (0-7) the slave belongs to
 
|-
 
|-
|up
+
|C1
|W
+
|Returns a bit pattern XX indicating which group (8-15) the slave belongs to
|set the tuner of module <n> to the next higher preset
 
 
|-
 
|-
|down
+
|C2
|W
+
|Returns the high bits of the random address as HH
|set the tuner of module <n> to the next lower preset
 
 
|-
 
|-
|save
+
|C3
|W
+
|Return the middle bit of the random address as MM
|saves the currently selected station on module <n> as a preset
 
 
|-
 
|-
|del
+
|C4
|W
+
|Returns the lower bits of the random address as LL
|delete the current preset on module <n>
 
 
|-
 
|-
 +
|}
  
|rowspan="2"|m<n>.tuner.scan
+
Other than the above described commands, it is possible to send the following 2-byte DALI frames:
|up
 
|W
 
|scan through presets upwards. The station is automatically changed every 10 seconds until another command is sent
 
|-
 
|down
 
|W
 
|scan through presets downwards. The station is automatically changed every 10 seconds until another command is sent
 
|-
 
  
|m<n>.tuner.signal
+
{| class="wikitable"
|<val>
+
!Frame
|R
+
!Description
|the signal strength of the currently tuned station corresponds to the reported value
 
 
|-
 
|-
  
|rowspan="5"|m<n>.tuner.mono
+
|A100
|rowspan="2"|1
+
|All special mode processes shall be terminated
|R
+
|A3XX
|the audio mode of the tuner of module <n> is set to mono
+
|Store value XX in the DTR
 
|-
 
|-
|W
+
|A5XX
|set the audio mode of the tuner of module <n> to mono
+
|Initialize addressing commands for slaves with address XX
 
|-
 
|-
|rowspan="2"|0
+
|A700
|R
+
|Generate a new random address
|the audio mode of the tuner of module <n> is set to stereo
 
 
|-
 
|-
|W
+
|A900
|set the audio mode of the tuner of module <n> to stereo
+
|Compare the random address with the search address
 
|-
 
|-
|flip
+
|AB00
|W
+
|Withdraw from the compare process
|toggle the audio mode of the tuner of module <n>
 
 
|-
 
|-
 
+
|B1HH
|m<n>.tuner.mdf.name
+
|Store value HH as the high bits of the search address
|<text>
 
|R
 
|the name metadata of the current station of the tuner of module <n> is set to the reported text
 
 
|-
 
|-
 
+
|B3MM
|m<n>.tuner.mdf.text
+
|Store value MM as the middle bits of the search address
|<text>
 
|R
 
|the text metadata of the current station of the tuner of module <n> is set to the reported text
 
 
|-
 
|-
 
+
|B5LL
|m<n>.tuner.mdf.gen
+
|Store value LL as the lower bits of the search address
|<text>
 
|R
 
|the genre metadata of the current station of the tuner of module <n> is set to the reported text
 
 
|-
 
|-
 
+
|B7XX
|m<n>.tuner.mdf.cl
+
|Program the selected slave with short address XX
|<text>
 
|R
 
|the name call letters of the current station of the tuner of module <n> is set to the reported text
 
 
|-
 
|-
 
+
|B9XX
|rowspan="3"|m<n>.tuner.digit
+
|Check if the selected slave has short address XX
|<0...9>
 
|W
 
|send the specified digit for direct tuning to module <n>
 
 
|-
 
|-
|canc
+
|BB00
|W
+
|The selected slave returns its short address XX
|clears any digit previously entered on module <n>
 
 
|-
 
|-
|ok
+
|BD00
|W
+
|Go into physical selection mode
|sends the enter command to module <n>
 
 
|-
 
|-
 
|}
 
|}
 +
 +
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 ==

Revision as of 11:08, 22 January 2014

Tridonic is a lighting system based on the DALI bus technology. HSYCO integrates this system and communicates with it through the DALI SCI2 interface module and its communication protocol. The integration relies on a direct connection between the DALI SCI2 interface and HSYCO server’s RS-232 serial port, or through a TCP/IP to serial port gateway.

Communication

The DALI SCI2 interface module communicates with HSYCO through a RS-232 interface.

RS-232 parameters:

Baud rate 38400 bps
Data bits 8
Stop bit 1
Parity none

Further, the RS-232 signals RTS and DTR must be set to the following levels: RTS = +6 ... +12 V DTR = -6 ... -12 V Refer to the SCI2 manual for installation, wiring and power supply requirements.

Tridonic Configuration

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 I/O Events API)

- 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

Options

ID Default Values Description
discovery true true auto-detects all DALI devices and groups, and automatically lists them in the systemtopo.txt file
false auto-detect for devices is disabled
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
broadcastrange 1...254 <min>-<max> specifies the minimum <min> and maximum<max> allowed light levels for the broadcast command
groupsrange g<n>:1...254 g<n>:<min>-<max> 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
luxdelta 0 ≥ 0 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

Datapoints

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the panel
<n>

g<m>
broadcast

on W set the light level of the target to the last level set before the off command
off R the target is off
W switch the target off
1...100% R the light level of the target corresponds to the reported value
W set the light level of the target to the specified value
X/Y W set the light level of the target to the specified fraction (e.g. a value of 1/5 corresponds to 20%)
min W set the light level of the target to the minimum level (1%) without fading
max W set the light level of the target to the maximum level (100%) without fading
up W set the light level of the target one step higher
down W set the light level of the target one step lower
<n>.lux[Note 1] read W request the reading of the light intensity measured by the targeted MSensor
<lux> 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
broadcast.lux[Note 1] read W request the reading of the light intensity on all the MSensors
e<x>.lux[Note 2]

where <x> is the eDALI address of the light sensor of the MSensor

<lux> R the light intensity measured by the targeted MSensor corresponds to the reported value (in lux)
motion g<m>[Note 1] R a motion event has been reported to group <m>
broadcast[Note 1] R a motion event has been broadcasted
e<x>[Note 2] R a motion event has been generated by the MSensor’s light sensor with eDALI address <x>
<n>.scene

g<m>.scene
broadcast.scene

0...15 W set the light level of the target to the value stored for the specified scene number (from 0 to 15)
command <xxyy> R the 2-byte hexadecimal DALI frame[Note 3] has been sent to the system
W sends the 2-byte hexadecimal DALI frame[Note 3] to the system
monitor none W none of the DALI frames detected on the bus will be reported
ignored W only the DALI frames detected on the bus not processed by the driver will be reported
all W all the DALI frames detected on the bus will be reported
<xxyy> R the reported 2-byte hexadecimal DALI frame[Note 3] has been detected on the bus
refresh 0 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
1 W the secondary properties of the devices (minimum and maximum levels, fade time and fade rate) will be rechecked on every monitor loop iteration
<n>.error

g<m>.error
broadcast.error

0 R the target works properly
1 R the target is in an error state

Note 1 
Only available if the MSensor is configured to work in Direct-master mode (default mode).

Note 2 
Only available if the MSensor is configured to work in Indirect-master mode.

Note 3 
The 2-byte DALI frames consist of an 8-bit address part and an 8-bit command part.

The address byte is formatted as follows:

Type of Address Byte Description
Individual address 0AAAAAAS (AAAAAA = 0 .. 63, S = 0/1)
Group Address 100AAAAS (AAAA = 0 .. 15, S = 0/1)
Broadcast Address 1111111S (S = 0/1)

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:

Command Description
00 Extinguish the lamp without fading
01 Dim up 200 ms using the selected fade rate
02 Dim down 200 ms using the selected fade rate
03 Set the actual arc power level one step higher without fading
04 Set the actual arc power level one step lower without fading
05 Set the actual arc power level to the maximum value
06 Set the actual arc power level to the minimum value
07 Set the actual arc power level one step lower without fading
08 Set the actual arc power level one step higher without fading
10 + scene Set the light level to the value stored for the selected scene
20 Reset the parameters to default settings
21 Store the current light level in the DTR
2A Store the value in the DTR as the maximum level
2B Store the value in the DTR as the minimum level
2C Store the value in the DTR as the system failure level
2D Store the value in the DTR as the power on level
2E Store the value in the DTR as the fade time
2F Store the value in the DTR as the fade rate
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:

Frame Description
A100 All special mode processes shall be terminated A3XX Store value XX in the DTR
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

Aton Object

The user interface for the Aton multi-room system:

UI Object aton.png

The Aton object is listed in the Project Editor’s new object list only when at least one Aton I/O Server is defined.


Parameters

  • server id: the server ID
  • module:
  • zone: zone number of the Aton multi-room system (max 12 zones)
  • position: the object's position. Use the pixels or rows and columns coordinates format

Syntax

(aton <server id>; <module>; <zone>; <position>)

E.g.

(aton serverid; module; zone; x10y20)

UISET Actions

ID Attribute Set to
connection.label.online visible true when datapoint connection = online
false when datapoint connection = offline
connection.label.offline visible true when datapoint connection = offline
false when datapoint connection = online

USER Commands

To send a user command to the I/O Server just set the name to the ID of a writable (W) datapoint and the parameter to one of the possible values.

For instance, setting the name of a user button to “aton.z1.power” and its param field to “flip”, will result in having a switch for zone 1. Naming it “aton.z1.source” with a valid source as param (e.g. “1”, “2”, or “R1”) will result in a button for setting the audio source of the zone.