KNX Scene Programming: DPT 18.001, Actuator Storage and Scene Learn
KNX scenes are one of the most misunderstood features of the system. Many integrators treat scenes as a KNX group address trick rather than understanding the underlying storage mechanism — this leads to scenes that don't recall correctly after a power cycle, scenes that can't be adjusted on-site without ETS6, and scene structures that don't scale to large projects. This guide covers how KNX scenes actually work at the protocol level, how to configure them correctly in ETS6, and the practical scene learn button workflow that allows clients to adjust scene values themselves.
DPT 18.001: the scene data type
DPT 18.001 (Scene Number) is an 8-bit data type used exclusively for scene communication. Its structure: bits 7 (MSB): activate/learn flag (0 = activate scene, 1 = learn/store current values into scene). Bits 6: reserved (always 0). Bits 5-0 (6 bits): scene number (0-63, giving 64 possible scenes). When a pushbutton sends DPT 18.001 value 0 on a group address: the actuator activates scene 0. When value 128 (10000000 in binary) is sent: the actuator stores the current output values into scene 0. When value 5 is sent: activate scene 5. When value 133 (128 + 5) is sent: store current state into scene 5.
Where scene data is stored
This is the key difference from what many integrators assume: scene values are stored in the KNX actuator EEPROM — not in the KNX logic controller, not in ETS6, not in any external controller. When ETS6 downloads to an actuator with scene parameters, it writes the initial scene values into the actuator's non-volatile memory. These values persist after power cycling. When the actuator receives a scene learn telegram (bit 7 = 1), it overwrites the stored scene values with the current actual output values. The actuator is the owner of the scene data.
Consequence for multi-device scenes: for a "Living Room Evening" scene that sets 3 dimmer channels and 1 shutter position, you need 4 DPT 18.001 group addresses (one per actuator device), all receiving the same scene telegram. Each actuator stores its own scene value independently. The scene "Living Room Evening" does not exist as a single data structure anywhere in the KNX system — it is the coordinated activation of scene slots in four separate actuators at the same moment.
Scene number conventions for large projects
Use a consistent scene numbering convention across all actuators in the project. Recommended 8-scene structure: Scene 0 = Morning (warm white light, 70%, shutter open); Scene 1 = Day (neutral white, 100%, shutter half); Scene 2 = Meeting (cooler white, 80%, shutter half); Scene 3 = Presentation (front zone 100%, rear zone 0%, screen shutter down); Scene 4 = Afternoon (warm white, 60%, shutter full auto); Scene 5 = Evening (warm white, 40%, shutter closed); Scene 6 = Night (very dim warm, 10%, shutter closed); Scene 7 = Cleaning (all lights 100%, shutters open). Using the same scene numbers across all rooms means a building-wide "Evening" command on a single group address sends DPT 18.001 value 5 to every actuator simultaneously — all rooms transition to their respective "Evening" scene values in coordinated fashion.
ETS6 scene parameter configuration
In ETS6 for an MDT Switch Actuator with scene support: navigate to channel parameter page → enable scene function → configure scene numbers for which this channel participates (e.g., scenes 0-7). Set the initial value for each scene: scene 0 = ON (100%), scene 5 = ON (40% via dimming), scene 7 = ON (100%). The download writes these initial values to the actuator EEPROM. Add the scene group address (e.g. GA 6/0/0 for living room, DPT 18.001) to the scene group object of this actuator.
For MDT dimming actuator (STM-UP.01): scene parameter page shows each scene number with a brightness value (0-100%) and colour temperature value (if DT-8 DALI-2 linked). Configure initial scene brightness values in ETS6. The actuator stores these on download. If the client adjusts brightness in scene 5 via the learn button, the actuator overwrites only scene 5 brightness — all other scenes remain unchanged.
Group address structure for scenes
Three-level group address structure for scenes: Main group 6 = Scenes; Middle group = room (6/0/ = living room, 6/1/ = dining room, 6/2/ = bedroom 1...); Sub-address = scene zone or building-wide: 6/0/0 = living room scene trigger, 6/255/0 = all-rooms scene trigger (broadcast address). Building-wide scenes use the same sub-address across all middle groups: scene address for "Evening" = DPT 18.001, value 5, sent to group address 6/0/0 (living), 6/1/0 (dining), 6/2/0 (bedroom) simultaneously from a single KNX pushbutton with multiple GA bindings, or via a single building-wide GA 6/255/0.
Scene learn button: on-site adjustment
The scene learn function allows the client to adjust scene values without ETS6 access. Procedure for adjusting living room Evening scene (scene 5): (1) manually set the room to the desired state — dim lights to 35% using wall pushbutton, confirm shutter position, (2) press the designated "Scene Learn" pushbutton (configured in ETS6 as a fixed telegram sender: DPT 18.001, value 133 = learn scene 5), (3) all actuators on the living room scene group address receive learn telegram, store current output values as scene 5, (4) the adjusted scene is immediately active. No ETS6 or laptop required. This is the standard workflow for client-side scene customisation during the interior design phase.
Important: after a scene learn, the ETS6 project file no longer matches the actuator's stored scene values. The integrator must update the ETS6 project with the new scene values (via ETS6 reading back the values from the actuator) before the next ETS6 download. Failing to update the project means the next ETS6 download overwrites the client's adjusted scene values with the original values.
Home Assistant YAML for voice scene recall
Integrating KNX scenes with Home Assistant for voice control (Alexa, Google Assistant) or automation triggers:
[code yaml] - alias: "Evening Scene — Voice or Automation" trigger: - platform: conversation command: "activate evening scene" - platform: knx address: "6/255/0" action: - service: knx.send data: address: "6/0/0" payload: 5 type: "1byte_unsigned" - service: knx.send data: address: "6/1/0" payload: 5 type: "1byte_unsigned" [/code]
Value 5 = DPT 18.001 scene number 5, activate (bit 7 = 0). HA sends this to each room's scene group address simultaneously. Response time from voice command to scene activation: approximately 1-2 seconds (voice recognition + HA processing + KNX telegram).
Need help with your KNX or DALI project?
Our certified engineers can discuss panel design, commissioning, integrations and project-specific edge cases. Free initial consultation.
Contact our engineers →