Skip to content
All articlesZigbee

Connecting IKEA RODRET and TRÅDFRI buttons to scenes in Home Assistant

Cheap wireless buttons become genuinely useful when they trigger scenes instead of switching lights directly. How to pair them over Zigbee2MQTT.

Published
Reading time
3 min read
Level
Beginner
Tested on HA
2026.10
Lees in het Nederlands

The IKEA RODRET costs a few euros, handles on, off and dimming, and works fine with Zigbee2MQTT. The same goes for the older TRÅDFRI buttons you may still have in a drawer. The temptation is to bind one straight to a bulb, because that takes thirty seconds. Do not. Run it through Home Assistant instead, and that same four-euro button will control your entire room.

Pairing

  1. Put Zigbee2MQTT into pairing mode.
  2. Press the pairing button under the battery cover four times in quick succession. The red light blinks a few times and then goes out. If it will not take, hold the button close to the coordinator and try again.
  3. Give the button a name like slaapkamer/afstandsbediening.

The RODRET sends the actions on, off, brightness_move_up, brightness_move_down and brightness_stop.

In Zigbee2MQTT 2.x those actions no longer appear as entities automatically, and this is where a lot of people get stuck. Enable experimental_event_entities under Settings → Home Assistant integration. You then get an event entity per button with the action in the event_type attribute. If you would rather stay away from experimental features, you can automate on Zigbee2MQTT's device triggers instead.

Scenes instead of lights

Have a button activate a scene rather than switch a light directly:

- alias: Slaapkamer knop
  triggers:
    - trigger: state
      entity_id: event.slaapkamer_afstandsbediening_action
  conditions:
    - condition: template
      value_template: "{{ trigger.to_state.attributes.event_type in ['on', 'off'] }}"
  actions:
    - choose:
        - conditions: "{{ trigger.to_state.attributes.event_type == 'on' }}"
          sequence:
            - action: scene.turn_on
              target:
                entity_id: scene.slaapkamer_standaard
              data:
                transition: 0.4
      default:
        - action: light.turn_off
          target:
            area_id: slaapkamer
          data:
            transition: 0.4

Your light levels now live in one place, in the scene, which means the button does exactly what your dashboard and your voice assistant do. Adjust the scene and the button follows without you touching the automation.

Dimming

Hold the button down and it sends brightness_move_up or _down, then brightness_stop when you let go. You can use that to step-dim a light group, but honestly, mapping a long press to a second scene such as "Dimmed" is simpler and far more predictable.

Moving a button

If a button dies or moves to another room, rename it in Zigbee2MQTT. That old kitchen button now upstairs becomes boven/afstandsbediening, and your per-room automation stays exactly as it was.

One button as the only switch

If you only have a single button somewhere, say for the garden lights, make it a toggle for everything in that space. One press on, another press off. Everyone in the house remembers that, and nobody remembers separate functions per press.

Frequently asked questions

Can I bind the button straight to a bulb? Yes, through binding in Zigbee2MQTT. That even keeps working when Home Assistant is down, but then you cannot trigger scenes with it. For a light somewhere that really must not fail, binding is a good call.

Why is my button slow to respond? Battery buttons sleep between uses, so the first press after a long silence takes a little longer. A fresh battery and a router nearby, such as a bulb or a plug, both help.

How do I make dimming smoother? Use one fixed transition time and dim a Zigbee group rather than individual bulbs.