Light Groups

From OpenMotics
Jump to navigation Jump to search


Light groups makes it possible to change the state of a group of outputs simultaneously. A good example is for example a living room with multiple dimmers, if you want to switch ON and OFF the group of lights with this one switch but also dim-up and dim-down this group of lights with this same switch, you need this functionality.

How does it work

The Openmotics system can have maximum 32 (0-31) light groups. Each light group can contain 64 outputs.

2 ways to use light groups:

  • A light group can be switched ON by using Basic Action 73 and switched OFF by using Basic Action 74.
  • A light group can be switched ON/OFF or dimmed by following a Virtual Output. When a virtual output is switched ON or OFF, the light group will follow this output as well. When this virtual output will be dimmed, the light group will follow the dimmed status. The virtual output can be linked to a switch for example so dimming of a group becomes as easy as dimming an individual light.

When a group of lights is linked to a virtual output and dimming is required, the number of outputs in the light group must be limited to a few. If the number of lights is too high, the dimming will go very slow.

In the below example, we will show how you can program this functionality by using Maintenance Mode.

Combining Lights Groups & DALI Light Groups

When combining Light Groups & DALI Groups be aware that Light Group 0-15 will also control DALI Group 0-15. This should be taken into account when planning the installation. Unused DALI Groups can be used as normal Light Group.

Which Eeprom pages are used?

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


We will create the following example:

  • We want to use 1 switch to turn a group of lights ON, OFF and dim up/down.
  • In this example, we have 3 dimmed outputs (12, 14 and 15) that must be dimmed and turned ON/OFF by using 1 switch.

Create a light Group

First we will create a light group. In this example, we will create Light Group 1. The light groups are programmed in Eeprom Page 104-111, see Memory Model for more details. Group 1 is programmed in Page 104 Byte 64-127.

eeprom write 104 64 12         ;Output 12 makes part of Light Group 1
eeprom write 104 65 14         ;Output 14 makes part of Light Group 1
eeprom write 104 66 15         ;Output 15 makes part of Light Group 1

3 lights are now part of Light Group 1.

Test a Light Group

We will use some Basic Actions to switch ON and OFF our new created group.

basic action activate 73 1       ;Switch light group 1 ON
basic action activate 74 1       ;Switch light group 1 OFF

Create a Virtual dimmer module

Since we also want to dim our group by using a switch, we will create a Virtual dimmer module.

A virtual output module can be created by using following CLI instruction:

add virtual module d                 ;Create a Virtual dimmer module

The created modules can be easily checked with following instruction:

error list                           ;Error list will indicate all modules created in the system

In the error list, we can find back the new output module since it will be the last output module and it will have type "d" (not "D"). The output line number (0-...) in the error list will indicate the output that are used for that module. In the case of our example, let assume that the new created virtual dimmer module is module 5 in the error list so output 40-47 are used (8*5).

A virtual output module can also be created by API instruction "AV", see API Reference Guide for more details. When creating a virtual module through the API, the instruction "MI" will be sent from the Master to the BB.

When a Virtual Output state changes, the same API instruction ("RO" and/or "OL") will be sent to the BB as with a Normal Output that changes state.

Link a Virtual Output to a Light Group

In this example, we will link output 41 to group 1. This is programmed in page 112, see Memory Model for more details.

eeprom write 112 41 1    ;Link Light Group 1 to Output 41

Link a switch to a Virtual Output

In this example, we will link switch 22 to Virtual Output 41.

input link write 22 41        ;Switch 22 is linked to Output 41

Since output 41 is a dimmed output so the additional dimming functionality (short press ON/OFF, long press dim up/down) is automatically added.

Now switch 22 will switch ON/OFF group 1 (short press) and dim the group (long press).


  • All possible functions that are used for normal outputs can be used for virtual outputs as well.
  • When an example is used as above, please limit the number of outputs (maximum 4-5) otherwise the dimming will be slow.
  • Dali Groups can be created by using the Lunatone Cockpit software, these outputs doesn't have to be entered in the light groups. When a change in a light group is executed, automatically the CAN Control will sent the necessary DALI instructions to executed the DALI Group functionality. See Light Groups for DALI