DALI Installation Guide

From OpenMotics
Jump to navigation Jump to search

DALI background

DALI (Digital Addressable Lighting Interface) is a network based system to control lights and dimmers. DALI typically consist of a DALI gateway/controller (which is in our case Lunatone DALI SCI module connected to the Openmotics CAN Control), a DALI power supply and multiple slave devices. A slave device can be an electrical ballast, a dimmer or led driver. Typically, the DALI slaves will be situated near the lights itself.

For the DALI wiring, typically, a 5x1,5mm2 cable is used:

- 3x1,5mm2 for 230V N, F and Ground 
- 2x1,5mm2 for DALI network

The DALI network topology can be arranged in Star, BUS or a combination of these. This makes a DALI network very flexible and easy to use. DALI wires can be connected to the DALI slaves without regards for polarity.

Each DALI slave will get a static address (by the use of the Lunatone DALI Cockpit software) between 0 and 63.

Openmotics supports 4 DALI networks (by the use of 4 CAN Controls) per gateway.

Avantage: You run 1 cable (5x1,5mm2) from one light to the other. Cabling is very simple. This in combination with the CAN bus offers a very convenient solution: 1 bus for the switches and environmental sensors, 1 bus for the lights, dimmers and outputs.

Disadvantage: For every light, you need a DALI slave (in some lights, it's build-in) so this makes it more expensive than a traditional approach with Output modules

Connect the DALI SCI to your PC or to your CAN Control

The wiring of a DALI setup must be done as seen in the below schematic:


For normal operations, Connector A and B (female and male DB9 connector) must be interconnected. When initialisation of the DALI modules is needed, Connector A must be connected to an USB-RS232 convertor which is connected to your PC with DALI software installed.


The DALI specs describe the following limitations:

- Maximum 300 meters in cable length
- Maximum 64 slaves on 1 Dali bus

Openmotics has following limitations:

- Maximum 4 CAN controls per gateway
- Each CAN control can control 1 DALI bus
- Maximum 64 DALI slaves per CAN Control
- Maximum 240 Outputs per gateway

Note: The CAN control can combine the functionality of CAN controller and DALI controller at the same time so you don't need separate modules for this.

DALI Setup with Openmotics

The CAN Control is used as DALI gateway and has all the logic inside to drive dimmers and different kind of ballasts. The CAN Control cannot directly be connected to the DALI bus since a RS232 DALI convertor is needed (as well as a DALI power supply which you always need when building a DALI bus).

We use the RS232 convertor from Lunatone called the SCI. The SCI is connected to the RS232 connection of the CAN control. The CAN functionality as well as DALI functionality can be used simultaneously.

Every DALI bus can have up to 64 devices. 1 CAN Control can handle 1 DALI bus of 64 devices. Every DALI device has a DALI ID between 0 and 63. The ID’s are assigned by using the Lunatone cockpit software which will be described further in detail in a later section.

How does it work?

The CAN Control will be able to sent 2 kind of instructions:

  • Individual instructions for individual DALI outputs only
  • Group instructions for a series of DALI outputs which are part of the same group

Individual DALI Outputs

If you want to use every individual DALI Output like you use any output in the Openmotics system, the DALI ID's must be linked with system Outputs.

See Setup Individual DALI Outputs for more detailed instructions.


  • Individual DALI Outputs are only used when the individual light must be controlled. When a Group of lights will always be used together, it's not useful to do an Individual DALI Output setup (so do not create a system output for every individual DALI Output), just create a DALI Group and link it to a Virtual output (See Light Groups for DALI).
  • When a DALI Output is linked to a system Output, it will act as a normal output and you can use all instructions which are applicable on any system output.

Group DALI Outputs

You've groups on 2 levels:

  • You can program DALI Groups (by using the Lunatone Cockpit software) to bundle multiple lights and to let them collectively behave the same when the DALI Group instructions are executed. See Light Groups for DALI
  • You can program Openmotics Light Groups which will bundle different system (Openmotics) outputs to let them collectively behave the same. To do this, you first need to link the DALI Outputs to the Openmotics Outputs. See Setup Individual DALI Outputs and see About DALI Groups

When using a large number of DALI dimmers that must be dimmed simultaneously, please use the first option, see Light Groups for DALI.

The above 2 options can be combined.

DALI Inputs

The CAN Control module (Firmware Version V4.1.5 or higher) also supports up to 16 DALI Inputs (motion sensors for example) per CAN Control module. Since DALI doesn't specify inputs, every vendor has its own specific implementation. For this reason we currently only support Lunatone and Helvar motions sensors (we tested with the CS motion sensors by Lunatone and the 322 High Bay Sensor by Helvar). More vendors may be added in a later stage.

More information on setting up DALI inputs can be found on Setup Individual DALI Inputs.

Which Eeprom Pages are used?

  • Page 100-103: This is 1 page per CAN Control so page 100 is linked to the first CAN Control, Page 101 for the second CAN Control etc. In this Pages, the DALI ID's for the lights that individually must be controlled are entered. In each page, byte 0-63 are used to enter the DALI ID's for switched (non-dimmed) devices, Byte 64-127 is used for dimmed devices.
  • Page 104-111: These Pages are used to create Light Groups. Total 32 Groups (0-31) with 64 lights maximum per group.
  • Page 112: This page is used to link a Virtual Output to a group. Byte 0-239 are used for each possible output of the system. Byte 0 is linked to Output 0, Byte 1 is linked to Output 1 etc. The Output Group Link will be programmed in the individual byte.

For more information, see Memory Model