Skip to content

Instantly share code, notes, and snippets.

@rduplain
Last active January 3, 2023 01:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rduplain/39030a06ef05ea49889d9feae386a1f4 to your computer and use it in GitHub Desktop.
Save rduplain/39030a06ef05ea49889d9feae386a1f4 to your computer and use it in GitHub Desktop.
Z-Wave JS Zooz Paddle Scene Control (ZEN21/ZEN22/ZEN27/..., forked from https://community.home-assistant.io/t/zooz-zen27/303161)
blueprint:
name: Zooz Paddle Scene Control (Z-Wave JS)
description: Zooz Dimmer/Switch Paddle Scene Control (ZEN21/ZEN22/ZEN27/...)
domain: automation
input:
switch:
name: Zooz Device
description: Paddle supporting up/down 1-5x presses. Note that scene control adds actions to run alongside default behavior (and does not replace defaults).
selector:
device:
integration: zwave_js
manufacturer: Zooz
# Need a model filter for multiple values (ZEN21/ZEN22/ZEN27/...).
paddle_up_1x:
name: Upper Paddle 1x
description: "Action to run on upper paddle single tap.
Default: Turn on load/light (dimmer at last/custom brightness)."
default: []
selector:
action: {}
paddle_up_2x:
name: Upper Paddle 2x
description: "Action to run on upper paddle double tap.
Default: Set light to max brightness (dimmer)."
default: []
selector:
action: {}
paddle_up_3x:
name: Upper Paddle 3x
description: "Action to run on upper paddle triple tap.
Default: Enter inclusion/pairing mode."
default: []
selector:
action: {}
paddle_up_4x:
name: Upper Paddle 4x
description: Action to run on upper paddle quadruple tap.
default: []
selector:
action: {}
paddle_up_5x:
name: Upper Paddle 5x
description: Action to run on upper paddle quintuple tap.
default: []
selector:
action: {}
paddle_up_hold:
name: Upper Paddle Hold
description: "Action to run on upper paddle press-and-hold.
Default: Increase brightness level (dimmer)."
default: []
selector:
action: {}
paddle_up_release:
name: Upper Paddle Release
description: Action to run on upper paddle release.
default: []
selector:
action: {}
paddle_down_1x:
name: Lower Paddle 1x
description: "Action to run on lower paddle single tap.
Default: Turn off load/light."
default: []
selector:
action: {}
paddle_down_2x:
name: Lower Paddle 2x
description: Action to run on lower paddle double tap.
default: []
selector:
action: {}
paddle_down_3x:
name: Lower Paddle 3x
description: "Action to run on lower paddle triple tap.
Default: Enter exclusion/un-pairing mode."
default: []
selector:
action: {}
paddle_down_4x:
name: Lower Paddle 4x
description: Action to run on lower paddle quadruple tap.
default: []
selector:
action: {}
paddle_down_5x:
name: Lower Paddle 5x
description: Action to run on lower paddle quintuple tap.
default: []
selector:
action: {}
paddle_down_hold:
name: Lower Paddle Hold
description: "Action to run on lower paddle press-and-hold.
Default: Decrease brightness level (dimmer)."
default: []
selector:
action: {}
paddle_down_release:
name: Lower Paddle Release
description: Action to run on lower paddle release.
default: []
selector:
action: {}
mode: single
max_exceeded: silent
trigger:
- platform: event
event_type: zwave_js_value_notification
event_data:
command_class_name: Central Scene
device_id: !input switch
action:
- variables:
scene_id: "{{ trigger.event.data.label }}"
attribute_id: "{{ trigger.event.data.value }}"
- choose:
- conditions: "{{ scene_id == 'Scene 002' }}"
sequence:
- choose:
- conditions: "{{ attribute_id == 'KeyPressed' }}"
sequence: !input paddle_up_1x
- conditions: "{{ attribute_id == 'KeyPressed2x' }}"
sequence: !input paddle_up_2x
- conditions: "{{ attribute_id == 'KeyPressed3x' }}"
sequence: !input paddle_up_3x
- conditions: "{{ attribute_id == 'KeyPressed4x' }}"
sequence: !input paddle_up_4x
- conditions: "{{ attribute_id == 'KeyPressed5x' }}"
sequence: !input paddle_up_5x
- conditions: "{{ attribute_id == 'KeyHeldDown' }}"
sequence: !input paddle_up_hold
- conditions: "{{ attribute_id == 'KeyReleased' }}"
sequence: !input paddle_up_release
- conditions: "{{ scene_id == 'Scene 001' }}"
sequence:
- choose:
- conditions: "{{ attribute_id == 'KeyPressed' }}"
sequence: !input paddle_down_1x
- conditions: "{{ attribute_id == 'KeyPressed2x' }}"
sequence: !input paddle_down_2x
- conditions: "{{ attribute_id == 'KeyPressed3x' }}"
sequence: !input paddle_down_3x
- conditions: "{{ attribute_id == 'KeyPressed4x' }}"
sequence: !input paddle_down_4x
- conditions: "{{ attribute_id == 'KeyPressed5x' }}"
sequence: !input paddle_down_5x
- conditions: "{{ attribute_id == 'KeyHeldDown' }}"
sequence: !input paddle_down_hold
- conditions: "{{ attribute_id == 'KeyReleased' }}"
sequence: !input paddle_down_release
@rduplain
Copy link
Author

rduplain commented Jan 3, 2023

Z-Wave JS integration from the original blueprint (fork) works with more than just ZEN27.

@rduplain
Copy link
Author

rduplain commented Jan 3, 2023

Using triple-tap on the upper paddle, given that it sets the device in inclusion mode, is problematic and ideally avoided.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment