šŸ’” Awesome HA Blueprints: A curated list of blueprints + easily create controller-based automations (remotes, switches,...) for controlling lights, media players, and more

Thanks @epmatt for these Blueprintsā€¦ they work amazing with both IKEA E1743 and E1744. Iā€™m using Zigbee2mqtt.

I actually did a similar automation myself, earlierā€¦ when ā€œrepeatā€-function was implemented to automations. That solved the dimming part. But you took it a step further by implementing this all with Blueprints, which really simplifies it to the end user. :+1:

I would like to share an idea that hopefully gets implemented in the future. That isā€¦ ā€œDouble press to change light-source entityā€. I had this functionality myself before I switched over to use your Blueprints instead.

If you have many lights in a room that you want to control, then it eases to be able to control them individually with only one switch/controller instead of having a switch for each light-source.

I solved this by having a group with all light-entities I wanted to switch between and an input_number helper to know which entity was currently selected (from the group) and being controlled by the switch. Each time I switched to another light-entity, it responded with a short blink (on/off).

I miss this feature in your Awesome Blueprintsā€¦ :wink: ā€¦and Iā€™m afraid Iā€™m too busy to implement this feature myself. :roll_eyes:

Thanks!

Hi. I am having problems having double press and single press being recognised. I have 1000ms set as double press delay. I seem to only be able to use single press or double press instead of both together. This was previously working perfectly but suddenly within the last week this issue has appeared.

Hello @epmatt
Thank you for the blueprints.
I am trying to create an automation for the IKEA E1810 Shortcut Button.
I want only one action when pressed and one when long-pressed.

I created a Helper by going to Configuration > Helpers > +Add Helper.
It is a Text Helper, named input_text.ikea_tv_room_shortcut_button_helper.

Then I create an automation using the blueprint with the following details:
(Required) Integration = ZHA
(deCONZ, ZHA) Controller Device = Zigbee
(Zigbee2MQTT) Controller Entity = left blank, I donā€™t use zigbee2mqtt
(Required) Helper - Last Controller Event = input_text.ikea_tv_room_shortcut_button_helper

Then I add an action for the short press, and another for the long press.

When I save the automation and try to run it, nothing happens. The log has the following errors:

Logger: homeassistant.helpers.template
Source: helpers/template.py:1718
First occurred: 15:31:26 (2 occurrences)
Last logged: 15:55:11

Logger: homeassistant.helpers.template
Source: helpers/template.py:1718
First occurred: 15:31:26 (2 occurrences)
Last logged: 15:55:11

And in more detail:

Error while executing automation automation.tv_room_movie_time_toggle_on_off: UndefinedError: 'dict object' has no attribute 'event'
15:55:11 ā€“ (ERROR) Automation - message first occurred at 15:31:26 and shows up 2 times
TV ROOM Movie Time Toggle ON/OFF: Error executing script. Error rendering template for variables at pos 2: UndefinedError: 'dict object' has no attribute 'event'
15:55:11 ā€“ (ERROR) Automation - message first occurred at 15:31:26 and shows up 2 times
Template variable error: 'dict object' has no attribute 'event' when rendering '{%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state }} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%- elif integration_id == "zha" -%} {{ trigger.event.data.command }}{{"_" if trigger.event.data.args|length > 0}}{{ trigger.event.data.args|join("_") }} {%- endif -%}'
15:55:11 ā€“ (ERROR) helpers/template.py - message first occurred at 15:31:26 and shows up 2 times

Any idea what I am doing wrong?

Hey! Epic blueprint, and was incredibly easy to get up and running using my Symfonisk controller.

However, since I did a reboot of Home Assistant, the Controller automation is no longer triggering the hook. I canā€™t seem to figure out why, here is the A/B output from the trace:

Executed: January 1, 2022, 12:28:51 PM
Result:

result: false

## conditions/0

Executed: January 1, 2022, 12:28:51 PM
Result:

result: false entities: []

