Zooz ZEN34 remote automation (legacy Zwave)

blueprint:
  name: Zooz ZEN34 Remote scene control
  description: |
    Use the Zooz ZEN34 remote to trigger Scenes and control devices based on varying scenes. 

    This Blueprint is currently configured for the legacy Open Zwave integration, but could be adapted in future to use the new zwaveJS platform.
    
  domain: automation
  input:
    zwave_entity:
      name: Zwave Entity
      description: The Aeotec WallMote Quad controller to listen for events on.
      selector:
        entity:
          domain: zwave
    1x_tap_up:
      name: Tap up 1x
      selector:
        action:
      default: []
    1x_tap_down:
      name: Tap down 1x
      selector:
        action:
      default: []
    2x_tap_up:
      name: Tap up 2x
      selector:
        action:
      default: []
    2x_tap_down:
      name: Tap down 2x
      selector:
        action:
      default: []
    3x_tap_up:
      name: Tap up 3x
      selector:
        action:
      default: []
    3x_tap_down:
      name: Tap down 3x
      selector:
        action:
      default: []
    4x_tap_up:
      name: Tap up 4x
      selector:
        action:
      default: []
    4x_tap_down:
      name: Tap down 4x
      selector:
        action:
      default: []
    5x_tap_up:
      name: Tap up 5x
      selector:
        action:
      default: []
    5x_tap_down:
      name: Tap down 5x
      selector:
        action:
      default: []
    hold_up:
      name: Hold up
      selector:
        action:
      default: []
    hold_down:
      name: Hold down
      selector:
        action:
      default: []

mode: single

trigger:
  - platform: event
    event_type: zwave.scene_activated

variables:
  logger: blueprint.zwave_scene_activation
  zwave_entity: !input zwave_entity

action:
  - choose:
    # IF triggered node_id is zwave_entity node_id
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.node_id == state_attr(zwave_entity, 'node_id') }}"
        sequence:
          - choose:
            # IF 1x tap up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 7680 }}"
                sequence: !input 1x_tap_up
            # IF 1x tap down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 7680 }}"
                sequence: !input 1x_tap_down
            # IF 2x tap up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 7860 }}"
                sequence: !input 2x_tap_up
            # IF 2x tap down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 7860 }}"
                sequence: !input 2x_tap_down
            # IF 3x tap up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 7920 }}"
                sequence: !input 3x_tap_up
            # IF 3x tap down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 7920 }}"
                sequence: !input 3x_tap_down
            # IF 4x tap up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 7980 }}"
                sequence: !input 4x_tap_up
            # IF 4x tap down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 7980 }}"
                sequence: !input 4x_tap_down
            # IF 5x tap up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 8040 }}"
                sequence: !input 5x_tap_up
            # IF 5x tap down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 8040 }}"
                sequence: !input 5x_tap_down
            # IF hold up
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_data == 7800 }}"
                sequence: !input hold_up
            # IF hold down
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.scene_id == 2 and trigger.event.data.scene_data == 7800 }}"
                sequence: !input hold_down
            # ELSE: unhandled scene_id/scene_data
            default:
              - service: system_log.write
                data:
                  level: debug
                  logger: "{{ logger }}"
                  message: "Activated scene '{{ trigger.event.data.scene_label }}' ({{ trigger.event.data.scene_id }}) with value '{{ trigger.event.data.scene_value_label }}' ({{ trigger.event.data.scene_data }}) for node '{{ zwave_entity }}' ({{ trigger.event.data.node_id }})"
    # ELSE: unhandled zwave event
    default: []

awesome! thanks for this. I hope you don’t mind, I used this as a template to make a similar one for the aeon minimote: