by: Helge, published: May 10, 2025, in

KNX: Multiway Switching With Room Controller, Switch and Binary Input

If you’re controlling a group of lights from multiple different types of switches, you’ll run into the problem that a switch needs to be pressed twice – the first tap doesn’t have any effect. This happens because state is not maintained properly; the switches don’t “know” whether the lights are currently turned on or off. This article shows how to fix that.

Situation

You want to control a group of lamps from different types of switches and room controllers, e.g.:

  • Enertex Meta² room controller channel
  • Enertex Meta² room controller binary input
  • MDT universal (switch) interface

Why Use a Binary Input to Control the Lights?

The Enertex Meta room controller’s binary input is very useful when connected to a classic (non KNX-enabled) switch situated below the room controller. This setup allows for intuitive control of the lights without having to navigate the room controller’s UI. Very helpful not only for guests and cleaning personnel.

Solution

How It Works

The internal value of each switch always needs to match the current state of the lamp(s). This can be achieved by configuring the flags of the group address links so that switches not only transmit changes to the bus but also update their internal state when another switch is operated.

Implementation

Create a Group Address

Create a group address with the properties:

  • Length: 1 bit
  • Data type: switch (1.001)

Link Actuators to the Group Address

Link the actors that control the lamp(s) to the group address with the flags:

  • C (communication enabled)
  • W (write): The device changes its internal value when a GroupValueWrite telegram is received from the bus.

Link Switches & Controls to the Group Address

Links the controls (switches, binary inputs, room controller channels) to the group address with the following flags:

  • C (communication enabled)
  • W (write): The device reacts to GroupValueWrite telegrams coming from the bus by changing its internal value.
  • T (transmit): The device sends GroupValueWrite telegrams to the bus when its state changes.

Optional flags (not required for this scenario to work):

  • R (read): The device reacts to GroupValueRead telegrams coming from the bus by sending a GroupValueResponse telegram with its internal value.
  • U (update): The device changes its internal value when a GroupValueResponse telegram is received from the bus.

Previous Article Elasticsearch: Long-Term Storage of Home Assistant Data