ZWave-JS - Homeseer HS-WD200+ Dimmer

Based on the OZW Inovelli blueprint by @troy

This is a blueprint for triggering actions based on presses of the On/Off buttons of the Homeseer HS-WD200+ Dimmer using the new ZWave-JS Integration.

blueprint:
  name: Homeseer HS-WD200+ Dimmer (ZWave-JS)
  description: Create automations for the Homeseer HS-WD200+ Dimmer using the ZWave-JS integration. 
  domain: automation
  input:
    homeseer_switch:
      name: Homeseer Dimmer
      description: "List of available Homeseer Dimmers"
      selector:
          device:
            integration: zwave_js
            manufacturer: HomeSeer Technologies
            model: HS-WD200+
    ## Paddle Press 1 time
    button_a:
      name: Button A - Up/On press 1x
      description: "Action to run, when the button is pressed one time.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    button_b:
      name: Button B - Down/Off press 1x
      description: "Action to run, when the button is pressed one time.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    ## Paddle Held Down
    button_a_held:
      name: Button A - Up/On held down
      description: "Action to run, when the button is held down.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    button_b_held:
      name: Button B - Down/Off held down
      description: "Action to run, when the button is held down.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    ## Paddle Press 2 times
    button_a2:
      name: Button A - Up/On press 2x
      description: "Action to run, when the button is pressed two times."
      default: []
      selector:
        action: {}
    button_b2:
      name: Button B - Down/Off press 2x
      description: "Action to run, when the button is pressed two times."
      default: []
      selector:
        action: {}
    ## Paddle Press 3 times
    button_a3:
      name: Button A - Up/On press 3x
      description: "Action to run, when the button is pressed three times."
      default: []
      selector:
        action: {}
    button_b3:
      name: Button B - Down/Off press 3x
      description: "Action to run, when the button is pressed three times."
      default: []
      selector:
        action: {}
    ## Paddle Press 4 times
    button_a4:
      name: Button A - Up/On press 4x
      description: "Action to run, when the button is pressed four times."
      default: []
      selector:
        action: {}
    button_b4:
      name: Button B - Down/Off press 4x
      description: "Action to run, when the button is pressed four times."
      default: []
      selector:
        action: {}
    ## Paddle Press 5 times
    button_a5:
      name: Button A - Up/On press 5x
      description: "Action to run, when the button is pressed five times."
      default: []
      selector:
        action: {}
    button_b5:
      name: Button B - Down/Off press 5x
      description: "Action to run, when the button is pressed five times."
      default: []
      selector:
        action: {}
mode: single
max_exceeded: silent
variables:
  device_id: !input homeseer_switch
trigger:
  - platform: event
    event_type: zwave_js_value_notification
condition: "{{ trigger.event.data.device_id == device_id }}"
action:
  - variables:
      button_id: "{{ trigger.event.data.property_key_name }}"
      press_count: "{{ trigger.event.data.value }}"
  - service: "logbook.log"
    data:
      name: "Button Id"
      message: "{{ button_id }}"
  - service: "logbook.log"
    data:
      name: "Press Count"
      message: "{{ press_count }}"
  - service: "logbook.log"
    data:
      name: "Device"
      message: "{{ zwave_device }}"
  - choose:
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed" }}'
      sequence: !input button_a
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed" }}'
      sequence: !input button_b
    - conditions: '{{ button_id == "001" and press_count == "KeyHeldDown" }}'
      sequence: !input button_a_held
    - conditions: '{{ button_id == "002" and press_count == "KeyHeldDown" }}'
      sequence: !input button_b_held
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed2x" }}'
      sequence: !input button_a2
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed2x" }}'
      sequence: !input button_b2
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed3x" }}'
      sequence: !input button_a3
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed3x" }}'
      sequence: !input button_b3
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed4x" }}'
      sequence: !input button_a4
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed4x" }}'
      sequence: !input button_b4
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed5x" }}'
      sequence: !input button_a5
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed5x" }}'
      sequence: !input button_b5

Edit 4/7/21: Updated to support HA 2021.4.0 release

6 Likes

With the latest beta the event type has to be updated to “zwave_js_value_notification”

Update the blueprint to support the April 2021 release. Please let me know if there are any issues and I’ll update.

Great Blueprint, thank you. Any intention of doing one for the HS- WS200+?

if you remove model: from the input selector, it will work with HS-WS200 and the HS-FC200 =-) I couldn’t figure out how to “and” the models and limit it to just those 3.

Unsure if this is helpful to anyone but I modified it for the HS-WS200+ by simply changing the model and descriptions
@black_thunder

I only tested double-tap on and off so apologies if any of the other functions don’t work, I only use the doubles

blueprint:
  name: Homeseer HS-WS200+ Switch (ZWave-JS)
  description: Create automations for the Homeseer HS-WD200+ Switch using the ZWave-JS integration. 
  domain: automation
  input:
    homeseer_switch:
      name: Homeseer Switch
      description: "List of available Homeseer Switches"
      selector:
          device:
            integration: zwave_js
            manufacturer: HomeSeer Technologies
            model: HS-WS200+
    ## Paddle Press 1 time
    button_a:
      name: Button A - Up/On press 1x
      description: "Action to run, when the button is pressed one time.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    button_b:
      name: Button B - Down/Off press 1x
      description: "Action to run, when the button is pressed one time.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    ## Paddle Held Down
    button_a_held:
      name: Button A - Up/On held down
      description: "Action to run, when the button is held down.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    button_b_held:
      name: Button B - Down/Off held down
      description: "Action to run, when the button is held down.
      Typically, you will only set this if you have disabled the relay."
      default: []
      selector:
        action: {}
    ## Paddle Press 2 times
    button_a2:
      name: Button A - Up/On press 2x
      description: "Action to run, when the button is pressed two times."
      default: []
      selector:
        action: {}
    button_b2:
      name: Button B - Down/Off press 2x
      description: "Action to run, when the button is pressed two times."
      default: []
      selector:
        action: {}
    ## Paddle Press 3 times
    button_a3:
      name: Button A - Up/On press 3x
      description: "Action to run, when the button is pressed three times."
      default: []
      selector:
        action: {}
    button_b3:
      name: Button B - Down/Off press 3x
      description: "Action to run, when the button is pressed three times."
      default: []
      selector:
        action: {}
    ## Paddle Press 4 times
    button_a4:
      name: Button A - Up/On press 4x
      description: "Action to run, when the button is pressed four times."
      default: []
      selector:
        action: {}
    button_b4:
      name: Button B - Down/Off press 4x
      description: "Action to run, when the button is pressed four times."
      default: []
      selector:
        action: {}
    ## Paddle Press 5 times
    button_a5:
      name: Button A - Up/On press 5x
      description: "Action to run, when the button is pressed five times."
      default: []
      selector:
        action: {}
    button_b5:
      name: Button B - Down/Off press 5x
      description: "Action to run, when the button is pressed five times."
      default: []
      selector:
        action: {}
mode: single
max_exceeded: silent
variables:
  device_id: !input homeseer_switch
trigger:
  - platform: event
    event_type: zwave_js_value_notification
condition: "{{ trigger.event.data.device_id == device_id }}"
action:
  - variables:
      button_id: "{{ trigger.event.data.property_key_name }}"
      press_count: "{{ trigger.event.data.value }}"
  - service: "logbook.log"
    data:
      name: "Button Id"
      message: "{{ button_id }}"
  - service: "logbook.log"
    data:
      name: "Press Count"
      message: "{{ press_count }}"
  - service: "logbook.log"
    data:
      name: "Device"
      message: "{{ zwave_device }}"
  - choose:
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed" }}'
      sequence: !input button_a
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed" }}'
      sequence: !input button_b
    - conditions: '{{ button_id == "001" and press_count == "KeyHeldDown" }}'
      sequence: !input button_a_held
    - conditions: '{{ button_id == "002" and press_count == "KeyHeldDown" }}'
      sequence: !input button_b_held
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed2x" }}'
      sequence: !input button_a2
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed2x" }}'
      sequence: !input button_b2
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed3x" }}'
      sequence: !input button_a3
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed3x" }}'
      sequence: !input button_b3
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed4x" }}'
      sequence: !input button_a4
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed4x" }}'
      sequence: !input button_b4
    - conditions: '{{ button_id == "001" and press_count == "KeyPressed5x" }}'
      sequence: !input button_a5
    - conditions: '{{ button_id == "002" and press_count == "KeyPressed5x" }}'
      sequence: !input button_b5

Also delete

- service: "logbook.log"
   data:
     name: "Device"
     message: "{{ zwave_device }}"

“zwave_device” is not defined so not sure how this logging statement made it into this blueprint.

I keep getting this error with the blueprint.

Error: UndefinedError: 'dict object' has no attribute 'event'

It hangs at the step below.

variables:
  button_id: '{{ trigger.event.data.property_key_name }}'
  press_count: '{{ trigger.event.data.value }}'

Any help would be great.

1 Like

I get the same error. Were you able to fix?

Anyone else have this blueprint stop working with 2023.7.3 update?

My automation (triple click using the blueprint) doesn’t get triggered at all running this update. Revert back to 2023.7.2 and it starts working again.

There isn’t much reason to use the blueprint. Simply create a device trigger for the dimmer. You will see the central scene options after selecting the device trigger. Scene 1 is the up button.

1 Like

Turns out it’s not the blueprint or the ZWave event that has issues. It’s the automation system in the latest HA update.

Looking at the trace of my automation, it hangs up after the trigger but before executing any actions. Says “still running” but no actions have been fired. Ugh.