Any hints as to what might be going wrong here? FYI, Iā€™m using Zigbee2MQTT.

Cheers - Jay.

hey!
Thanks for these blueprints!
After a fresh setup the light (light.ganglicht) which I controll via a E1524 remote only turns off via a press of the middle button, but when I try to turn it on, it will fail and ā€œcrashā€ with an error.
Follwing error in the log:

Logger: homeassistant.components.automation.licht_ganglicht_hook_2
Source: components/hue/bridge.py:132
Integration: Automatisierung (documentation, issues)
First occurred: 09:08:58 (4 occurrences)
Last logged: 09:08:59

[Licht] Ganglicht - Hook: Choose at step 2: choice 1: Choose at step 1: default: Error executing script. Unexpected error for call_service at pos 1: 400, message='Bad Request', url=URL('https://192.168.XXX.XX/clip/v2/resource/light/7c4800a4-2e22-4777-bf92-1cbbef22aedf')
[Licht] Ganglicht - Hook: Choose at step 2: choice 1: Error executing script. Unexpected error for choose at pos 1: 400, message='Bad Request', url=URL('https://192.168.XXX.XX/clip/v2/resource/light/7c4800a4-2e22-4777-bf92-1cbbef22aedf')
[Licht] Ganglicht - Hook: Error executing script. Unexpected error for choose at pos 2: 400, message='Bad Request', url=URL('https://192.168.XXX.XX/clip/v2/resource/light/7c4800a4-2e22-4777-bf92-1cbbef22aedf')
While executing automation automation.licht_ganglicht_hook_2
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 381, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 584, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1495, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1530, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 209, in handle_service
    await self.hass.helpers.service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 663, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 896, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 700, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 510, in async_handle_toggle_service
    await async_handle_light_on_service(light, call)
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 494, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/usr/src/homeassistant/homeassistant/components/hue/v2/group.py", line 175, in async_turn_on
    await self.bridge.async_request_call(
  File "/usr/src/homeassistant/homeassistant/components/hue/bridge.py", line 132, in async_request_call
    return await task(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/aiohue/v2/controllers/lights.py", line 85, in set_state
    await self._send_put(id, update_obj)
  File "/usr/local/lib/python3.9/site-packages/aiohue/v2/controllers/base.py", line 137, in _send_put
    await self._bridge.request("put", endpoint, json=data)
  File "/usr/local/lib/python3.9/site-packages/aiohue/v2/__init__.py", line 152, in request
    async with self.create_request(method, path, **kwargs) as resp:
  File "/usr/local/lib/python3.9/contextlib.py", line 181, in __aenter__
    return await self.gen.__anext__()
  File "/usr/local/lib/python3.9/site-packages/aiohue/v2/__init__.py", line 182, in create_request
    res.raise_for_status()
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1004, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url=URL('https://192.168.XXX.XX/clip/v2/resource/light/7c4800a4-2e22-4777-bf92-1cbbef22aedf')

The automation which was generated:

variables:
  controller_model: IKEA E1524/E1810 TRƅDFRI Wireless 5-Button Remote
  controller_mapping:
    IKEA E1524/E1810 TRƅDFRI Wireless 5-Button Remote:
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
      color_down: button_left_short
      color_down_repeat: button_left_long
      color_up: button_right_short
      color_up_repeat: button_right_long
      toggle: button_center_short
    IKEA E1743 TRƅDFRI On/Off Switch & Dimmer:
      turn_on: button_up_short
      brightness_up_repeat: button_up_long
      color_up: button_up_double
      turn_off: button_down_short
      brightness_down_repeat: button_down_long
      color_down: button_down_double
    IKEA E1743 TRƅDFRI On/Off Switch & Dimmer (#2):
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      turn_on: button_up_double
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
      turn_off: button_down_double
    IKEA E1744 SYMFONISK Rotary Remote:
      brightness_down_repeat: rotate_left
      brightness_up_repeat: rotate_right
      toggle: click_short
      color_up: click_double
      color_down: click_triple
    IKEA E1766 TRƅDFRI Open/Close Remote:
      brightness_up: button_up_short
      turn_on: button_up_double
      brightness_down: button_down_short
      turn_off: button_down_double
    IKEA E1766 TRƅDFRI Open/Close Remote (#2):
      brightness_up: button_up_short
      color_up: button_up_double
      brightness_down: button_down_short
      color_down: button_down_double
    IKEA E1812 TRƅDFRI Shortcut button:
      toggle: button_short
      color_up: button_double
    IKEA E2001/E2002 STYRBAR Remote control:
      turn_on: button_up_short
      brightness_up_repeat: button_up_long
      turn_off: button_down_short
      brightness_down_repeat: button_down_long
      color_down: button_left_short
      color_down_repeat: button_left_long
      color_up: button_right_short
      color_up_repeat: button_right_long
    IKEA E2001/E2002 STYRBAR Remote control (#2):
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      turn_on: button_up_double
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
      turn_off: button_down_double
      color_down: button_left_short
      color_down_repeat: button_left_long
      color_up: button_right_short
      color_up_repeat: button_right_long
    IKEA ICTC-G-1 TRƅDFRI wireless dimmer:
      brightness_down_repeat: rotate_left
      brightness_up_repeat: rotate_right
    OSRAM AC025XX00NJ SMART+ Switch Mini:
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      color_up: button_up_double
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
      color_down: button_down_double
      toggle: button_center_short
    Philips 324131092621 Hue Dimmer switch:
      turn_on: button_on_short
      color_up_repeat: button_on_long
      turn_off: button_off_short
      color_down_repeat: button_off_long
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
    Philips 8718699693985 Hue Smart Button:
      toggle: button_short
    Philips 929002398602 Hue Dimmer switch v2:
      turn_on: button_on_short
      color_up_repeat: button_on_long
      turn_off: button_off_short
      color_down_repeat: button_off_long
      brightness_up: button_up_short
      brightness_up_repeat: button_up_long
      brightness_down: button_down_short
      brightness_down_repeat: button_down_long
    Xiaomi WXCJKG11LM Aqara Opple 2 button remote:
      turn_on: button_1_short
      brightness_up_repeat: button_1_long
      color_up: button_1_double
      turn_off: button_2_short
      brightness_down_repeat: button_2_long
      color_down: button_2_double
    Xiaomi WXCJKG12LM Aqara Opple 4 button remote:
      turn_on: button_1_short
      brightness_up_repeat: button_1_long
      color_up: button_1_double
      turn_off: button_2_short
      brightness_down_repeat: button_2_long
      color_down: button_2_double
    Xiaomi WXCJKG12LM Aqara Opple 4 button remote (#2):
      turn_on: button_3_short
      brightness_up_repeat: button_3_long
      color_up: button_3_double
      turn_off: button_4_short
      brightness_down_repeat: button_4_long
      color_down: button_4_double
    Xiaomi WXCJKG13LM Aqara Opple 6 button remote:
      turn_on: button_1_short
      brightness_up_repeat: button_1_long
      color_up: button_1_double
      turn_off: button_2_short
      brightness_down_repeat: button_2_long
      color_down: button_2_double
    Xiaomi WXCJKG13LM Aqara Opple 6 button remote (#2):
      turn_on: button_3_short
      brightness_up_repeat: button_3_long
      color_up: button_3_double
      turn_off: button_4_short
      brightness_down_repeat: button_4_long
      color_down: button_4_double
    Xiaomi WXCJKG13LM Aqara Opple 6 button remote (#3):
      turn_on: button_5_short
      brightness_up_repeat: button_5_long
      color_up: button_5_double
      turn_off: button_6_short
      brightness_down_repeat: button_6_long
      color_down: button_6_double
  brightness_up: '{{ controller_mapping[controller_model]["brightness_up"] | default(None) }}'
  brightness_up_repeat: >-
    {{ controller_mapping[controller_model]["brightness_up_repeat"] |
    default(None) }}
  brightness_down: >-
    {{ controller_mapping[controller_model]["brightness_down"] | default(None)
    }}
  brightness_down_repeat: >-
    {{ controller_mapping[controller_model]["brightness_down_repeat"] |
    default(None) }}
  color_up: '{{ controller_mapping[controller_model]["color_up"] | default(None) }}'
  color_up_repeat: >-
    {{ controller_mapping[controller_model]["color_up_repeat"] | default(None)
    }}
  color_down: '{{ controller_mapping[controller_model]["color_down"] | default(None) }}'
  color_down_repeat: >-
    {{ controller_mapping[controller_model]["color_down_repeat"] | default(None)
    }}
  toggle: '{{ controller_mapping[controller_model]["toggle"] | default(None) }}'
  turn_on: '{{ controller_mapping[controller_model]["turn_on"] | default(None) }}'
  turn_off: '{{ controller_mapping[controller_model]["turn_off"] | default(None) }}'
  light_color_mode: Auto
  light: light.ganglicht
  light_transition: 250
  min_brightness: 1
  max_brightness: 255
  brightness_steps_short: 10
  brightness_steps_long: 10
  force_brightness: false
  on_brightness: 1
  smooth_power_on: true
  smooth_power_off: true
  color_modes:
    Auto: auto
    Color Temperature: color_temp
    Hue - Saturation: hs_color
    None: none
  light_color_mode_id: >-
    {%- if light_color_mode == "Auto" -%} {% set supported_color_modes =
    state_attr(light, "supported_color_modes") -%} {%- if "hs" in
    supported_color_modes or "xy" in supported_color_modes or "rgbw" in
    supported_color_modes or "rgbww" in supported_color_modes -%} {{
    color_modes["Hue - Saturation"] }} {%- elif "color_temp" in
    supported_color_modes -%} {{ color_modes["Color Temperature"] }} {%- else
    -%} {{ color_modes["None"] }} {%- endif -%} {%- else -%} {{
    color_modes[light_color_mode] }} {%- endif -%}
  step_short: '{{ (max_brightness-min_brightness)/brightness_steps_short }}'
  step_long: '{{ (max_brightness-min_brightness)/brightness_steps_long }}'
mode: restart
max_exceeded: silent
trigger:
  - platform: event
    event_type: ahb_controller_event
    event_data:
      controller: 911242cf1805689a846e026a2e32b577
  - platform: event
    event_type: ahb_controller_event
    event_data:
      controller: ''
condition: []
action:
  - variables:
      action: '{{ trigger.event.data.action }}'
  - choose:
      - conditions: '{{ action == toggle }}'
        sequence:
          - choose:
              - conditions: '{{ force_brightness }}'
                sequence:
                  - service: light.toggle
                    entity_id: light.ganglicht
                    data:
                      brightness: 1
                      transition: '{{ light_transition / 1000 }}'
            default:
              - service: light.toggle
                entity_id: light.ganglicht
                data:
                  transition: '{{ light_transition / 1000 }}'
      - conditions: '{{ action == turn_on }}'
        sequence:
          - choose:
              - conditions: '{{ force_brightness }}'
                sequence:
                  - service: light.turn_on
                    entity_id: light.ganglicht
                    data:
                      brightness: 1
                      transition: '{{ light_transition / 1000 }}'
            default:
              - service: light.turn_on
                entity_id: light.ganglicht
                data:
                  transition: '{{ light_transition / 1000 }}'
      - conditions: '{{ action == turn_off }}'
        sequence:
          - service: light.turn_off
            entity_id: light.ganglicht
            data:
              transition: '{{ light_transition / 1000 }}'
      - conditions: '{{ action == brightness_up }}'
        sequence:
          - choose:
              - conditions: '{{ states(light) == "off" and not smooth_power_on}}'
                sequence:
                  - service: light.turn_on
                    data:
                      transition: '{{ light_transition / 1000 }}'
                      entity_id: light.ganglicht
              - conditions: '{{ states(light) == "off" and smooth_power_on}}'
                sequence:
                  - service: light.turn_on
                    data:
                      brightness: '{{ min_brightness }}'
                      transition: '{{ light_transition / 1000 }}'
                      entity_id: light.ganglicht
            default:
              - service: light.turn_on
                data:
                  brightness: >-
                    {{ [ [state_attr(light,"brightness")+step_short,
                    min_brightness] | max, max_brightness] | min }}
                  transition: 0.25
                  entity_id: light.ganglicht
      - conditions: '{{ action == brightness_down and states(light) == "on" }}'
        sequence:
          - choose:
              - conditions: >-
                  {{ smooth_power_off and state_attr(light,"brightness") ==
                  min_brightness }}
                sequence:
                  - service: light.turn_off
                    data:
                      transition: '{{ light_transition / 1000 }}'
                      entity_id: light.ganglicht
            default:
              - service: light.turn_on
                data:
                  brightness: >-
                    {{ [ [state_attr(light,"brightness")-step_short,
                    min_brightness] | max, max_brightness] | min }}
                  transition: 0.25
                  entity_id: light.ganglicht
      - conditions: '{{ action == brightness_up_repeat }}'
        sequence:
          - choose:
              - conditions: '{{ states(light) == "off" and not smooth_power_on}}'
                sequence:
                  - service: light.turn_on
                    data:
                      transition: '{{ light_transition / 1000 }}'
                      entity_id: light.ganglicht
                  - delay:
                      milliseconds: 250
              - conditions: '{{ states(light) == "off" and smooth_power_on}}'
                sequence:
                  - service: light.turn_on
                    data:
                      brightness: '{{ min_brightness }}'
                      transition: '{{ light_transition / 1000 }}'
                      entity_id: light.ganglicht
                  - delay:
                      milliseconds: 250
          - repeat:
              while: '{{ true }}'
              sequence:
                - service: light.turn_on
                  data:
                    brightness: >-
                      {{ [ [state_attr(light,"brightness")+step_long,
                      min_brightness] | max, max_brightness] | min }}
                    transition: 0.25
                    entity_id: light.ganglicht
                - delay:
                    milliseconds: 250
      - conditions: '{{ action == brightness_down_repeat and states(light) == "on"  }}'
        sequence:
          - choose:
              - conditions: '{{ smooth_power_off }}'
                sequence:
                  - repeat:
                      while: '{{ states(light) != "off" }}'
                      sequence:
                        - choose:
                            - conditions: >-
                                {{ state_attr(light,"brightness") ==
                                min_brightness }}
                              sequence:
                                - service: light.turn_off
                                  data:
                                    transition: '{{ light_transition / 1000 }}'
                                    entity_id: light.ganglicht
                                - delay:
                                    milliseconds: 250
                          default:
                            - service: light.turn_on
                              data:
                                brightness: >-
                                  {{ [
                                  [state_attr(light,"brightness")-step_long,
                                  min_brightness] | max, max_brightness] | min
                                  }}
                                transition: 0.25
                                entity_id: light.ganglicht
                            - delay:
                                milliseconds: 250
            default:
              - repeat:
                  while: '{{ states(light) != "off" }}'
                  sequence:
                    - service: light.turn_on
                      data:
                        brightness: >-
                          {{ [ [state_attr(light,"brightness")-step_long,
                          min_brightness] | max, max_brightness] | min }}
                        transition: 0.25
                        entity_id: light.ganglicht
                    - delay:
                        milliseconds: 250
      - conditions: '{{ action == color_up and light_color_mode_id != "none" }}'
        sequence:
          choose:
            - conditions: '{{ light_color_mode_id == "color_temp" }}'
              sequence:
                - service: light.turn_on
                  data:
                    color_temp: '{{ state_attr(light,"color_temp")|int + 50 }}'
                    transition: 0.25
                  entity_id: light.ganglicht
            - conditions: '{{ light_color_mode_id == "hs_color" }}'
              sequence:
                - service: light.turn_on
                  data:
                    hs_color: >-
                      {{ [((state_attr(light,"hs_color")[0] or 0) + 15) % 360,
                      100] }}
                    transition: 0.25
                  entity_id: light.ganglicht
      - conditions: '{{ action == color_down and light_color_mode_id != "none" }}'
        sequence:
          choose:
            - conditions: '{{ light_color_mode_id == "color_temp" }}'
              sequence:
                - service: light.turn_on
                  data:
                    color_temp: '{{ [state_attr(light,"color_temp")|int - 50, 1]|max }}'
                    transition: 0.25
                  entity_id: light.ganglicht
            - conditions: '{{ light_color_mode_id == "hs_color" }}'
              sequence:
                - service: light.turn_on
                  data:
                    hs_color: >-
                      {{ [((state_attr(light,"hs_color")[0] or 0) - 15) % 360,
                      100] }}
                    transition: 0.25
                  entity_id: light.ganglicht
      - conditions: '{{ action == color_up_repeat and light_color_mode_id != "none" }}'
        sequence:
          choose:
            - conditions: '{{ light_color_mode_id == "color_temp" }}'
              sequence:
                - repeat:
                    while: '{{ true }}'
                    sequence:
                      - service: light.turn_on
                        data:
                          color_temp: '{{ state_attr(light,"color_temp")|int + 50 }}'
                          transition: 0.25
                        entity_id: light.ganglicht
                      - delay:
                          milliseconds: 250
            - conditions: '{{ light_color_mode_id == "hs_color" }}'
              sequence:
                - repeat:
                    while: '{{ true }}'
                    sequence:
                      - service: light.turn_on
                        data:
                          hs_color: >-
                            {{ [((state_attr(light,"hs_color")[0] or 0) + 15) %
                            360, 100] }}
                          transition: 0.25
                        entity_id: light.ganglicht
                      - delay:
                          milliseconds: 250
      - conditions: '{{ action == color_down_repeat and light_color_mode_id != "none" }}'
        sequence:
          choose:
            - conditions: '{{ light_color_mode_id == "color_temp" }}'
              sequence:
                - repeat:
                    while: '{{ true }}'
                    sequence:
                      - service: light.turn_on
                        data:
                          color_temp: >-
                            {{ [state_attr(light,"color_temp")|int - 50, 1]|max
                            }}
                          transition: 0.25
                        entity_id: light.ganglicht
                      - delay:
                          milliseconds: 250
            - conditions: '{{ light_color_mode_id == "hs_color" }}'
              sequence:
                - repeat:
                    while: '{{ true }}'
                    sequence:
                      - service: light.turn_on
                        data:
                          hs_color: >-
                            {{ [((state_attr(light,"hs_color")[0] or 0) - 15) %
                            360, 100] }}
                          transition: 0.25
                        entity_id: light.ganglicht
                      - delay:
                          milliseconds: 250
id: '1641283697116'
alias: '[Licht] Ganglicht - Hook'
description: ''

Any idea where the issue is located?
Thanks for the help!

This blueprint is working great, but the presist message that HA create (for example a warning that someone failed to login) isnā€™t transfer to the mobile, any idea?

In case anyone has this same problem - I managed to fix this by setting ā€œLegacy Integration = FALSEā€ in the Z2MQTT settings for this device.

No idea why it worked before with the legacy set to TRUE, but after a restart of HA, it no longer worked - now it is again!

Good luck all!

Hi @epmatt Matteo,
Great Blueprint, especially the part where you introduced the persistence of the state of entities in case of reboot or power failure.
I really like to use this for e.g. an automation which start at sunset (with an offset of e.g. 0.5 to 2 hours)
But i am not a programmer, could you please help me to change your Blueprint On-Off schedule with state persistence to act like this?
Kind regards, Bert

Hi @epmatt
This really is awesome.Thanks so much! Just bought a Sonoff Zigbee Plus dongle and started using Zigbee2MQTTā€¦ I started looking at some standard bluprints for my Ikea remote etc and they just failed to work. Yours has SO much functionality AND works!! :slight_smile: wow!!

Just one thingā€¦ I notice that the Hue Smart Button blueprint doesnā€™t support Zigbee2MQTT but all the others do. Just wondered if that might change at some point. i.e. Be supported!? :slight_smile:

Thanks again
Will

Hi Matt! Amazing blueprints you have made.

Iā€™m having a question that Iā€™m sure is somewhere in the documentations, but I couldnā€™t find an answer on it. I have Philips Hue dimmer switches, and I would like that double-pressing the dimming buttons changes brightnesses to static points, in my case double-pressing the ā€œbrighterā€-button makes the light static 60% and the other button static 20%. I also want to use the controller-hooks infrastructure.

Intuitively it would have been such that I define a ā€œcall serviceā€ light.turn_on to the controller with the wanted parameters, and let the controller-hook communication decide which light needs to turn on but this is not working. Am I doing something wrong or what could be the problem?

I also enabled the ā€œexpose _ button double press eventā€ things.

Xiaomi WXCJKG13LM Aqara Opple 6 button remote with ZHA in the blueprint it is using ā€œ_long press" but in zha events you see this switch firing "_holdā€

I updated my automation to the latest versions of blueprints :

  • controller Version 2021.10.26
  • hook light Version 2021.12.05
    Since then it does seem to support my group of lights anymore :crying_cat_face:

I put group.lights_study in the (Required) Light Entity of my Hook Light
and I have this in my groups.yaml

lights_study:
  name: Study lights (group)
  entities:
    - light.study1
    - light.study2

It used to work with a former pair of blueprints :confused:
Has anything changed in the blueprints that would explain that loss in the behavior ?
Thank you !

Ok, seems like I need to rely on a group set in the configuration.yaml like so :

light :
  - platform: group
    name: Office lights
    entities:
      - light.study1
      - light.study2

and then use light.office_lights as the Entity in the Hook light blueprint.

Hi @dodoloto,

do you have solution for this? I am also getting error: Error: UndefinedError: 'dict object' has no attribute 'event'

Than you for your help

I looked at the blueprints, but Iā€™m still quite new to HA and blueprints, so I have a simple question: Is it possible to connect multiple devices to the same hook? Either by connecting multiple devices to the same controller blueprint, or by having two controllers connected to the same hook?

In my Hook Light, I have light.dining_room_lights for the (Required) Light.
In configuration.yaml, the group is declared like this :

# https://www.home-assistant.io/integrations/light.group/
light:
  - platform: group
    name: Dining room lights
    entities:
      - light.dining_1
      - light.dining_2
      - light.dining_3
      - light.dining_4
      - light.corner

I donā€™t know about grouping speakers.

Sorrry, my question was unclear: Iā€™m talking about multiple switches indeed - for lightā€™s thereā€™s always groups/areas to use.

I am new to HA and starting to migrate my Homekit/proprietary_hub stuff to HA/Z2M. So exciting!

And these blueprints are so neat and tidy! They made the transition so smooth and friendly! Get more coffee, epmatt!

Just fell into this blueprint after recently adopting Zigbee along with the IKEA STYRBAR 4 button controller and matching bulb.

Is there anyway to add the action to cycle through the ā€˜hueā€™ of the bulb by pushing left/right like you would do with a normally paired button?

PS
Love the blueprint and my first ever use of one :slight_smile:

Ok let me rephrase the problem, what am I doing wrong?

Iā€™m using the EPMatt/ikea_e2001_e2002.yaml blueprint but I donā€™t get the option for left/right click on the button to change hue/colour etc.