ZHA - IKEA Tradfri on/off switch (incl dimmer)

Worked well for me, thanks for sharing!

One thing that I found though was that one of my livarno lux bulbs didn’t like light.turn_off with a transition, and basically stayed on on the lowest brightness. I configured two such bulbs (identical) and only one of them didn’t turn off :man_shrugging:. In the end, I modified the blueprint to not have a transition on the turn_off/turn_on calls and it works well. :+1:

Great work with the IKEA on/off button!

I’m trying to use this with Zigbee2mqtt and almost everything is working. The one thing that doesn’t work is the repeating dimming function - it dim the lights 5% up/down, but only once.
(I also added an input to determine how much to inc/ dec each time, but could not find a way to decrease => get the negative value)

I’ve been using this for a while now, and it’s great.

One thing I’d like to be able to do is make it dim faster - can you make that into a variable? (I think I know how to do it, but I’d rather not fork your blueprint)

You could alter the code in your installation to increase the dimmer step. (now +/-10%).
I’ll have a look at your request later on.

FWIW, I changed it to a smaller step (5%), and a shorter time (0.25). Having both of these bits be configurable would be ideal.

So does this work only with zha integration or it does work with deconz as well?

I have only tested this for ZHA.

I found some time to make this for you:

1 Like

I am seeing error when trying to import this… is it a bug in HA?

What are the different between the hue bridges?

I am seeing that on but dimmed issue, and trying to see how best to fix it.

My bridge is on latest firmware…

Copy/Paste mistake…it is fixed

confirmed it is fixed. Thanks.

This is great, thanks.
Would it be possible to add a default turn on value?
Or, even better yet a default turn on value based on time - so hitting the on button will make the light go to 100% (holding will dim up from zero) but between 21:00:00 and 05:00:00 the light will default to 40%

I’ve seen some other blueprints with a setting for default on value but I haven’t seen any which include an editable time value.

Cheers, thanks again for your efforts in the community.

I had the same need actually, So I have made what we both needed. :slight_smile:
you can find it in the Gist mentioned a few posts earlier.

1 Like

Looks like just the thing I’m after - thanks for your input.
I have the above error coming up. Thoughts?
Cheers.

Reminder for me to do a dry-run on the import.
it is fixed now.

1 Like

Someone on the discord server asked for a version of this that sets the color to white every time it turns it on, so I made a quick tweak for them. I figured I’d share it here too. I don’t actually have one to test, so I’m assuming this will work. If it doesn’t let me know and I’ll take it down in shame lol.

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

blueprint:
  name: ZHA - IKEA Tradfri on/off switch
  description: |
    "Control your light(s) with IKEA Tradfri on/off switch
    
    Select the Tradfri remote and your lights.
    You can turn the lights On / Off, or hold the buttons to dim the lights"
  domain: automation
  input:
    remote:
      name: Remote
      description: The remote that will control the lights
      selector:
        device:
          integration: zha
          manufacturer: 'IKEA of Sweden'
          model: 'TRADFRI on/off switch'
    light:
      name: Light
      description: The lights that will be controlled
      selector:
        target:
          entity:
            domain: light
    color:
      name: Turn on Color
      description: What color should it turn on as? (Use a Color Name)
      default: white
mode: restart
trigger:
- platform: event
  event_type: zha_event
  event_data:
    device_id: !input 'remote'
action:
- variables:
    command: "{{ trigger.event.data.command }}"
    cluster_id: "{{ trigger.event.data.cluster_id }}"
    endpoint_id: "{{ trigger.event.data.endpoint_id }}"
- choose:
  - conditions:
    - "{{ command == 'on' }}"
    - "{{ cluster_id == 6 }}"
    - "{{ endpoint_id == 1 }}"
    sequence:
    - service: light.turn_on
      target: !input 'light'
      color_name: !input color
      data:
        transition: 1
  - conditions:
    - "{{ command == 'off' }}"
    - "{{ cluster_id == 6 }}"
    - "{{ endpoint_id == 1 }}"
    sequence:
    - service: light.turn_off
      target: !input 'light'
      data:
        transition: 1
  - conditions:
    - "{{ command == 'move_with_on_off' }}"
    - "{{ cluster_id == 8 }}"
    - "{{ endpoint_id == 1 }}"
    sequence:
      repeat:
        while:
        - condition: template
          value_template: "{{ repeat.index < 10 }}"
        sequence:
        - service: light.turn_on
          target: !input 'light'
          color_name: !input color
          data:
            transition: 1
            brightness_step_pct: 10
        - delay: 1
  - conditions:
    - "{{ command == 'move' }}"
    - "{{ cluster_id == 8 }}"
    - "{{ endpoint_id == 1 }}"
    sequence:
      repeat:
        while:
        - condition: template
          value_template: "{{ repeat.index < 10 }}"
        sequence:
        - service: light.turn_on
          target: !input 'light'
          color_name: !input color
          data:
            transition: 1
            brightness_step_pct: -10
        - delay: 1
  - conditions:
    - "{{ command == 'stop' }}"
    - "{{ cluster_id == 8 }}"
    - "{{ endpoint_id == 1 }}"
    sequence:
    - service: light.turn_on
      color_name: !input color
      target: !input 'light'

Have not tested it, but the color_name should be in the data:

    sequence:
    - service: light.turn_on
      target: !input 'light'
      data:
        transition: 1
        color_name: !input color

I made a Blueprint based on this that allows any of the actions of the 4 types of presses (on/off/hold-on/hold-off) to be overridden with custom actions. I wanted a light control button that mostly behaved like normal, but could use a long-press to turn the light on to full brightness instead of the last value. It can be found here: ZHA - Ikea Tradfri wireless dimmer with options for custom actions

Hi All!

After adding on of these switches to an automation controlling a Philips Hue light everything works flawlessly. However, when I add a second switch for a different Philips Hue light that second automation does not work, only the first one.

Have anyone of you run into this issue?