šŸŽ® ZHA, deCONZ, Zigbee2MQTT - Ikea 5-button Remote Universal blueprint - all actions + double click events - control lights, media players and more with Hooks

Hi @epmatt,

That worked. It wasnā€™t really clear how to setup up left and right button press in the Button blueprint at first, but it works by not filling in anything :sweat_smile:
Thanks!

Hi @felixkleisen,

happy to hear that you managed to configure the blueprints :smiley:.

Just as a feedback, did you find the provided docs unclear regarding the setup process for the Controller and Hook blueprints?

Thanks!

Hi @epmatt,

if I can provide feedback regarding docs. It will be really helpful if you also add one example of using Controller - Hook blueprint.

I was straggling with it for a few hours. What has to be first, then I fill all optional actions in Controller automation and also put Hook and it was hard to find whats wrong. It will be really useful if you put one use case, for example Ikea-5 button remote with light hook and attach pictures of correct automation setup. Of course everyone will have different entities but we will see what we have to fill and what we have to leave empty. Like template. :slight_smile:

Also it was unclear for me that I have to create some input_text entity. First I thought that I have to provide some existing one from Zigbee2Mqtt and I was google-ing why I dont have that for my setup. Then I realized that actually I have to create one.

BTW great work! :slight_smile:

Hi @deadly667, thank you so much for your feedback. :smiley:

It will be really useful if you put one use case, for example Ikea-5 button remote with light hook and attach pictures of correct automation setup.

Thatā€™s definitely something Iā€™m gonna add to the documentation. The way these blueprints work is not so straightforward, and given their flexibility and modularity, they require that small procedure when setting them up. Docs should state it clearly, and examples could probably be one of the most helpful resource in this sense.

Also it was unclear for me that I have to create some input_text entity. First I thought that I have to provide some existing one from Zigbee2Mqtt and I was google-ing why I dont have that for my setup. Then I realized that actually I have to create one.

Youā€™re right, different users reported the same misunderstanding in the past weeks, and thatā€™s something I should address in the docs.
Something which I think itā€™s not currently clear enough is also that you can use multiple Hooks with the same Controller automation, as well as provide custom actions for the Controller blueprint at the same time.

Thanks again for your suggestions, really appreciate it! :+1:

1 Like

First of all, huge shoutout to @epmatt for this super usefull blueprints. Saves everyone a lot of hassle of manually figuring out all ZHA event IDā€™s etc. Thanks a lot for your work!

I just setup the blueprint and the single click events all work very smoothly! However, I have trouble getting the loop-on-hold function to work properly. I want the light to slowly dim up or down if I hold the up/down button. However, nothing happens if I do so.

Has anyone else had similar problems or knows a fix?

I use the following blueprint setup:

alias: TEST - Standing lamps + remote control
description: For debugging. Based on IKEA E1524/E1810 5-Button Remote
use_blueprint:
  path: EPMatt/ikea_e1524_e1810.yaml
  input:
    integration: ZHA
    remote: e21faa55947c8bc5370c6a92d1d7b0cc
    action_up_short:
      - service: light.turn_on
        data:
          entity_id: light.desk
          brightness_step_pct: 20
    action_down_short:
      - service: light.turn_on
        data:
          entity_id: light.desk
          brightness_step_pct: -20
    button_up_long_loop: true
    button_down_long_loop: true

(I realize there is something I can do with including hooks, but I actually like this way of confuguration since I still have the feeling I understand the commands that are given :slight_smile: )

What have I tried myself?
I have looked to zha_events, and if I hold the up button, there is a special event triggered on the start and stop of long pressing:
Start event:

{
    "event_type": "zha_event",
    "data": {
        "device_ieee": "00:0b:57:ff:fe:af:32:68",
        "unique_id": "00:0b:57:ff:fe:af:32:68:1:0x0008",
        "device_id": "e21faa55947c8bc5370c6a92d1d7b0cc",
        "endpoint_id": 1,
        "cluster_id": 8,
        "command": "move_with_on_off",
        "args": [
            0,
            84
        ]
    },
    "origin": "LOCAL",
    "time_fired": "2021-03-19T13:31:03.401822+00:00",
    "context": {
        "id": "8708d82088a88dd574b8288b428300ed",
        "parent_id": null,
        "user_id": null
    }
}

Stop event:

{
    "event_type": "zha_event",
    "data": {
        "device_ieee": "00:0b:57:ff:fe:af:32:68",
        "unique_id": "00:0b:57:ff:fe:af:32:68:1:0x0008",
        "device_id": "e21faa55947c8bc5370c6a92d1d7b0cc",
        "endpoint_id": 1,
        "cluster_id": 8,
        "command": "stop",
        "args": []
    },
    "origin": "LOCAL",
    "time_fired": "2021-03-19T13:31:03.974525+00:00",
    "context": {
        "id": "3f60129a2a796b4cd6b01107d5f2db9b",
        "parent_id": null,
        "user_id": null
    }
}

