Z2M Ikea Tradfri Dimmer Switch on off and dimming

This is a blueprint for the IKEA Tradfri dimmer switch on off dim.
So far you can only dim 1 light with it.

You can also change the transition time for switching and dimming, the brightness steps for dimming up and down and also the delay time in between the dimming steps.

Because I am quite new to home assistant I am happy for useful feedback for improving the code.

Blueprint Code

Click the badge to import this Blueprint: (needs Home Assistant Core that supports zigbee2mqtt)

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

Or import this Blueprint by using the forum topic URL:

blueprint:
  name: 'Z2M IKEA On Off and dimming Lights'
  description: Blueprint for Ikea Remote Controls (On/Off and dim) for controlling lights
  domain: automation
  source_url: https://community.home-assistant.io/t/z2m-ikea-tradfri-dimmer-switch-on-off-and-dimming/516972
  input:
    remote:
      name: Remote
      description: IKEA remote to use (e.g sensor.kitchen_remote_action)
      selector:
        entity:
          domain: sensor
          multiple: false
          
    lights:
      name: Lights
      description: Light(s) to control when using default light actions
      default:
        entity_id: none
      selector:
        entity:
          domain: light
         
    helper_transition_switch:
      name: Helper - Transition time in seconds for switching on / off
      description: Transition time in seconds for switching on / off (0.0-10.0)
      default: 1
      selector:
        number:
          min: 0.0
          max: 10.0
          mode: box
          step: 0.5   
    helper_step_up:
      name: Helper - brightness up step
      description: Step size for changing brightness up (0-20)
      default: 5
      selector:
        number:
          min: 0
          max: 20
          mode: box
          step: 1
    helper_step_down:
      name: Helper - brightness down step
      description: Step size for changing brightness down (0-20)
      default: -5
      selector:
        number:
          min: -20
          max: 0
          mode: box
          step: 1
    helper_transition_dim:
      name: Helper - Transition time for dimming up / down
      description: Transition time in seconds for dimming up / down. 0 makes visible steps. Greater than 0.1 makes it smoother. (0.0-10.0)
      default: 0.5
      selector:
        number:
          min: 0.0
          max: 10.0
          mode: box
          step: 0.5
    helper_pause:
      name: Helper - pause between each dimming step
      description: How long should be delayed between each step of dimming in milliseconds. 0 makes no delay. (10-2000)
      default: 500
      selector:
        number:
          min: 10
          max: 2000
          mode: box
          step: 10

mode: restart
max_exceeded: silent
variables:
  helper_transition_switch: !input helper_transition_switch
  helper_step_up: !input helper_step_up
  helper_step_down: !input helper_step_down
  helper_transition_dim: !input helper_transition_dim
  helper_pause: !input helper_pause
trigger:
  - platform: state
    entity_id:
      - !input remote
    to: "on"
    id: "on"
  - platform: state
    entity_id:
      - !input remote
    to: "off"
    id: "off"
  - platform: state
    entity_id:
      - !input remote
    to: brightness_move_up
    id: move_up
  - platform: state
    entity_id:
      - !input remote
    to: brightness_move_down
    id: move_down
  - platform: state
    entity_id:
      - !input remote
    to: brightness_stop
    id: stop

action:
  - choose:
      - conditions:
          - condition: trigger
            id: "on"
        sequence:
          - service: light.turn_on
            data:
              transition: !input helper_transition_switch
            target: 
              entity_id: !input lights
      - conditions:
          - condition: trigger
            id: "off"
        sequence:
          - service: light.turn_off
            data:
              transition: !input helper_transition_switch
            target: 
              entity_id: !input lights
      - conditions:
          - condition: trigger
            id: move_up
        sequence:
          - repeat:
              count: "20"
              sequence:
                - service: light.turn_on
                  data:
                    transition: !input helper_transition_dim
                    brightness_step_pct: !input helper_step_up
                  target: 
                    entity_id: !input lights
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0
                    milliseconds: !input helper_pause
      - conditions:
          - condition: trigger
            id: move_down
        sequence:
          - repeat:
              count: "20"
              sequence:
                - service: light.turn_on
                  data:
                    transition: !input helper_transition_dim
                    brightness_step_pct: !input helper_step_down
                  target: 
                    entity_id: !input lights
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0
                    milliseconds: !input helper_pause
7 Likes

hi, is there a way to make the brightness go down to the minimum but not turn off the light?

Thanks a lot, this really helped me solve the headache I head with these IKEA remotes! :pray:

I share my quick and dirty hack for that.
Edit the blue print and add a condition that check for a brightness above 20 (if almost the minimum, it you use less, it will turn off).

Add this

        - condition: numeric_state
          entity_id: !input lights
          attribute: brightness
          above: 20

There
/homeassistant/blueprints/automation/Danieldz/z2m-ikea-tradfri-dimmer-switch-on-off-and-dimming.yaml

  - conditions:
    - condition: trigger
      id: move_down
    sequence:
    - repeat:
        count: '20'
        sequence:
        - condition: numeric_state
          entity_id: !input lights
          attribute: brightness
          above: 20
        - service: light.turn_on
          data:
            transition: !input helper_transition_dim
            brightness_step_pct: !input helper_step_down
          target:
            entity_id: !input lights
        - delay:
            hours: 0
            minutes: 0
            seconds: 0
            milliseconds: !input helper_pause

Thank you for the blueprint by the way!

1 Like

hey Daniel, thanks a lot for this blueprint! works like a charm. Is there a way to support more than one light with one dimmer? When I edit the automation yaml with an additional light, it works for 1-2 times but then it won’t.

I cannot see why it should not work if you add the lights to a Zigbee Group and let the switch control the Group.