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

3 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.

Updated zwavejs2mqtt docker container to 4.2.1 and noticed the device model changed to HS-WD100+.

Also having an issue where the following message is sent to the logs. Any idea how to correct this?

WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'zwave_device' is undefined when rendering '{{ zwave_device }}'

Maybe remove the following section?

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

Edit: removed the section above and everything appears to work well. No more warnings and the blueprint functions properly.

1 Like

How do I get this blueprint to see my switch?

I’m not having any luck either. My devices say that they’re HS-WD100+.

Figured this out. Open File Editor and open the file /config/blueprints/automation/jerelabs/zwave-js-homeseer-hs-wd100-dimmer.yaml
Line 14 should be:
model: HS-WD100+
Then go to Server Controls and reboot Automations.
Your devices should now show up as available.

Dude, thanks it totally worked an now I understand, a little bit, more about how all this works.

Delete line 14 and use this with any/all Homeseer scene switches.

Also delete

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

“zwave_device” is not defined so not sure how it made it into this blueprint. Seems like a copy/past left over from some other source script.