Further, if I single press a button there is a ahb_controller_event triggered. I am not exactly sure what this is, but I got the feeling that it was related to the blueprint since It uses the same phrasing:

{
    "event_type": "ahb_controller_event",
    "data": {
        "controller": "e21faa55947c8bc5370c6a92d1d7b0cc",
        "action": "button_up_short"
    },
    "origin": "LOCAL",
    "time_fired": "2021-03-19T13:32:04.013243+00:00",
    "context": {
        "id": "5c28b26faa998d225cbd237ea1e6954f",
        "parent_id": "761cbd6bdfe8a4ff30e513d3f60d743a",
        "user_id": null
    }
}

But if I hold the buttons, there is no ahb_controller_event triggered after the zha_event. Could this be the cause? If so, what would a fix be?

Hi @WiiiLDFARMER,
thank you for your feedback!

The recommended way to control lights using one of the supported Controllers is with the Light Hook :slight_smile:

but if you want, you can also manually specify actions for each of the events exposed by the controller, as you did for the action_up_short and action_down_short.

Your blueprint setup is lacking the action_up_long and action_down_long sequences, which will be activated when holding the up and down buttons, as well as a valid input_text entity for the helper_last_loop_event_input input. The reason why this text input is required is explained in the docs here.

With these 3 inputs correctly provided to the blueprint, your automation should run as expected.

Yeah, that event is fired by the Controller blueprint whenever an event occurs. Thatā€™s the way Controllers and Hooks are able to link with each other and build controller-based automations together: Hooks simply listen for these events with the specified controller name, and whenever a relevant event is fired, they activate the action corresponding to that specific event. :+1:

Iā€™m aware that as of today docs for the Controllers-Hooks ecosystem arenā€™t clear on how the whole system works and how to setup controller-based automations. Iā€™m working on them to improve their general quality, as well as provide examples and better explanations on how things work under the hood. This project definitely needs better documentation. :slight_smile:

Please let me know if providing the missing inputs fixes the issue.
Thanks!

Hi there!

to @WiiiLDFARMER , @felixkleisen, @deadly667 and anyone interested in this.

In the past days I worked on improving documentation for the Controllers-Hooks Ecosystem; Iā€™ve just completed the update.

You can read docs for Controllers and Hooks here. Iā€™ve also included some usage examples, as well as different configuration scenarios for controller-based automations.

I hope docs are able to address many doubts regarding the setup of such blueprints. If not, please report it here, Iā€™d be happy to help, or to simply hear your opinion on the new documentation. :slight_smile:

Thanks Matteo, this solved my problem!

If anyone else encounters this ā€˜issueā€™ (or actually, misunderstanding):

  • I misunderstood the ā€˜button_up_long_loop: trueā€™ part as it looping the single click action upon long press. But it keeps looping the longpress action untill longpress is released, makes sense!
  • I also misunderstood the helper, I interpreted it as being only needed when using double press actions AND zha. However, it is needed for double press actions OR zha :slight_smile:

For reference, my working automation yaml now looks like this:

alias: living room ceiling remote
description: ''
use_blueprint:
  path: EPMatt/ikea_e1524_e1810.yaml
  input:
    integration: ZHA
    remote: 8505acac8ce230dc94bc9e45fddc6a47
    action_up_short:
      - service: light.turn_on
        entity_id: light.ceiling_living
        data:
          brightness_step_pct: 20
          transition: 0.7
    action_up_long:
      - service: light.turn_on
        entity_id: light.ceiling_living
        data:
          brightness_step_pct: 10
          transition: 0.1
    action_down_short:
      - service: light.turn_on
        entity_id: light.ceiling_living
        data:
          brightness_step_pct: -20
          transition: 0.7
    action_down_long:
      - service: light.turn_on
        entity_id: light.ceiling_living
        data:
          brightness_step_pct: -10
          transition: 0.1
    action_center_short:
      - service: light.toggle
        data: {}
        target:
          entity_id: light.ceiling_living
    button_left_long_loop: false
    button_right_long_loop: false
    button_up_long_loop: true
    button_down_long_loop: true
    helper_last_loop_event_input: input_text.zha_ikea_remote_helper_living_ceiling

The helper was created as a simple text input via the ā€˜Helperā€™ panel in homeassistant.

I did not use Hooks because I like to have some control myself on what happens, so if you do want to use Hooks check the docs of Matteo :slight_smile:

1 Like

Very nice of you to add additional docs :smiley:

I am not using hooks, but browsing scanning your docs it is already much clearer than before. The block diagrams in combination with the example configurations make it much more understandable.

Great work on these blueprints!!

1 Like

Hi @WiiiLDFARMER, thank you so much for your nice feedback!
Iā€™m happy that docs helped you to better understand how the whole ecosystem works. :slight_smile:

Thank you for your example post on this topic too, that will certainly help future users a lot.

Again, Iā€™m always glad to receive feedback and Iā€™m really interested in making the docs as clear as possible, so if you have any suggestion or idea on how to improve them, Iā€™d be happy to hear your voice. :smiley:

