> For the complete documentation index, see [llms.txt](https://wiki.inels.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.inels.com/inels-bus/inels-design-manager-idm3/tutorial-groups-and-scenes.md).

# Tutorial 4 — groups and scenes

*Part 2 — Tutorials. Continues the project from* [*Tutorial 3*](/inels-bus/inels-design-manager-idm3/tutorial-dimming-with-analog-functions.md)*.*

***

## What you will build

* An **All lights** group, switched off by one long press from anywhere in the flat
* An **Evening** scene that sets several lights to different levels at once

***

## Why groups

You can already put several consumers on one wire — drag from a button to three lights and one press switches all three. For two or three devices that is fine.

It stops being fine quickly:

* Add a fourth light and you must edit **every** wire that should include it
* Ten "all off" buttons means ten wires to maintain, each able to drift out of step
* Nothing in the project says *"these lights belong together"* — you have to remember

A **group** is a named thing you define once. Wires point at the group, not at the individual lights. Add a light to the group and every wire that uses it picks up the change — you edit one thing, not twenty.

***

## The four group types

A group holds one kind of object, and the type decides which functions can act on it:

| Type          | Holds                        | Controlled by              |
| ------------- | ---------------------------- | -------------------------- |
| `Digital`     | digital **outputs** — relays | `GroupDigital_…` functions |
| `Analog`      | analog **outputs** — dimmers | `GroupAnalog_…` functions  |
| `Alarm`       | digital **inputs**           | alarm functions            |
| `Temperature` | temperature objects          | —                          |

> **You cannot mix relays and dimmers in one group.** They take different functions, so they need different groups. An "all lights off" that covers both is two groups and two functions on the same wire — which is exactly what you will build below.

***

## Step 1 — Define the groups

1. **Managers** ribbon tab → **Group manager**.
2. The left side lists existing groups by name and type. Click **Add**.
3. On the right, fill in:
   * **Unicate name:** `ALL_LIGHTS_DIGITAL`
   * **Type** `Digital`
4. Click **✓** to confirm. It appears in the list on the left.
5. Click **Add** again and make a second group:
   * **Unicate name:** `ALL_LIGHTS_ANALOG`
   * **Type** `Analog`
6. **✓**, then close the Group manager.

> **"Unicate name" means unique name.** It is iDM3's wording, and the name really must be unique — it is how wires refer to the group. Use capitals and underscores to make groups stand out from device names in long dropdown lists.

Groups exist now, but they are empty. Defining a group does not put anything in it.

***

## Step 2 — Put the group on a plan

Groups are filled in visually, so the group needs an icon first.

1. Switch to the **Groups** workspace tab.
2. Go to the **Controls** ribbon tab and find the **Groups** category.
3. **Drag** a group icon onto the floor plan.
4. The **Select group** window opens. Choose `ALL_LIGHTS_DIGITAL` and click **OK**.
5. Drag a second group icon out and assign it `ALL_LIGHTS_ANALOG`.

Each icon now represents a group. Clicking one shows a settings panel where you can change which group it points at, its layer, and its description.

***

## Step 3 — Fill the groups

1. Still on the **Groups** workspace tab, click the `ALL_LIGHTS_DIGITAL` icon. **It turns blue**, and every object that can join it becomes selectable.
2. Click `Hallway light`. A line appears from the group to it — it is in.
3. Click `Stair light`. Also in.
4. Click the group icon again to finish.

Repeat for `ALL_LIGHTS_ANALOG`, adding `Living room light`.

> **Blue means "I am collecting members".** If clicking a light does nothing, the group icon is not active — click it first. If a light refuses to join, it is the wrong type for the group: a dimmer will not go into a `Digital` group.

Save the project.

***

## Step 4 — One long press, everything off

Now the payoff.

1. **Function** workspace tab → **Functions** ribbon tab → **Add connection**.
2. Drag from `Hallway button` to the `ALL_LIGHTS_DIGITAL` group icon.
3. Drag from `Hallway button` to the `ALL_LIGHTS_ANALOG` group icon.
4. Switch **Add connection** off.
5. **Wire manager** → find the first new wire → name it `All lights off — digital` → **+**:
   * **Action:** `Long down`
   * **User function:** `DIGITAL_GROUP_OFF`
6. Select the second wire → name it `All lights off — analog` → **+**:
   * **Action:** `Long down`
   * **User function:** `ANALOG_GROUP_OFF`
7. Close, save, upload.

Hold the hallway button. **Everything goes out.**

> If you already put `DIGITAL_OFF` on `Long down` back in [Tutorial 2](/inels-bus/inels-design-manager-idm3/tutorial-toggles-impulses-and-delays.md), remove it now — the group function covers that light too, and having both is confusing rather than harmful.

Add the same pair of wires from any other button and that button becomes an "all off" too. The group is defined once; the buttons just point at it.

***

## Step 5 — An evening scene

A **scene** is several consumers going to *different* levels at once. There is no "scene" object in iDM3 — a scene is just one actor with several functions on its wires.

Using the `Evening button` from Tutorial 3:

1. **Add connection** → drag `Evening button` → `Living room light`.
2. **Wire manager** → name it `Evening — living room` → **+**:
   * **Action:** `Short down`
   * **User function:** `ANALOG_SET_LEVEL_25`
3. **Add connection** → drag `Evening button` → `Hallway light`.
4. Name it `Evening — hallway` → **+**:
   * **Action:** `Short down`
   * **User function:** `DIGITAL_ON`
5. **Add connection** → drag `Evening button` → `Stair light`.
6. Name it `Evening — stair` → **+**:
   * **Action:** `Short down`
   * **User function:** `DIGITAL_OFF`
7. Close, save, upload.

One press: living room to 25 %, hallway on, stair light off.

> **Scenes use individual wires, not groups** — precisely because each consumer needs a *different* level. Use a group when everything does the **same** thing; use separate wires when they do different things.

***

## The group functions

Every ordinary function has a group counterpart. They behave identically, but act on all members.

> **Group function names look raw, and that is normal.** The English translations for the group functions are missing in 3.5.3, so the dropdown shows internal names like `GroupDigital_SwitchOn` instead of "Group digital switch ON". Nothing is wrong — that is simply what is on screen.

**Digital groups:**

| Function                                                               | Parameters          |
| ---------------------------------------------------------------------- | ------------------- |
| `GroupDigital_SwitchOn` / `OFF`                                        | —                   |
| `GroupDigital_SwitchValue`                                             | —                   |
| `GroupDigital_DelaySwitchOn` / `_DelaySwitchOff` / `_DelaySwitchValue` | delay               |
| `GroupDigital_Impulse` / `_Impulse_ON` / `_Impulse_OFF`                | delay, impulse time |
| `GroupDigital_Copy`                                                    | —                   |

**Analog groups:**

| Function                                                              | Parameters           |
| --------------------------------------------------------------------- | -------------------- |
| `GroupAnalog_SwitchOn` / `OFF` / `value`                              | —                    |
| `GroupAnalog_DelaySwitchOn` / `_DelaySwitchOff` / `_DelaySwitchValue` | delay                |
| `GroupAnalog_SwitchOnWRamp` / `GroupAnalog_SwitchOffWRamp`            | delay, ramp length   |
| `GroupAnalog_SwitchOnWAutoOff`                                        | switch OFF over      |
| `GroupAnalog_SetLevel` / `GroupAnalog_SetLevelWRamp`                  | value %, ramp length |
| `GroupAnalog_StopChangingLevel`                                       | —                    |
| `GroupAnalog_Copy`                                                    | —                    |

Ready-made in the default project:

`DIGITAL_GROUP_ON` · `DIGITAL_GROUP_OFF` · `DIGITAL_GROUP_SWITCH` · `ANALOG_GROUP_ON` · `ANALOG_GROUP_OFF` · `ANALOG_GROUP_SWITCH` · `ANALOG_GROUP_BRIGHTEN` · `ANALOG_GROUP_DIM` · `ANALOG_GROUP_STOP_LEVEL_CHANGE`

> **`GroupDigital_SwitchValue` toggles the whole group together**, based on the group's state — not each light against its own state. Mixed states resolve to one outcome for everyone.

***

## How many groups?

Groups are cheap and clarity is not. On a real house, most installers define:

| Group                            | Type             | Purpose                  |
| -------------------------------- | ---------------- | ------------------------ |
| `ALL_LIGHTS_DIGITAL` / `_ANALOG` | Digital / Analog | the master off           |
| One per room                     | as needed        | "leave the room" buttons |
| One per floor                    | as needed        | "going to bed"           |
| `OUTSIDE_LIGHTS`                 | Digital          | dusk and dawn control    |

**Preferences** (`[☰]` → **Prefernces**) shows **Groups count** against the project maximum. Keep an eye on it in large projects — see [Chapter 27](/inels-bus/inels-design-manager-idm3/idm3-settings-and-preferences.md).

***

## What you learned

* A group is defined once and referenced by many wires — change the group, not the wires
* Group type must match what it holds; relays and dimmers need separate groups
* **Define** in Group manager, **fill** on the Groups workspace tab by clicking the blue icon
* Every function has a `Group…` counterpart
* Groups = everything does the same thing · scenes = separate wires, different levels

***

## Try this before moving on

1. Make a `LIVING_ROOM` group and wire a room button to switch just that room off.
2. Add a light to `ALL_LIGHTS_DIGITAL` and confirm the "all off" wire picks it up with **no wire edits at all**. That is the whole point of groups.
3. Build a "welcome home" scene on a long press of the evening button.

***

**Next:** [Chapter 9 — Tutorial 5: blinds and shutters](/inels-bus/inels-design-manager-idm3/tutorial-blinds-and-shutters.md).
