Zigbee2MQTT - IKEA Tradfri E1524/E1810 5-button Remote & White Spectrum Light

Blueprint for the IKEA TRÅDFRI 5-Button E1524/E1810 ‘puck’ remote to control any white spectrum bulb. Built on Zigbee2MQTT 2.1 actions.

This is my first blueprint.

All buttons and holds supported:

  • Middle - on/off
  • Up Press - increase brightness
  • Up Hold - 100% brightness
  • Down Press - decrease brightness
  • Down Hold - 1% brightness
  • Left Press - decrease color temperature
  • Left Hold - minimum color temperature (warm)
  • Right Press - increase color temperature
  • Right Hold - maximum color temperature (cold)

Color temperature range is taken from the bulb itself. I’ve tested it with a number of different white spectrum/RGB bulbs I own.

Brightness and color temperature steps can be configured:

To Import:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

YAML:

blueprint:
  name: IKEA TRÅDFRI 5-Button Remote Light Controller
  description: Control a white spectrum light with an IKEA 5-Button E1524/E1810 'puck' remote. Built on Zigbee2MQTT 2.1 actions.
  domain: automation
  input:
    remote:
      name: Remote
      description: IKEA TRÅDFRI 5-Button Remote.
      selector:
        entity:
          domain: event
    target_light:
      name: Light
      description: White spectrum light to control.
      selector:
        entity:
          domain: light
    brightness_step:
      name: Brightness Steps
      description: Percent brightness to increase or decrease by.
      default: 20
      selector:
        number:
          min: 1
          max: 35
          step: 1
          unit_of_measurement: "%"
          mode: slider
    brightness_starting:
      name: Starting Brightness
      description: Initial brightness of the light when switched on. 0 to leave at previous value.
      default: 0
      selector:
        number:
          min: 0
          max: 100
          step: 1
          unit_of_measurement: "%"
          mode: slider
    kelvin_step:
      name: Color Temperature Steps
      description: Percent of color tempereature range to increase or decrease by.
      default: 20
      selector:
        number:
          min: 1
          max: 35
          step: 1
          unit_of_measurement: "%"
          mode: slider

trigger:
  - platform: state
    entity_id: !input remote

variables:
    light_entity: !input target_light
    kelvin_cur: "{{ state_attr(light_entity, 'color_temp_kelvin') }}"
    kelvin_min: "{{ state_attr(light_entity, 'min_color_temp_kelvin') }}"
    kelvin_max: "{{ state_attr(light_entity, 'max_color_temp_kelvin') }}"
    kelvin_step: !input kelvin_step
    kelvin_change: "{{ (kelvin_max - kelvin_min) * kelvin_step / 100 }}"
    brightness_step: !input brightness_step
    brightness_starting: !input brightness_starting


action:
  - choose:

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'toggle' and brightness_starting == 0 }}"
        sequence:
          - service: light.toggle
            target:
              entity_id: !input target_light

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'toggle' and brightness_starting > 0 }}"
        sequence:
          - service: light.toggle
            data:
              brightness_pct: "{{ brightness_starting }}"
            target:
              entity_id: !input target_light

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_up_click' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              brightness_step_pct: "{{ brightness_step }}"

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_up_hold' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              brightness_pct: 100

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_down_click' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              brightness_step_pct: "{{ -brightness_step }}"

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_down_hold' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              brightness_pct: 1

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'arrow_right_click' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              kelvin: >
                {% set kelvin_new = kelvin_cur + kelvin_change %}
                {{ [kelvin_new, kelvin_max] | min }}

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'arrow_right_hold' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              kelvin: "{{ kelvin_max }}"

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'arrow_left_click' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              kelvin: >
                {% set kelvin_new = kelvin_cur - kelvin_change %}
                {{ [kelvin_new, kelvin_min] | max }}

      - conditions:
          - condition: template
            value_template: "{{ trigger.to_state.attributes.event_type == 'arrow_left_hold' }}"
        sequence:
          - service: light.turn_on
            target:
              entity_id: !input target_light
            data:
              kelvin: "{{ kelvin_min }}"

mode: single

1 Like

Hi @AgainTalent, Yesterday I tried to make automation from your blueprint, but in the field “Remote” I dont see any of my 2 remotes, only 2 event entities from my washing mashine, do you know what Im doing wrong? Thank you.

I got the same problem, ever found a solution?

Hi everyone!

I just wanted to share something special with this community. For many years, I’ve been on the hunt for the original IKEA TRÅDFRI round remote — the discontinued, hard-to-find model that’s beloved by smart home enthusiasts for its seamless compatibility with Zigbee, Home Assistant, Philips Hue, and Zigbee2MQTT.

It wasn’t easy to track these down, and I know how frustrating it can be to want one but never find it available anywhere. (I Had originally looked on amazon & they were over $65!!)

That’s why I’m really excited to say that I now have a Very Large batch of these remotes available for sale. (Over 1000!) Each unit is brand new, unused, and perfect for anyone who wants to enhance their smart home with a reliable and well-loved controller.

I truly understand the value of this device because I’ve been searching for it myself for so long, and I’m thrilled to be able to offer this opportunity to others in the community who might be looking for the exact same thing!

If you or anyone you know is interested, please feel free to reach out! I’d be happy to provide details, answer questions, and help you get one of these rare remotes into your setup.

Thanks so much for reading and for being such a great community for smart home fans!

Wishing you all happy automating!

-Marshall P

Sorry, never managed to track down the issue.

Unfortunately no.