KNX · Scenes · DPT 18.001 · 8 min read

KNX Scene Programming: DPT 18.001, Actuator Storage and Scene Triggers

One button press sets eight devices simultaneously — lights, blinds, HVAC setpoint and audio volume in a single KNX telegram. Here is how scenes work at the protocol level.

What KNX scenes do

A KNX scene is a coordinated state change across multiple devices triggered by a single 1-byte telegram. When the "Cinema" scene is recalled, the living room lights dim to 15%, the blinds drop to 100%, the projector screen descends, the HVAC setpoint drops to 20 °C, and the audio system switches to the surround input — all from one button press or voice command.

The key architectural point: the scene data (what state each device should adopt) is stored in the individual actuators, not in the KNX telegram. The telegram carries only the scene number. Each actuator that is a member of the scene's group address independently recalls its pre-programmed state for that scene number.

Resilient

Scene data in actuator EEPROM — survives bus power loss, ETS6 download, and HA reboots.

User-editable

Scene can be reprogrammed from a wall button without ETS6 — using the learn bit in DPT 18.001.

Scalable

Same scene telegram triggers dozens of actuators across the entire building simultaneously.

DPT 18.001 — the scene data point type

KNX scenes use DPT 18.001 (Scene Control) — a 1-byte data point type where bit 7 is the learn/recall flag and bits 0–5 encode the scene number (0–63, supporting up to 64 scenes per group address).

DPT 18.001 byte structure

Byte:  bit7   bit6  bit5  bit4  bit3  bit2  bit1  bit0
       L/R    0     S5    S4    S3    S2    S1    S0

  bit7 = 0: RECALL scene (actuator plays back stored values)
  bit7 = 1: LEARN  scene (actuator stores current state)
  bits 0–5: scene number (0 = scene 1, 1 = scene 2 ... 63 = scene 64)

Common byte values:
  0x00 (0)   → Recall scene 1
  0x01 (1)   → Recall scene 2
  0x04 (4)   → Recall scene 5
  0x07 (7)   → Recall scene 8
  0x80 (128) → Learn scene 1  (store current state as scene 1)
  0x81 (129) → Learn scene 2
  0x87 (135) → Learn scene 8
SceneRecall byte (hex)Recall byte (dec)Learn byte (hex)Learn byte (dec)
Scene 1 (Standard)0x0000x80128
Scene 2 (Relax)0x0110x81129
Scene 3 (Cinema)0x0220x82130
Scene 4 (Dinner)0x0330x83131
Scene 5 (Night)0x0440x84132
Scene 6 (Away)0x0550x85133
Scene 7 (Morning)0x0660x86134
Scene 8 (Cleaning)0x0770x87135

DPT 17.001 vs DPT 18.001

Older KNX devices and some legacy actuators use DPT 17.001 (Scene Number) — a 1-byte type that encodes only the scene number (0–63) with no learn bit. ETS6 projects and MDT actuators from 2018 onward use DPT 18.001. Always verify the expected DPT in the device datasheet before assigning the scene group address.

DPTNameLearn bitScene rangeUsed in
DPT 17.001Scene NumberNo0–63Legacy devices, some older Gira/Merten products
DPT 18.001Scene ControlYes (bit 7)0–63ETS6 standard, MDT, ABB, Schneider 2018+

Where scene data is stored

Scene values are stored in the actuator's non-volatile EEPROM memory — not in the ETS6 project file and not in the KNX telegram. When a recall telegram arrives, each actuator reads its own stored value for that scene number and moves to that state independently.

MDT DIM actuator

  • Stores output brightness level (0–100%) per scene per channel
  • Scene 3 (Cinema): channel 1 = 15%, channel 2 = 0%, channel 3 = 30%
  • Programmed in ETS6 or via learn telegram from wall button

MDT JAL blind actuator

  • Stores position (0–100%) and slat angle (0–100%) per scene per channel
  • Scene 3 (Cinema): position = 100%, slat = 50%
  • Both parameters stored independently per scene slot

MDT AKD relay actuator

  • Stores ON/OFF state per scene per channel
  • Scene 6 (Away): all channels OFF
  • Scene 8 (Cleaning): all channels ON (100% light for cleaning)

Because scene data is in the actuator EEPROM, a bus power cycle or ETS6 download does not erase scene values unless you explicitly re-download parameters. Scene values set via the learn bit from a wall button also survive power cycles.

Standard scene names and values

The 8 standard scenes used in residential KNX projects cover the full daily usage cycle. Scene names and typical target values below; adjust to the specific room and client brief.

SceneNameLight levelBlind positionHVAC setpointTypical trigger
1Standard70%0% (up)21 °CManual / default on arrival
2Relax30%50%21 °CSofa button / voice
3Cinema15%100%20 °CProjector power-on
4Dinner60%80%21 °CKitchen scene button
5Night / Sleep0% (off)100%18 °CBedtime button / time switch
6Away / Departure0% (off)70%16 °C / frostDoor lock armed / time
7Morning / Wake40%0% (up)21 °CAlarm clock / time switch
8Cleaning100%0% (up)21 °CCleaning button (hold 3s)

Scene routing: group addresses

