Z-Wave - Vesternet Wall Controller 4-Button

A blueprint to quickly assign the Scene buttons on the Vesternet Z-Wave Wall Controller (4 Button version)

This device has 4 keys and supports the following inputs:

  • Pressed
  • Held Down
  • Released

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

blueprint:
  name: Z-Wave JS - Vesternet Wall Controller 4-Button 
  description:
    "Create automations for Vesternet 4-Button Scene Controller [VES-ZW-WAL-008](https://www.vesternet.com/en-global/collections/z-wave-keyfobs-remotes-wall-controllers/products/vesternet-z-wave-wall-controller-4-button) using the Z-Wave JS integration.
    
    The buttons are labelled assuming the LED is positioned at the top of the device.

    The automations supports the following triggers for each button:

    * Pressed
 
    * Held Down
 
    * Released
 
    "
  domain: automation
  input:
    vesternet_device:
      name: Vesternet 4-Button Controller
      description: List of available Vesternet 4-Button devices.
      selector:
        device:
          integration: zwave_js
          manufacturer: Vesternet
          model: VES-ZW-WAL-008
    I1_key_pressed:
      name: Top ON (I) Key Pressed
      description: Action to run when Top ON (I) button is pressed
      default: []
      selector:
        action: {}
    O1_key_pressed:
      name: Top OFF (O) Key Pressed
      description: Action to run when top OFF (O) button is pressed
      default: []
      selector:
        action: {}
    I2_key_pressed:
      name: Bottom ON (I) Key Pressed
      description: Action to run when bottom ON (I) button is pressed
      default: []
      selector:
        action: {}
    O2_key_pressed:
      name: Bottom OFF (O) Key Pressed
      description: Action to run when Bottom OFF (O) button is pressed
      default: []
      selector:
        action: {}
  
    I1_key_held_down:
      name: Top ON (I) Held Down
      description: Action to run when top ON (I) button is held down
      default: []
      selector:
        action: {}
    I1_key_released:
      name: ON (I) Released
      description: Action to run when top ON (I) button is released after being held down.
      default: []
      selector:
        action: {}

    O1_key_held_down:
      name: Top OFF (O) Held Down
      description: Action to run when top OFF (O) button is held down
      default: []
      selector:
        action: {}
    O1_key_released:
      name: Top OFF (O) Released
      description: Action to run when top OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}
    I2_key_held_down:
      name: Bottom ON (I) Held Down
      description: Action to run when bottom ON (I) button is held down
      default: []
      selector:
        action: {}
    I2_key_released:
      name: Bottom ON (I) Released
      description: Action to run when bottom ON (I) button is released after being held down.
      default: []
      selector:
        action: {}
    O2_key_held_down:
      name: Bottom OFF (O) Held Down
      description: Action to run when bottom OFF (O) button is held down
      default: []
      selector:
        action: {}
    O2_key_released:
      name: Bottom OFF (O) Released
      description: Action to run when bottom OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}
  source_url: https://github.com/beerygaz/ha-bp-VES-ZW-WAL-008/blob/ad1c175a601fd8928de103f5144ee8a4d40a3c48/VES-ZW-WAL-008.yaml
mode: single
max_exceeded: silent
variables:
  device_id: !input "vesternet_device"
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 }}"
      property_name: "{{ trigger.event.data.property_name }}"
      label: "{{ trigger.event.data.label }}"
      command_class_name: "{{ trigger.event.data.command_class_name }}"
      value: "{{ trigger.event.data.value }}"
      node_id: "{{ trigger.event.data.node_id }}"
  - service: logbook.log
    data:
      name: Z-Wave JS
      message:
        "received event from node {{node_id}}: {{ command_class_name }} - {{
        value }} - {{ label }}"
  - choose:
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '001'\n\
          \    and value == 'KeyPressed' }}\n"
        sequence: !input "I1_key_pressed"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '002'\n\
          \    and value == 'KeyPressed' }}\n"
        sequence: !input "O1_key_pressed"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '003'\n\
          \    and value == 'KeyPressed' }}\n"
        sequence: !input "I2_key_pressed"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '004'\n\
          \    and value == 'KeyPressed' }}\n"
        sequence: !input "O2_key_pressed"

      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '001'\n\
          \    and value == 'KeyHeldDown' \n}}\n"
        sequence: !input "I1_key_held_down"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '001'\n\
          \    and value == 'KeyReleased' \n}}\n"
        sequence: !input "I1_key_released"

      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '002'\n\
          \    and value == 'KeyHeldDown' \n}}\n"
        sequence: !input "O1_key_held_down"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '002'\n\
          \    and value == 'KeyReleased' \n}}\n"
        sequence: !input "O1_key_released"

      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '003'\n\
          \    and value == 'KeyHeldDown' \n}}\n"
        sequence: !input "I2_key_held_down"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '003'\n\
          \    and value == 'KeyReleased' \n}}\n"
        sequence: !input "I2_key_released"

      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '004'\n\
          \    and value == 'KeyHeldDown' \n}}\n"
        sequence: !input "O2_key_held_down"
      - conditions:
          "{{  property_name == 'scene' \n    and property_key_name == '004'\n\
          \    and value == 'KeyReleased' \n}}\n"
        sequence: !input "O2_key_released"

Have you done one for the 8 button version?

I don’t, but give me a day or two and will post one for you.

brilliant - thank you

Any luck with the 8 button version?
Thanks

Sorry for the delay. I don’t have an 8-buton device, but this blueprint should work for one. Please let me know if you have any issues and I’ll see what I can do to sort it out.

You’re a star! Will try out now
Thanks