Z-Wave JS - GE/Jasco 46201 / ZW4008 Switch

This is a Blueprint for the GE/Jasco 46201 / ZW4008 Switch that sends all of its button events Z-Wave JS via zwave_js_value_notification.

This device has two buttons that I refer to as “UP” and “DOWN” for the on/off paddles making this Blueprint support ten (10) actions:

  • 1x, 2x, 3x, Held and Released for both UP and DOWN

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

blueprint:
  name: GE/Jasco 46201 / ZW4008 Switch (Z-Wave JS) v0.02
  description: Create automations for the GE/Jasco Switches using the Z-Wave JS integration.
  domain: automation
  input:
    ge_jasco:
      name: Switch Device
      description: List of available GE/Jasco 46201 / ZW4008 switches
      selector:
        device:
          integration: zwave_js
          manufacturer: GE/Jasco
          model: 46201 / ZW4008
    tap_1x_up:
      name: Tap 1x Up
      description: Action to run when Up button is pressed 1 time.
      default: []
      selector:
        action:
    tap_1x_dn:
      name: Tap 1x Down
      description: Action to run when Down button is pressed 1 time.
      default: []
      selector:
        action:
    tap_2x_up:
      name: Tap 2x Up
      description: Action to run when Up button is pressed 2 times.
      default: []
      selector:
        action:
    tap_2x_dn:
      name: Tap 2x Down
      description: Action to run when Down button is pressed 2 times.
      default: []
      selector:
        action:
    tap_3x_up:
      name: Tap 3x Up
      description: Action to run when Up button is pressed 3 times.
      default: []
      selector:
        action:
    tap_3x_dn:
      name: Tap 3x Down
      description: Action to run when Down button is pressed 3 times.
      default: []
      selector:
        action:
    up_btn_hld:
      name: Up Button Held
      description: Action to run when Up button is Held.
      default: []
      selector:
        action:
    up_btn_rel:
      name: Up Button Released
      description: Action to run when Up button is Released.
      default: []
      selector:
        action:
    dn_btn_hld:
      name: Down Button Held
      description: Action to run when Down button is Held.
      default: []
      selector:
        action:
    dn_btn_rel:
      name: Down Button Released
      description: Action to run when Down button is Released.
      default: []
      selector:
        action:
#  source_url: https://gist.github.com/shannonfritz/b5151cd53285a1694bf68f56053114b7
mode: single
max_exceeded: silent
variables:
  device_id: !input 'ge_jasco'
trigger:
- platform: event
  event_type: zwave_js_value_notification
condition: '{{ trigger.event.data.device_id == device_id }}'
action:
- variables:
    property_key_name: '{{ trigger.event.data.property_key_name }}'
    label: '{{ trigger.event.data.label }}'
    command_class_name: '{{ trigger.event.data.command_class_name }}'
    value: '{{ trigger.event.data.value }}'
- service: logbook.log
  data:
    name: 'Z-Wave JS'
    message: 'received event: {{ command_class_name }} - {{ value }} - {{ label }}'
- choose:
  - conditions: '{{ property_key_name == ''001'' and value == ''KeyPressed'' }}'
    sequence: !input 'tap_1x_up'
  - conditions: '{{ property_key_name == ''002'' and value == ''KeyPressed'' }}'
    sequence: !input 'tap_1x_dn'
  - conditions: '{{ property_key_name == ''001'' and value == ''KeyPressed2x'' }}'
    sequence: !input 'tap_2x_up'
  - conditions: '{{ property_key_name == ''002'' and value == ''KeyPressed2x'' }}'
    sequence: !input 'tap_2x_dn'
  - conditions: '{{ property_key_name == ''001'' and value == ''KeyPressed3x'' }}'
    sequence: !input 'tap_3x_up'
  - conditions: '{{ property_key_name == ''002'' and value == ''KeyPressed3x'' }}'
    sequence: !input 'tap_3x_dn'
  - conditions: '{{ property_key_name == ''001'' and value == ''KeyHeldDown'' }}'
    sequence: !input 'up_btn_hld'
  - conditions: '{{ property_key_name == ''001'' and value == ''KeyReleased'' }}'
    sequence: !input 'up_btn_rel'
  - conditions: '{{ property_key_name == ''002'' and value == ''KeyHeldDown'' }}'
    sequence: !input 'dn_btn_hld'
  - conditions: '{{ property_key_name == ''002'' and value == ''KeyReleased'' }}'
    sequence: !input 'dn_btn_rel'

Very useful, thanks!

A suggestion: Can you remove the “manufacturer” limitation from the selector? This switch is also sold as GE/Enbrighten. Removing that line from the blueprint you provided has it working great on my differently branded, but same model, switch.

Thanks!