Scene telegrams are routed to actuators via standard KNX group addresses. A typical structure uses one GA per room or functional zone, with all relevant actuators in that zone assigned to the same GA in ETS6.

Scene group address structure — residential example

GA 4/0/0  Living room scenes  (DPT 18.001)
  Members: DIM ch1 (main lights), DIM ch2 (mood), JAL ch1 (blind east),
           JAL ch2 (blind west), AKD ch3 (floor lamp)

GA 4/0/1  Bedroom scenes     (DPT 18.001)
  Members: DIM ch3 (ceiling), DIM ch4 (bedside L), DIM ch5 (bedside R),
           JAL ch3 (blackout blind), HVAC setpoint (thermostat)

GA 4/0/2  Kitchen scenes     (DPT 18.001)
  Members: DIM ch6 (work surface), DIM ch7 (island), AKD ch7 (extractor)

GA 4/0/10 Whole-house scenes (DPT 18.001)
  Members: all rooms simultaneously
  Use: Away scene 6 → all rooms switch to away state in one telegram

When the living room wall button sends a DPT 18.001 recall telegram (e.g. byte value 2 for Cinema) on GA 4/0/0, all five actuators listed above simultaneously move to their pre-stored scene 3 values — each independently, in parallel, in under 100 ms.

Learn mode from wall button

KNX actuators can store new scene values from a wall button — no ETS6 access required. This is important for end-user ownership: the client can adjust the "Dinner" scene brightness to their preference without calling an integrator.

Learn mode procedure — from MDT pushbutton

User workflow: reprogramming Dinner scene (scene 4):

  1. Manually set all devices to desired state:
     → dim living room to 55% via dimmer rocker
     → close blinds to 75% via blind button
     → HVAC stays at current setpoint

  2. Hold the "scene 4" button for 5 seconds
     → KNX binary input enters learn mode
     → sends DPT 18.001 learn telegram: byte value 0x83 (131)
        (bit7 = 1 = LEARN, bits 0–5 = 0x03 = scene 4)

  3. All actuators subscribed to GA 4/0/0 receive the learn telegram:
     → DIM actuator stores current brightness (55%) as scene 4
     → JAL actuator stores current position (75%) and slat as scene 4

  4. Future Dinner recall:
     → short press button 4
     → byte 0x03 (recall scene 4) → all actuators recall stored values

Multi-room scene example

A whole-house "Evening" scene configured on the main entrance keypad demonstrates the power of scene coordination across multiple rooms and system types.

Whole-house Evening scene — all actuators on GA 4/0/10

Trigger: entrance keypad → GA 4/0/10 = 0x01 (recall scene 2 = Evening)

Device responses (all simultaneous, within 100ms):
  Living room DIM:    40% brightness (warm white 2700K if tunable)
  Kitchen DIM:        60% brightness
  Hallway DIM:        50% brightness
  Bedroom DIM:        20% brightness
  All JAL blinds:     position 80% (mostly closed)
  Living room HVAC:   setpoint 21.0 °C
  Bedroom HVAC:       setpoint 20.0 °C
  Entrance AKD:       floor lamp ON

Result: arriving home after dark → press one button on entrance keypad
        → entire house in "Evening" state
        → no individual device adjustments required

Scene triggers from external systems

KNX scenes can be triggered from any system that can send a DPT 18.001 telegram on a KNX group address — Home Assistant, voice assistants, security systems, and time switches all become scene controllers.

Home Assistant — KNX scene recall (YAML)

# configuration.yaml — KNX scene trigger

automation:
  - alias: "Voice: Dinner scene"
    trigger:
      - platform: conversation
        command: "Dinner time"
    action:
      - service: knx.send
        data:
          address: "4/0/0"    ← living room scenes GA
          payload: 3          ← DPT 18.001 value: recall scene 4 (Dinner)
          type: "scene"       ← HA KNX integration handles DPT 18.001

  - alias: "Security arm → Away scene"
    trigger:
      - platform: state
        entity_id: alarm_control_panel.home
        to: "armed_away"
    action:
      - service: knx.send
        data:
          address: "4/0/10"   ← whole-house scenes GA
          payload: 5          ← recall scene 6 (Away)
          type: "scene"

  - alias: "Sonos play → Cinema scene"
    trigger:
      - platform: state
        entity_id: media_player.living_room
        to: "playing"
        attribute_match:
          media_content_type: "video"
    action:
      - service: knx.send
        data:
          address: "4/0/0"
          payload: 2          ← recall scene 3 (Cinema)
          type: "scene"

Voice command → KNX scene

  • Alexa / Google Home → HA routine → knx.send
  • Scene 4 (Dinner): "Alexa, dinner time"
  • Scene 5 (Night): "Alexa, good night"
  • Scene 7 (Morning): alarm clock routine

Time switch → KNX scene

  • MDT SCN-TU.01 time switch → scene GA at 07:00
  • Sunrise + 10 min → scene 7 (Morning) on all rooms
  • 22:30 weekdays → scene 5 (Night) whole house
  • Monday 08:00 → Away scene (office days)

KNX logic and programming in your panel

We pre-program MDT Logic Controllers and ETS6 logic blocks for complex automation rules — solar dispatch, presence logic, multi-zone scenes — delivered tested and documented.

Request a quote →
Loading...
Back to top