Dali AIO

From OpenMotics
Jump to navigation Jump to search

Introduction

The Brain(+) Dali implementation supports Dali inputs and outputs.

Following Dali Outputs are supported:

  • Relay outputs
  • Dim controlled outputs
  • Led drivers

Following Dali Inputs are supported:

  • Lunatone Motion sensors
  • Helvar Motion sensors

For Lunatone Motion sensors, following additional items are supported:

  • Temperature measurement
  • LUX measurement

Master Firmware version 1.0.113 and higher also supports Dali over CAN Control:

  • For this to work, CAN Control Firmware Version 6.0.39 or higher is required
  • When additional CAN Controls are used, multiple DALI networks can be created:
    • 1 DALI network for the built-in Dali functionality in the Brain so 63 Dali output addresses can be used
    • 1 DALI network for each additional CAN Control. Each additional CAN Control will create an additional DALI network with a additional set of 63 Dali output addresses.

Hardware

The needed Hardware to enable Dali is the following:

  • Dali Power Supply (Lunatone Dali PS)
  • Dali RS232 convertor (Lunatone Dali SCI RS232)

Firmware

Please make sure that Master Firmware V1.0.113 or higher is installed. The below guideline will not work with previous firmware versions.

Configuration

Dali Output & Group configuration

Link DALI Outputs

The following steps are needed to enable Dali outputs:

  • Use Lunatone Cockpit or another Dali software to assign Dali ID's to the used Dali outputs. Please note the Dali ID's that the software has found and test the individual Dali outputs. Keep track of the dimmed and non-dimmed outputs so they can be linked to the correct type of outputs. In this software, you will also created the necessary groups.
  • A Dali output will be linked to a system (AIO) output. Typically, a virtual output module will be created. Depending on the type of modules found (dimmed and/or non-dimmed) and the number of Dali ID's, more virtual modules must be created.
  • Dali Bus:
    • Dali Bus=0: Communication over SCI that is connected directly to the Brain(+)
    • Dali Bus=1: Communication over SCI that is connected to the first CAN Control
    • Dali Bus=2: Communication over SCI that is connected to the second CAN Control
    • ...
  • Once you've assigned all the output dali ID's using Lunatone Cockpit and the SCI is connected with the OpenMotics Brain(+) or CAN Control, you can test the Dali Id's by performing the below instruction (in this example, we've a Dali output module on Dali Bus 0 with Dali ID 1 that we will switch on with dimmer value 255 (Max)):
dali output on 0 1 255
  • You can also switch off this output:
dali output off 0 1
  • You can also check what's happening on the Dali Bus (incoming and outgoing) by switching on the Dali debug functionality:
dali debug on
  • The Dali debug can be switched off:
dali debug off
  • First perform the below CLI instruction to know which output ID's already exist since every module must have a unique id.
el
--- Total Uptime: 000258 Hours, Last Startup: 15:17:21 24/10/21   ---
--- Module Type: BRAIN, RS485 mode: 0, Board: 24'C  --.--V --.--A ---
--- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113       ---
-------Output------------ID---------Err-------Status--------Pwr---
 00 (l I 000->007) 108.000.000.000 00000   GOOD       (000)  1
-------Input-------------ID---------Err-------Status--------Pwr---
 00 (i I 000->007) 105.000.000.000 00000   GOOD       (000)  1
 01 (b C 008->015) 098.000.000.001 00000   GOOD       (000)  1
-------Sensor------------ID---------Err-------Status--------Pwr---
 00 (s C 000->007) 115.000.000.000 00000   GOOD       (000)  1
-------CAN Control-------ID---------Err-------Status--------Pwr---
 00 (C E 000->000) 067.001.230.000 00000   GOOD       (016)  1
-------Micro CAN---------ID---------Err-------Status--------Pwr---
 00 (m C 000->000) 000.248.090.233 00000   GOOD       (000)  1
OK
  • With the below instruction, you will create a virtual output:
add virtual output module 0 0 5
  • You can see now that the module has been created:
el
--- Total Uptime: 000258 Hours, Last Startup: 15:17:21 24/10/21   ---
--- Module Type: BRAIN, RS485 mode: 0, Board: 24'C  --.--V --.--A ---
--- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113       ---
-------Output------------ID---------Err-------Status--------Pwr---
 00 (l I 000->007) 108.000.000.000 00000   GOOD       (000)  1
 01 (o V 008->015) 111.000.000.005 00000   GOOD       (000)  0
-------Input-------------ID---------Err-------Status--------Pwr---
 00 (i I 000->007) 105.000.000.000 00000   GOOD       (000)  1
 01 (b C 008->015) 098.000.000.001 00000   GOOD       (000)  1
-------Sensor------------ID---------Err-------Status--------Pwr---
 00 (s C 000->007) 115.000.000.000 00000   GOOD       (000)  1
-------CAN Control-------ID---------Err-------Status--------Pwr---
 00 (C E 000->000) 067.001.230.000 00000   GOOD       (016)  1
-------Micro CAN---------ID---------Err-------Status--------Pwr---
 00 (m C 000->000) 000.248.090.233 00000   GOOD       (000)  1
OK
  • With the below instruction, you will create a virtual dimmer ("d"=100). This is the second module created in this example.
add virtual dimmer module 0 0 6
  • Now the 2 additional virtual output modules have been added:
el
--- Total Uptime: 000258 Hours, Last Startup: 15:17:21 24/10/21   ---
--- Module Type: BRAIN, RS485 mode: 0, Board: 24'C  --.--V --.--A ---
--- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113       ---
-------Output------------ID---------Err-------Status--------Pwr---
 00 (l I 000->007) 108.000.000.000 00000   GOOD       (000)  1
 01 (o V 008->015) 111.000.000.005 00000   GOOD       (000)  0
 02 (d V 016->023) 100.000.000.006 00000   GOOD       (000)  0
-------Input-------------ID---------Err-------Status--------Pwr---
 00 (i I 000->007) 105.000.000.000 00000   GOOD       (000)  1
 01 (b C 008->015) 098.000.000.001 00000   GOOD       (000)  1
-------Sensor------------ID---------Err-------Status--------Pwr---
 00 (s C 000->007) 115.000.000.000 00000   GOOD       (000)  1
-------CAN Control-------ID---------Err-------Status--------Pwr---
 00 (C E 000->000) 067.001.230.000 00000   GOOD       (016)  1
-------Micro CAN---------ID---------Err-------Status--------Pwr---
 00 (m C 000->000) 000.248.090.233 00000   GOOD       (000)  1
OK
  • Please note that Openmotics uses Dali ID's in a range of 0-63 conform to the Dali specifications. Some vendors (like Helvar) are displaying the Dali ID's in a range of 1-64 so those ID's have to be deducted by 1.
  • Once the modules have been added, we must link the virtual outputs with the Dali outputs.
  • If you perform the below instruction, you'll see the full list of existing outputs. Our newly created outputs in our example in this list will be output 8 till 23 (output 8-15 -> Normal output, output 16-23 -> Dimmed output).
output list
  • Let's assume that we have 2 normal Dali outputs (with Dali ID 0 and 5) and 2 dimmable Dali outputs (with Dali ID 7 and 12). The normal outputs will be linked with the virtual output module, the dimmable outputs will be linked with the virtual dimmable outputs.
  • Dali has a Bus nr: When Bus nr=0 -> Dali instruction will be sent over the Dali Bus of the Brain(+), when Bus nr=1 -> Dali instruction will be sent over the Dali Bus of the first CAN Control, when Bus nr=2 -> Dali instruction will be sent over the Dali Bus of the second CAN Control etc.
  • With the below instruction, you will link normal (virtual) output 8 on Dali Bus nr 0 with Dali ID 0.
dali output link write 8 0 0
  • With the below instruction, you will link normal (virtual) output 9 on Dali Bus nr 0 with Dali ID 5.
dali output link write 9 0 5
  • With the below instruction, you will link dimmable (virtual) output 16 on Dali Bus nr 1 (=first CAN Control) with Dali ID 7.
dali output link write 16 1 7
  • With the below instruction, you will link dimmable (virtual) output 17 on Dali Bus nr 0 with Dali ID 12.
dali output link write 17 0 12
  • With the above instructions, we've linked the virtual outputs with the Dali outputs. With the below instruction, you can always check what's been programmed:
dali output link read 17
0 12
OK
  • With the below instruction, you're able to see which outputs are linked to which Dali ID's. On the Data column, you'll find the Dali ID and the Bus nr (between parenthesis)
output list
  • Now, for example, when you switch an output on by using CLI instruction "output on 9", the virtual output will be switched on as well as the Dali output with ID 5.
on 9

Link Dali Groups

It's also possible to link Dali groups to virtual outputs:

  • Let's assume that you've used Lunatone cockpit to link Dali ID 0 and 5 to Dali group 2 in other words, Dali group 2 can switch off or on the full group in 1 go so both outputs will be switched off or on.
  • Let's link virtual output 10 to group 2.
  • With the below instruction, you will link virtual output 10 with Dali Group 2 on Dali Bus 0. All possible Dali ID's have a range from 0 to 63, ID's above 63 are groups in other words 64=Dali Group 0, 65=Dali Group 1, 66=Dali Group 2 etc
dali output link write 10 0 66
  • Now, for example, when you switch an output on by using CLI instruction "output on 26", the virtual output will be switched on as well as the Dali output 0 and 5.
on 10

Dali Input configuration

The following steps are needed to enable Dali inputs:

  • Use Lunatone Cockpit or another Dali software to assign Dali ID's to the used Dali inputs (motion sensors). Please note the Dali ID's that the software has found and test the individual Dali inputs (for example activate the test led so you know which motion sensor is linked to which Dali ID).
  • Please be aware that Dali is not specific about input devices so each vendor has its own implementation. For the moment, we support Lunatone (each input device will have Dali eID) and Helvar (each input device will have a Dali ID) input devices.
  • When configuring a motion sensor as input, the "Event Message Mode" needs to be configured in other words, when a motion is detected, an event message will be posted on the Dali Bus which will be read and decoded by the AIO processor. The Dali Address that is used in the below configuration is the Destination address of the event message.
  • For ease of use, please configure the destination address to be the same as device Dali address that you're configuring.
  • Please also note that the Dali ID's displayed in the Lunatone software is different than the Dali ID's displayed in the Helvar software. In the Lunatone software, ID 0-63 has been used while the Helvar software displays the Dali ID's in a range of 1-64. So to avoid confusion, the Dali ID's used in the Openmotics implementation is 0-63 so when using the Helvar software, please deduct the found ID's by 1.
  • To test that the communication is working after configuring the devices in Lunatone, you can use below instruction to test the input when a move is detected:
dali debug on
  • When motion is detected, you'll get the below message on the console:
20:40:10 DALI Rx Lunatone Input 5 Bus 0
  • A Dali input will be linked to a system (AIO) input. Typically, a virtual input module will be created. Depending on the number of input Dali ID's/eID's, more virtual modules must be created.
  • First perform the below CLI instruction to know what and how many input modules that exist. Let's assume in this example that 3 input modules already exist.
  • With the below instruction, you will create a virtual input ("i"=105) module. During creation, we give ID1..ID3 as parameter which needs to be unique so first check with instruction "error list" to find a unique combination ID1..ID3.
add virtual input module 0 0 8
  • With the below instruction, you must see all modules including the new ones that have been created.
error list
  • Once the modules have been added, we must link the virtual inputs with the Dali inputs.
  • If you perform the below instruction, you'll see the full list of existing inputs. Our newly created inputs in our example in this list will be input 24 till 31.
input list
  • Let's assume that we have 2 Lunatone Dali motion sensors (with Dali eID 3 and 4) and 2 Helvar Dali motion sensors (with Dali ID 2 and 3). The normal inputs will be linked with the virtual input module. You have probably see that ID and eID are part of a different range, this is why ID 2 and eID2 can exist in the same Dali network.
  • Dali has a Bus nr: When Bus nr=0 -> Dali instruction will be sent over the Dali Bus of the Brain(+), when Bus nr=1 -> Dali instruction will be sent over the Dali Bus of the first CAN Control, when Bus nr=2 -> Dali instruction will be sent over the Dali Bus of the second CAN Control etc.
  • With the below instruction, you will link virtual input 24 on Dali Bus nr 0 with Dali eID 3 (0-63 is reserved for eID, 64-127 is reserved for ID)..
dali input link write 24 0 3
  • With the below instruction, you will link virtual input 25 on Dali Bus nr 0 with Dali eID 4.
dali input link write 25 0 4
  • With the below instruction, you will link virtual input 26 on Dali Bus nr 0 with Dali ID 2.
dali input link write 26 0 66
  • With the below instruction, you will link virtual input 27 on Dali Bus nr 2 (=second CAN Control) with Dali ID 3.
dali input link write 27 2 67
  • With the above instructions, we've linked the virtual inputs with the Dali inputs.
  • With the below instruction, you're able to see which inputs are linked to which Dali ID's
input list
  • Once the above is done, a virtual input is linked with a Dali motion sensor. Please note that, once a motion is detected, the virtual input is pressed and immediately released. The virtual input can now be linked to any Basic Action.

Dali Sensor configuration

The following steps are needed to enable Dali sensors:

  • Use Lunatone Cockpit or another Dali software to assign Dali ID's to the used Dali sensors (motion sensors). Please note the Dali ID's that the software has found and test the individual Dali sensors (for example activate the test led so you know which motion sensor is linked to which Dali ID).
  • Please be aware that Dali is not specific about sensor devices so each vendor has it's own implementation. For the moment, we only support Lunatone as sensor devices.
  • A Dali sensor will be linked to a system (AIO) sensor. Typically, a virtual sensor module will be created. Depending on the number of sensor Dali eID's, more virtual modules must be created.
  • First perform the below CLI instruction to know what and how many sensor modules that exist. Let's assume in this example that 3 sensor modules already exist.
sensor number modules read
  • With the below instruction, you will create a virtual sensor module ("t"):
add virtual sensor module 0 0 8
  • With the below instruction, you must see all modules including the new ones that have been created.
error list
  • Once the modules have been added, we must link the virtual sensors with the Dali sensors.
  • If you perform the instruction "sensor list", you'll see the full list of existing sensors. Our newly created sensors in our example in this list will be sensor 24 till 31.
sensor list
  • Let's assume that we have 2 Lunatone Dali motion sensors (with Dali eID 3 and 4) with integrated temperature and lux measurement.
  • Dali has a Bus nr: When Bus nr=0 -> Dali instruction will be sent over the Dali Bus of the Brain(+), when Bus nr=1 -> Dali instruction will be sent over the Dali Bus of the first CAN Control, when Bus nr=2 -> Dali instruction will be sent over the Dali Bus of the second CAN Control etc.
  • With the below instruction, you will link virtual sensor 24 on Dali Bus nr 0 with Dali eID 3 (0-63 is reserved for eID, 64-127 is reserved for ID)..
dali sensor link write 24 0 3
  • With the below instruction, you will link virtual sensor 25 on Dali Bus nr 1 with Dali eID 4.
dali sensor link write 25 1 4
  • With the above instructions, we've linked the virtual sensors with the Dali sensors.
  • With the instruction "sensor list", you're able to see which sensors are linked to which Dali ID's
sensor list
  • Once the above is done, a virtual sensor is linked with a Dali motion sensor. Please note that once a temperature or lux sensor is Linked with a virtual system sensor, the values will be updated every 10 seconds.