Happy automating!

To use this with zigbee2mqtt I require to activate ā€œHome Assistant legacy triggersā€ in Z2M->Settings->Advanced?
After trying to modify another zigbee2mqtt blueprint and looking around other z2m blueprints, and comparing with my automations I created with devices and z2m, it seems currently they only work with ā€œentityā€ tiggers and not ā€œdeviceā€, is this correct?

Hi,
I have played around with this blueprint and the Hook Light blueprint.
Iā€™ve also just read the docs but Iā€™m missing somethingā€¦
I successfully created an automation based on the main blueprint of this thread (Ikea 5-button switch, Deconz, LIFX bulbs)
It works fine : toggle on/off with the center button, increase/decrease brigthness with up/down buttons (single and long presses) all within the ā€œEPMatt/ikea_e1524_e1810.yamlā€ blueprint :ok_hand:

2 questions :

  • I donā€™t know how to configure the white temperature cool/warm on the left/right arrows :thinking:
  • Would I need the Hook Light blueprint for that ? Because I havenā€™t had to use it so far so Iā€™m not sure what itā€™s for :man_shrugging:

Thanks for your help and/or any examples of such a scenario !

[EDIT] Nevermind, I figured out my mistake. I had badly configured the Hook.
Both brigthness and color temperatrure work :smiley:
Here is its setup :

1 Like

Hi @JeromeO, thank you for reporting here.

Would I need the Hook Light blueprint for that ?

Yeah, both color temperature and brightness control are integrated in the Light Hook. You donā€™t need to specify any custom action for that - just setup and link the two automations as described in the docs and youā€™re good to go. :wink:

Iā€™m happy to hear that you managed to properly setup this controller with the Light Hook.
Happy automating, and enjoy the blueprints! :smiley:

Ive been strugglede a lot with this now :frowning:

Ive set up the remote using zHa and that works.
I managed to get singel press working, but cant figure out double press and press hold functions :frowning:

Whould anybody be able to help me remotely to finish this :smiley: ?

thanks !

Hi @denperss, thank you for reporting.

Could you please share the YAML for the automation youā€™ve configured?
You can find it in the Home Assistant web interface by navigating to Configuration ā†’ Automations ā†’ Click the pen tool in the automation row ā†’ Three dots on the top right of the page ā†’ Edit as YAML.

Thank you! :slight_smile:

alias: Controller - IKEA E1524/E1810 5-Button Remote Gang
description: ''
use_blueprint:
  path: EPMatt/ikea_e1524_e1810.yaml
  input:
    integration: ZHA
    controller_device: feca8994b4aexxxxxxxxxxxxxx11e
    action_button_center_short:
      - service: light.toggle
        target:
          entity_id:
            - light.paere_s
            - light.paere_o
            - light.paere_d

Hi @denperss, sorry for the delay.

While configuring the blueprint you need to provide a valid input_text entity for the helper_last_controller_event input, as described in the Inputs section in the E1524/E1810 blueprint documentation.

You can find additional details regarding this mandatory input in the general Controller-Hooks Ecosystem documentation.

Please let me know if adding the missing blueprint input solves your issue.
Thank you!

Hey @epmatt, the blueprint looks really cool and Iā€™m eager to try it. Unfortunately I am not able to make it work with my E1810 Tradfri remote connected through zigbee2mqtt. Iā€™ve tried to a version of the basic script you provide in the documentation and removing the battery, but without any results.

- id: '1627203179409'
  alias: Controller - IKEA E1524/E1810 5-Button Remote - Dining room
  description: ''
  use_blueprint:
    path: EPMatt/ikea_e1524_e1810.yaml
    input:
      integration: Zigbee2MQTT
      action_button_center_short: []
      controller_entity: sensor.multiremote_dining_room_action
      action_button_right_short:
      - service: light.turn_on
        target:
          entity_id: light.bulb_dining_room

- id: '1627205359318'
  alias: Test automation
  description: ''
  trigger:
  - platform: state
    entity_id: sensor.multiremote_dining_room_action
    attribute: action
    to: arrow_left_click
  condition: []
  action:
  - service: light.turn_on
    target:
      entity_id: light.bulb_dining_room
    data: {}
  mode: single

The top automation does not do anything. But the basic bottom automation was able to turn on the lights. Do you have any idea how to improve this?

When looking at the trace back I see: ā€˜not a valid value for dictionary value @ data[ā€˜entity_idā€™]ā€™.

Hi @Denth,
thank you for reaching out and welcome to the Home Assistant Community Forum! :tada:

While configuring the blueprint you need to provide a valid input_text entity for the helper_last_controller_event input, as described in the Inputs section in the E1524/E1810 blueprint documentation .

You can find additional details regarding this mandatory input in the general Controller-Hooks Ecosystem documentation .

Please let me know if adding the missing blueprint input solves your issue.
Thank you!

Hello, Iā€™m trying to set up the button, but it looks like itā€™s not registering center button presses.

All other buttons work fine.