Z-Wave - Vesternet Wall Controller 8-Button

Z-Wave - Vesternet Wall Controller 8-Button Blueprint for Home Assistant

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

This device has 8 keys and supports the following inputs:

  • Pressed

  • Held Down

  • Released

Add this Blueprint to your Home Assistant automatically.
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 8-Button 
  description:
    "Create automations for Vesternet 8-Button Scene Controller [VES-ZW-WAL-009](https://www.vesternet.com/en-global/collections/z-wave-keyfobs-remotes-wall-controllers/products/vesternet-z-wave-wall-controller-8-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 8-Button Controller
      description: List of available Vesternet 8-Button devices.
      selector:
        device:
          integration: zwave_js
          manufacturer: Vesternet
          model: VES-ZW-WAL-009
    I1_key_pressed:
      name: First ON (I) Key Pressed
      description: Action to run when first ON (I) button is pressed
      default: []
      selector:
        action: {}
    O1_key_pressed:
      name: First OFF (O) Key Pressed
      description: Action to run when first OFF (O) button is pressed
      default: []
      selector:
        action: {}
    I2_key_pressed:
      name: Second ON (I) Key Pressed
      description: Action to run when second ON (I) button is pressed
      default: []
      selector:
        action: {}
    O2_key_pressed:
      name: Second OFF (O) Key Pressed
      description: Action to run when second OFF (O) button is pressed
      default: []
      selector:
        action: {}
    I3_key_pressed:
      name: Third ON (I) Key Pressed
      description: Action to run when third ON (I) button is pressed
      default: []
      selector:
        action: {}
    O3_key_pressed:
      name: Third OFF (O) Key Pressed
      description: Action to run when third OFF (O) button is pressed
      default: []
      selector:
        action: {}
    I4_key_pressed:
      name: Fourth ON (I) Key Pressed
      description: Action to run when fourth ON (I) button is pressed
      default: []
      selector:
        action: {}
    O4_key_pressed:
      name: Fourth OFF (O) Key Pressed
      description: Action to run when fourth OFF (O) button is pressed
      default: []
      selector:
        action: {}

    I1_key_held_down:
      name: First ON (I) Held Down
      description: Action to run when first ON (I) button is held down
      default: []
      selector:
        action: {}
    I1_key_released:
      name: First ON (I) Released
      description: Action to run when first ON (I) button is released after being held down.
      default: []
      selector:
        action: {}

    O1_key_held_down:
      name: First OFF (O) Held Down
      description: Action to run when first OFF (O) button is held down
      default: []
      selector:
        action: {}
    O1_key_released:
      name: First OFF (O) Released
      description: Action to run when first OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}

    I2_key_held_down:
      name: Second ON (I) Held Down
      description: Action to run when second ON (I) button is held down
      default: []
      selector:
        action: {}
    I2_key_released:
      name: Second ON (I) Released
      description: Action to run when second ON (I) button is released after being held down.
      default: []
      selector:
        action: {}

    O2_key_held_down:
      name: Second OFF (O) Held Down
      description: Action to run when second OFF (O) button is held down
      default: []
      selector:
        action: {}
    O2_key_released:
      name: Second OFF (O) Released
      description: Action to run when second OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}

    I3_key_held_down:
      name: Third ON (I) Held Down
      description: Action to run when third ON (I) button is held down
      default: []
      selector:
        action: {}
    I3_key_released:
      name: Third ON (I) Released
      description: Action to run when third ON (I) button is released after being held down.
      default: []
      selector:
        action: {}

    O3_key_held_down:
      name: Third OFF (O) Held Down
      description: Action to run when third OFF (O) button is held down
      default: []
      selector:
        action: {}
    O3_key_released:
      name: Third OFF (O) Released
      description: Action to run when third OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}

    I4_key_held_down:
      name: Fourth ON (I) Held Down
      description: Action to run when fourth ON (I) button is held down
      default: []
      selector:
        action: {}
    I4_key_released:
      name: Fourth ON (I) Released
      description: Action to run when fourth ON (I) button is released after being held down.
      default: []
      selector:
        action: {}

    O4_key_held_down:
      name: Fourth OFF (O) Held Down
      description: Action to run when fourth OFF (O) button is held down
      default: []
      selector:
        action: {}
    O4_key_released:
      name: Fourth OFF (O) Released
      description: Action to run when fourth OFF (O) button is released after being held down.
      default: []
      selector:
        action: {}

  source_url: https://github.com/beerygaz/ha-bp-VES-ZW-WAL-009/blob/main/VES-ZW-WAL-009.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' and property_key_name == '001' and value == 'KeyPressed' }}"
        sequence: !input I1_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '002' and value == 'KeyPressed' }}"
        sequence: !input O1_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '003' and value == 'KeyPressed' }}"
        sequence: !input I2_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '004' and value == 'KeyPressed' }}"
        sequence: !input O2_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '005' and value == 'KeyPressed' }}"
        sequence: !input I3_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '006' and value == 'KeyPressed' }}"
        sequence: !input O3_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '007' and value == 'KeyPressed' }}"
        sequence: !input I4_key_pressed
      - conditions: "{{ property_name == 'scene' and property_key_name == '008' and value == 'KeyPressed' }}"
        sequence: !input O4_key_pressed

      - conditions: "{{ property_name == 'scene' and property_key_name == '001' and value == 'KeyHeldDown' }}"
        sequence: !input I1_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '002' and value == 'KeyHeldDown' }}"
        sequence: !input O1_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '003' and value == 'KeyHeldDown' }}"
        sequence: !input I2_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '004' and value == 'KeyHeldDown' }}"
        sequence: !input O2_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '005' and value == 'KeyHeldDown' }}"
        sequence: !input I3_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '006' and value == 'KeyHeldDown' }}"
        sequence: !input O3_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '007' and value == 'KeyHeldDown' }}"
        sequence: !input I4_key_held_down
      - conditions: "{{ property_name == 'scene' and property_key_name == '008' and value == 'KeyHeldDown' }}"
        sequence: !input O4_key_held_down

      - conditions: "{{ property_name == 'scene' and property_key_name == '001' and value == 'KeyReleased' }}"
        sequence: !input I1_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '002' and value == 'KeyReleased' }}"
        sequence: !input O1_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '003' and value == 'KeyReleased' }}"
        sequence: !input I2_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '004' and value == 'KeyReleased' }}"
        sequence: !input O2_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '005' and value == 'KeyReleased' }}"
        sequence: !input I3_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '006' and value == 'KeyReleased' }}"
        sequence: !input O3_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '007' and value == 'KeyReleased' }}"
        sequence: !input I4_key_released
      - conditions: "{{ property_name == 'scene' and property_key_name == '008' and value == 'KeyReleased' }}"
        sequence: !input O4_key_released
1 Like

Thank you so much! I’ve searched for this quiet a while now :wink:

And for the Dutch users here, this is also compatible with the rebranded Robb controllers, sold by Robb Shop in the NL