ZHA EcoDim ED-10014 4 channel remote

I’ve managed to get dimming fixed
You can try the blueprint, download it here: A Home Assistant blueprint for ZHA to control lights using the EcoDim ED-10013 2 Channel Remote · GitHub

Please let me know if it works for you.

A community post for the 2 channel remote is now available as well:

I’ve edit the blueprint a little bit.

With the basics of the IKEA blueprint and the settings from @PaulAntonDeen and @TexTown.

Now I have a setup with all buttons (long and shot pressing) and using any action you want.

Have fun with it:).

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

i am trying to use the ecodim-10015, thinking just changing the model number in yaml bleuprint.
But when I am trying to save the yaml is says: Message malformed: extra keys not allowed @ data[‘blueprint’]

Anyone got the ecodim-10015 working?

I don’t know. In my oppinion you have to change only the model: ED-10014 to model: ED-10015.

Maybe you can make an new Yaml. to copy all of it, and change it in your own yaml?

This is my adjustment for the Blueprint.
Ecodim: ED-10013

blueprint:
  name: ZHA - Ecodim, 2 Channel remote
  description: Control any light using the Ecodim remote on ZHA
  domain: automation
  input:
    remote:
      name: Remote controller
      description: Remote to use
      selector:
        device:
          integration: zha
          manufacturer: EcoDim
          model: ED-10013
          multiple: false
    light_1:
      name: Light row 1
      description: The lights that will be controlled with row 1
      selector:
        target:
          entity:
            domain: light
    light_2:
      name: Light row 2
      description: The lights that will be controlled with row 2
      selector:
        target:
          entity:
            domain: light
    step_size:
      name: Step Size
      description: The % step each dimming step takes
      default: 10
      selector:
        number:
          min: 5.0
          max: 25.0
          unit_of_measurement: '%'
          mode: slider
          step: 1.0
    step_delay:
      name: Step Delay
      description: The time between dimming steps (ms)
      default: 1000
      selector:
        number:
          min: 100.0
          max: 2000.0
          unit_of_measurement: milliseconds
          mode: slider
          step: 1.0
  source_url: https://gist.github.com/PaulAntonDeen/4089539eb42f7bcf11a945630c38fec4#file-zha_ecodim_remote_4_channel-yaml
mode: restart
max_exceeded: silent
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 }}'
    args: '{{ trigger.event.data.args }}'
    step_size: !input step_size
- choose:
  - conditions:
    - '{{ command == ''on'' }}'
    - '{{ cluster_id == 6 }}'
    - '{{ endpoint_id == 1 }}'
    sequence:
    - service: light.turn_on
      target: !input light_1
      data:
        transition: 1
  - conditions:
    - '{{ command == ''off'' }}'
    - '{{ cluster_id == 6 }}'
    - '{{ endpoint_id == 1 }}'
    sequence:
    - service: light.turn_off
      target: !input light_1
      data:
        transition: 1
  - conditions:
    - '{{ command == ''move_with_on_off'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 1 }}'
    - '{{ args == ''[<MoveMode.Up: 0>, 50]'' }}'

    sequence:
      repeat:
        while:
        - condition: template
          value_template: '{{ repeat.index < (100 / step_size)|int  }}'
        sequence:
        - service: light.turn_on
          target: !input light_1
          data:
            transition: 1
            brightness_step_pct: !input step_size
        - delay:
            milliseconds: !input step_delay
  - conditions:
    - '{{ command == ''move_with_on_off'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 1 }}'
    - '{{ args == ''[<MoveMode.Down: 1>, 50]'' }}'
    sequence:
      repeat:
        while:
        - condition: template
          value_template: '{{ repeat.index < (100 / step_size)|int  }}'
        sequence:
        - service: light.turn_on
          target: !input light_1
          data:
            transition: 1
            brightness_step_pct: '{{ step_size * -1 }}'
        - delay:
            milliseconds: !input step_delay
  - conditions:
    - '{{ command == ''stop'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 1 }}'
    sequence:
    - service: light.turn_on
      target: !input light_1
  - conditions:
    - '{{ command == ''on'' }}'
    - '{{ cluster_id == 6 }}'
    - '{{ endpoint_id == 2 }}'
    sequence:
    - service: light.turn_on
      target: !input light_2
      data:
        transition: 1
  - conditions:
    - '{{ command == ''off'' }}'
    - '{{ cluster_id == 6 }}'
    - '{{ endpoint_id == 2 }}'
    sequence:
    - service: light.turn_off
      target: !input light_2
      data:
        transition: 1
  - conditions:
    - '{{ command == ''move_with_on_off'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 2 }}'
    - '{{ args == ''[<MoveMode.Up: 0>, 50]'' }}'
    sequence:
      repeat:
        while:
        - condition: template
          value_template: '{{ repeat.index < (100 / step_size)|int  }}'
        sequence:
        - service: light.turn_on
          target: !input light_2
          data:
            transition: 1
            brightness_step_pct: !input step_size
        - delay:
            milliseconds: !input step_delay
  - conditions:
    - '{{ command == ''move_with_on_off'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 2 }}'
    - '{{ args == ''[<MoveMode.Down: 1>, 50]'' }}'
    sequence:
      repeat:
        while:
        - condition: template
          value_template: '{{ repeat.index < (100 / step_size)|int  }}'
        sequence:
        - service: light.turn_on
          target: !input light_2
          data:
            transition: 1
            brightness_step_pct: '{{ step_size * -1 }}'
        - delay:
            milliseconds: !input step_delay
  - conditions:
    - '{{ command == ''stop'' }}'
    - '{{ cluster_id == 8 }}'
    - '{{ endpoint_id == 2 }}'
    sequence:
    - service: light.turn_on
      target: !input light_2

It worked, had some problems with creating the automation.

anyone has a blueprint for zigbee2mqtt? :wink:

Hello,

I recently started using the Ecodim, 2 Channel remote Model ED-10012 without success.
When I operate group 1 button 1 nothing happens, group 1 button 0 nothing happens.
When I operate group 2 button 1, both lamps turn on, group 2 button 0 turns lamp 1 off, but only 2 remains on. This can only switch be disabled on the micro switch.
Can anyone help me or is this switch brokent?
Greetings PeWi56

anyone ? or is it possible to change from zha to z2mqtt ?

edit: found solution

Hey @antonov124 ,

can you please share your solution for zigbee2mqtt?

Thx