ZWave-JS - Homeseer HS-WD100+ 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-WD100+ Dimmer using the new ZWave-JS Integration. It differs from the WD200 as it appears the WD100 doesn’t support 4x and 5x presses.

blueprint:
  name: Homeseer HS-WD100+ Dimmer (ZWave-JS)
  description: Create automations for the Homeseer HS-WD100+ 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: WD-100
    ## 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: {}
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

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

2 Likes

2021.3.0 broke this blueprint. trigger.event.data.value is now an int and not a string. The changes below appear to have resolved this. Will need to delete the automation and create a new one from the blueprint.

- choose:
  - conditions: '{{ button_id == "001" and press_count == 0 }}'
    sequence: !input button_a
  - conditions: '{{ button_id == "002" and press_count == 0 }}'
    sequence: !input button_b
  - conditions: '{{ button_id == "001" and press_count == 2 }}'
    sequence: !input button_a_held
  - conditions: '{{ button_id == "002" and press_count == 2 }}'
    sequence: !input button_b_held
  - conditions: '{{ button_id == "001" and press_count == 3 }}'
    sequence: !input button_a2
  - conditions: '{{ button_id == "002" and press_count == 3 }}'
    sequence: !input button_b2
  - conditions: '{{ button_id == "001" and press_count == 4 }}'
    sequence: !input button_a3
  - conditions: '{{ button_id == "002" and press_count == 4 }}'
    sequence: !input button_b3

Just a heads up that it broke because of a bug in the integration. The devs are expecting it to fixed in a point release, so you’ll need to revert back once that is out. I believe they will send the press type in a raw value so you could just test against that as well.

1 Like

Is this why this blueprint cannot see my WD100 Switch?

It appears there’s a change to the name of the device. I changed my selector to get it working again.

      selector:
        device:
          integration: zwave_js
          manufacturer: HomeSeer Technologies
          model: WD-100

Looks like the beta for 2021.4 break the automations created by this blueprint. Any chance to get an update?

trigger:
  - platform: event
    event_type: zwave_js_value_notification

Update the name of the “event_type”.

Updated the blueprint for today’s release. Uses the new event type and also updates the device selector. Please let me know if there are any issues.