Difference between revisions of "Dali AIO"

From OpenMotics
Jump to navigation Jump to search
(39 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
  
The AIO Dali implementation supports Dali inputs and outputs.  
+
The Brain(+) Dali implementation supports Dali inputs and outputs.  
  
 
Following Dali Outputs are supported:
 
Following Dali Outputs are supported:
Line 15: Line 15:
 
* Temperature measurement
 
* Temperature measurement
 
* LUX 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 ==
 
== Hardware ==
Line 28: Line 34:
 
== Configuration ==
 
== Configuration ==
  
=== Dali Output configuration ===
+
=== Dali Output & Group configuration ===
 
+
==== Link DALI Outputs ====
 
The following steps are needed to enable 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.
 
* 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.
 
* 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.
** First perform the CLI instruction "output number modules read" to know what and how many output modules that exist. Let's assume in this example that 3 output modules already exist.
+
* Dali Bus:
** With the below instruction, you will create a virtual output ("o"=111) module on position 3 (first position is 0) with ID 111.1.0.0. This is the first module created in this example. See [[Action Types AIO]] for a list of all Basic Actions.
+
** Dali Bus=0: Communication over SCI that is connected directly to the Brain(+)
  basic action activate 201 3 111 1 0 0
+
** Dali Bus=1: Communication over SCI that is connected to the first CAN Control
** With the below instruction, you will create a virtual dimmer ("d"=100) module on position 4 (first position is 0) with ID 100.1.0.1. This is the second module created in this example.  
+
** Dali Bus=2: Communication over SCI that is connected to the second CAN Control
  basic action activate 201 4 100 1 0 1
+
**...
** Now the 2 additional modules are written on position 3 and 4 so we have 5 modules (0-4) in total. To activate these module, the number of activate output modules must be changed.
+
* 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)):
** With the below instruction, you will set the right number of output modules and will activate our virtual output and dimmer module.  
+
dali output on 0 1 255
  output number modules write 5
+
* You can also switch off this output:
** With the below instruction , you must see all modules including the new ones that have been created.
+
dali output off 0 1
  error list
+
* You can also check what's happening on the Dali Bus (incoming and outgoing) by switching on the Dali debug functionality:
** 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.
+
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.  
 
* Once the modules have been added, we must link the virtual outputs with the Dali outputs.  
* If you perform the instruction "output list", you'll see the full list of existing outputs. Our newly created outputs in our example in this list will be output 24 till 39 (output 24-31 -> Normal output, output 32-39 -> Dimmed output).
+
* 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.
 
* 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.
** With the instruction "basic action activate 21 20 24 0" will link normal (virtual) output 24 with Dali ID 0.
+
* 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 instruction "basic action activate 21 20 25 5" will link normal (virtual) output 25 with Dali ID 5.
+
* With the below instruction, you will link normal (virtual) output 8 on Dali Bus nr 0 with Dali ID 0.
** With the instruction "basic action activate 21 20 32 7" will link dimmable (virtual) output 32 with Dali ID 7.
+
dali output link write 8 0 0
** With the instruction "basic action activate 21 20 33 12" will link dimmable (virtual) output 33 with Dali ID 12.
+
* With the below instruction, you will link normal (virtual) output 9 on Dali Bus nr 0 with Dali ID 5.
** With the above instructions, we've linked the virtual outputs with the Dali outputs.
+
dali output link write 9 0 5
** With the instruction "output list", you're able to see which outputs are linked to which Dali ID's
+
* With the below instruction, you will link dimmable (virtual) output 16 on Dali Bus nr 1 (=first CAN Control) with Dali ID 7.
* Now, for example, when you switch an output on by using CLI instruction "output on 25", the virtual output will be switched on as well as the Dali output 5.
+
dali output link write 16 1 7
* It's also possible to link Dali groups to virtual outputs:
+
* With the below instruction, you will link dimmable (virtual) output 17 on Dali Bus nr 0 with Dali ID 12.
** 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.
+
dali output link write 17 0 12
** Let's link virtual output 26 to group 2.
+
* 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:
** With the instruction "basic action activate 21 20 26 66" will link virtual output 26 with Dali Group 2. 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 read 17
 +
0 12
 +
OK
 +
* Perform an Eeprom activate:
 +
eeprom activate
 +
* 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
 +
* Perform an Eeprom activate:
 +
eeprom activate
 
* 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.
 
* 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 ===
 
=== Dali Input configuration ===
Line 64: Line 151:
 
The following steps are needed to enable Dali inputs:
 
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).  
 
* 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.
+
* 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.  
+
* 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.
+
* 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.
+
* 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:
 +
22:29:49 DALI Rx Bus 0 Lunatone Input 5
 
* 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.
 
