ZWave-JS - GE/Jasco/Honeywell Double Taps

These are two related blueprints that allow creating automations around the GE/Jasco/Honeywell switch double-tap functionality. With Z-Wave JS, supported switch devices are automatically configured to respond to double tap events. These blueprints allow you to define actions which are triggered by these double tap events.

This blueprint is for the older switches that don’t support Central Scene and rely on Basic Set commands.

Generic Blueprint

Assign any actions to a double tap on or off.

The device selector is filtered to show only devices that support the light, switch and fan domains. Other devices (thermostat, door sensor, etc.) will be excluded.

Import Generic Blueprint.

URL: GE/Jasco Double Tap Generic Blueprint · GitHub

Click to view blueprint content
blueprint:
  name: GE Switch Double Taps
  description: Create automations to react to double taps from supporting GE, Honeywell and Jasco switches.
  domain: automation

  input:
    device:
      name: Switch Device
      description: A GE switch that supports double taps.
      selector:
        device:
          filter:
            - integration: zwave_js
              manufacturer: GE
            - integration: zwave_js
              manufacturer: GE/Enbrighten
            - integration: zwave_js
              manufacturer: Honeywell
            - integration: zwave_js
              manufacturer: Jasco
          entity:
            - domain: light
            - domain: switch

    double_tap_on:
      name: Double Tap On
      description: Actions to run for a double tap on.
      default: []
      selector:
        action:

    double_tap_off:
      name: Double Tap Off
      description: Actions to run for a double tap off.
      default: []
      selector:
        action:

mode: single
max_exceeded: silent

trigger:
  platform: event
  event_type: zwave_js_value_notification
  event_data:
    device_id: !input device
    command_class: 32  # Basic

action:
  - variables:
      value: "{{ trigger.event.data.value_raw }}"
  - choose:
    - conditions: "{{ value == 0 }}"
      sequence: !input double_tap_off
    - conditions: "{{ value == 255 }}"
      sequence: !input double_tap_on

Auto-dimming Blueprint

Automatically set the brightness of a light entity for a double tap on or off.

This specializes the generic blueprint above in order to automatically set the brightness of a light. I configure all of my switches to set their connected load level to 100% brightness on double-tap on, and 25% brightness on double tap off. The blueprint allows setting a configurable brightness for each tap.

Import Auto-dimming Blueprint.

Import URL: GE/Jasco Double Tap Auto-dimming Blueprint · GitHub

Click to view blueprint content
blueprint:
  name: GE Light Switch Double Taps with Auto Brightness
  description: Auto-dim GE/Jasco/Honeywell light switches that support double taps.
  domain: automation

  input:
    device:
      name: Light Switch Device
      description: A light switch that supports double taps.
      selector:
        device:
          filter:
            - integration: zwave_js
              manufacturer: GE
            - integration: zwave_js
              manufacturer: GE/Enbrighten
            - integration: zwave_js
              manufacturer: Honeywell
            - integration: zwave_js
              manufacturer: Jasco
          entity:
            - domain: light

    off_brightness:
      name: Off Brightness
      description: The brightness to set for a double tap off.
      default: 25
      selector:
        number:
          min: 0
          max: 100
          unit_of_measurement: "%"
          mode: slider

    on_brightness:
      name: On Brightness
      description: The brightness to set for a double tap on.
      default: 100
      selector:
        number:
          min: 0
          max: 100
          unit_of_measurement: "%"
          mode: slider

mode: single
max_exceeded: silent

trigger:
  platform: event
  event_type: zwave_js_value_notification
  event_data:
    device_id: !input device
    command_class: 32  # Basic

action:
  - variables:
      value: "{{ trigger.event.data.value_raw }}"
  - choose:
    - conditions: "{{ value == 0 }}"
      sequence:
        - service: light.turn_on
          data:
            brightness_pct: !input off_brightness
          target:
            device_id: !input device
    - conditions: "{{ value == 255 }}"
      sequence:
        - service: light.turn_on
          data:
            brightness_pct: !input on_brightness
          target:
            device_id: !input device

Changelog:

2023-04-09:
  - Compatible with HA 2023.4
  - All Jasco manufacturers supported
  - Generic blueprint filters devices supporting light, switch and fan domains
  - Auto-dim blueprint has removed the entity selector, now targets the selected device automatically
2021-04-07:
  - Changed event_type trigger to zwave_js_value_notification for release 2021.04.
10 Likes

thanks for this. i’ve always wanted to implement double taps with my ge zwave switches. working great so far.

This is great, and I’m looking to use this, but I cannot import it. I’m not sure if its because there are two blue prints in the post or not, but here is the error I get

while scanning a simple key in "<unicode string>", line 47, column 1: </code></pre> ^ could not find expected ':' in "<unicode string>", line 48, column 1: <h2>Auto-dimming Blueprint</h2> ^

How did you copy it? The error is showing some HTML markup. Clicking the “Copy to clipboard” button works OK for me.

I tried to import using the import blueprint button in the HA UI under blueprints, then pasted in the URL for this post. That is where the error was thrown. I’ve added others using that process. Makes it kinda nice.

I was able to manually add the blueprint, by copying and pasting the yaml code above. Works great and thanks for saving me a good amount of time having to “fix” a lot of my older automations

Ah, I didn’t even know you could do that. You’re probably right, maybe two blueprint code blocks in one post breaks the import. I added some URLs for importing, thanks.

1 Like

Are there any configuration or scene activation changes that need to be made in zwavejs interface? I added the automation using the blueprint, but can’t get the double tap to work. I’m using model ZW3008 smart motion dimmer with firmware 5.32.

Do you know for sure that the switch supports double-taps? If it does, the device config file is not setup to support it.

My GE 14294: https://github.com/zwave-js/node-zwave-js/blob/53f9c91c4120fd1b4ceedaa90f67f80e89a5767d/packages/config/config/devices/0x0063/ge_14294_zw3005.json

Your ZW3008: https://github.com/zwave-js/node-zwave-js/blob/3d72a75aa51db0a0b580f1c3277c56d84303d93c/packages/config/config/devices/0x0063/26932_26933_zw3008.json

The device config file needs to configure two things:

  1. Auto-assign assocation group 3 to the controller
  2. Set the treatBasicSetAsEvent compatibility flag which produces events for basic set

The ZW3008 config file is missing both of those. You would need to submit a PR to add the functionality, or submit an issue to request it to be updated.

Thanks @freshcoast

I’m pretty sure these newer switches support double taps, but can’t find much useful specifics on how to create a json config file.

Someone in the Smartthings world has some info on a handler for a similar model:

I will try adding an issue as you suggested.

feature requested and being worked on…

I have a GE 14291 switch that was working for double taps before 2021.4.0 and now it is not with me running 2021.4.0. I see the gist was updated to reflect what I think was the breaking changes in that release yet it’s not noticing the event. Any ideas on how to triage this? Do I need to delete/re-add the automation / blueprint in any way?

All I did was edit my blueprint files and replace the event name. Then I reloaded automations. That was sufficient for me to get the events working.

You can use the event listener to double check that the zwave_js_value_notification is being seen.

Confirming a reload of automations fixed it. A reboot didn’t do it on its own, nor did a delete and re-add of the blueprint.

The blueprint works well for me. I did notice some odd behavior if “local load” on the Z-Wave device was targeted at the controller. That caused the automation to fire on either double or single tap.

Yeah, you can’t really use both, there’s no way to distinguish them.

Hi, this blueprint was working flawlessly until recently. Now I keep getting an error that says:

Error: UndefinedError: ‘dict object’ has no attribute ‘event’

I have no idea how to troubleshoot and was wondering if someone else is having the same issue.

yep. confirmed. i have the same error. double taps was working fine maybe about a few weeks and no longer work.

error seems to be with: value: ‘{{ trigger.event.data.value }}’

Just in case someone else has difficulty in getting this to work:

I restarted automations, and I added the dimmer to the group 3 association with the controller as the target in zwaveJS.

Not sure what made things work, but documenting here for others.

What model do you have? Z-Wave JS does the controller association automatically, but that needs to be setup in the device config file.

It reports as: 26932 / 26933 / ZW3008