* 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 CLI instruction "input number modules read" to know what and how many input modules that exist. Let's assume in this example that 3 input modules already exist.
+
* 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 instruction "basic action activate 202 3 105 2 0 0" will create a virtual input ("i"=105) module at position 3 (first position is 0) with ID 105.2.0.0. This is the first module created in this example. See [[Action Types AIO]] for a list of all Basic Actions.
+
* 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.
** Now 1 additional input module is written on position 3 so we have 4 input modules (0-3) in total. To activate these module, the number of active input modules must be changed.
+
add virtual input module 0 0 8
** With the instruction "input number modules write 4" will set the right number of input modules and will activate our virtual input module.
+
* With the below instruction, you must see all modules including the new ones that have been created.
** With the instruction "error list", 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.  
 
* Once the modules have been added, we must link the virtual inputs with the Dali inputs.  
* If you perform the instruction "input list", 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.
+
* 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.
* 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.
+
input list
** With the instruction "basic action activate 21 21 24 3" will link virtual input 24 with Dali eID 3  (0-63 is reserved for eID, 64-127 is reserved for ID)..
+
* Let's assume that we have 2 Lunatone Dali motion sensors (with Dali eID 3 and 5) 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.
** With the instruction "basic action activate 21 21 25 4" will link virtual input 25 with Dali eID 4.
+
* eID's (0-63) will be programmed as input link 0-63, ID's (0-63) will be programmed as input link 64-127
** With the instruction "basic action activate 21 21 26 66" will link virtual input 26 with Dali ID 2.
+
* 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 instruction "basic action activate 21 21 27 67" will link virtual input 27 with Dali ID 3.
+
* 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)..
** With the above instructions, we've linked the virtual inputs with the Dali inputs.
+
dali input link write 24 0 3
** With the instruction "input list", you're able to see which inputs are linked to which Dali ID's
+
* With the below instruction, you will link virtual input 25 on Dali Bus nr 0 with Dali eID 5.
 +
dali input link write 25 0 5
 +
* With the below instruction, you will link virtual input 26 on Dali Bus nr 0 with Dali eID 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 eID 3.
 +
dali input link write 27 2 67
 +
* With the above instructions, we've linked the virtual inputs with the Dali inputs.
 +
* Perform an Eeprom activate:
 +
eeprom activate
 +
* With the below instruction, you're able to see which inputs are linked to which Dali ID's
 +
input list
 +
* To test the dali motion sensor, please use the below instruction:
 +
input debug on
 
* 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.
 
* 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.
  
Line 89: Line 192:
 
The following steps are needed to enable Dali sensors:
 
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).  
 
* 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.
+
* 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.
 
* 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 CLI instruction "sensor number modules read" to know what and how many sensor modules that exist. Let's assume in this example that 3 sensor modules already exist.
+
* 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.
** With the instruction "basic action activate 203 3 115 3 0 0" will create a virtual sensor ("s"=115) module at position 3 (first position is 0) with ID 115.3.0.0. This is the first module created in this example. See [[Action Types AIO]] for a list of all Basic Actions.
+
sensor number modules read
** Now 1 additional sensor module is written on position 3 so we have 4 sensor modules (0-3) in total. To activate these module, the number of active sensor modules must be changed.
+
* With the below instruction, you will create a virtual sensor module ("t"):
** With the instruction "sensor number modules write 4" will set the right number of sensor modules and will activate our virtual sensor module.
+
add virtual sensor module 0 0 8
** With the instruction "error list", you must see all modules including the new ones that have been created.
+
* 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.  
 
* 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.
 
* 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.
 
* Let's assume that we have 2 Lunatone Dali motion sensors (with Dali eID 3 and 4) with integrated temperature and lux measurement.
** With the instruction "basic action activate 21 22 24 3" will link virtual sensor 24 with Dali eID 3  (0-63 is reserved for eID, 64-127 is reserved for ID)..
+
* 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 instruction "basic action activate 21 22 25 4" will link virtual sensor 25 with Dali eID 4.
+
* 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)..
** With the above instructions, we've linked the virtual sensors with the Dali sensors.
+
dali sensor link write 24 0 3
** With the instruction "sensor list", you're able to see which sensors are linked to which Dali ID's
+
* 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.
 +
* Perform an Eeprom activate:
 +
eeprom activate
 +
* 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.
 
* 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.

Revision as of 15:27, 23 November 2021

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
  • Perform an Eeprom activate:
eeprom activate
  • 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
  • Perform an Eeprom activate:
eeprom activate
  • 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:
22:29:49 DALI Rx Bus 0 Lunatone Input 5
  • 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 5) 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.
  • eID's (0-63) will be programmed as input link 0-63, ID's (0-63) will be programmed as input link 64-127
  • 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 5.
dali input link write 25 0 5
  • With the below instruction, you will link virtual input 26 on Dali Bus nr 0 with Dali eID 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 eID 3.
dali input link write 27 2 67
  • With the above instructions, we've linked the virtual inputs with the Dali inputs.
  • Perform an Eeprom activate:
eeprom activate
  • With the below instruction, you're able to see which inputs are linked to which Dali ID's
input list
  • To test the dali motion sensor, please use the below instruction:
input debug on
  • 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.
  • Perform an Eeprom activate:
eeprom activate
  • 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.