Inovelli Red Series On/Off or Dimmer Scenes for ZWaveJS

I’ve modified the work of @Khalos that was originally designed to work with the original ZWave integration to work with ZWaveJS. I found several meant for one particular switch, but none generically for all Inovelli Red series switches.

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

Blueprint:

Code:

blueprint:
  name: Inovelli Red On/Off or Dimmer Switch Scenes (ZWaveJS)
  description: 'Perform actions on various scenes supported by the Inovelli Red On/Off
    or Dimmer Switches

    Note that the x2, x3, x4, x5 variants DO NOT work if you have put your switch
    in ''Instant On'' mode.
    
    Modified from the original work by kylezimmerman to work with ZWaveJS Integration. Original blueprint https://gist.github.com/kylezimmerman/065bcbec34b79fd838eb59055ac18e6f
    '
  domain: automation
  input:
    inovelli_switch:
      name: Inovelli Red Switch
      description: The Inovelli Red On/Off or Dimmer Switch to do actions on
      selector:
        device:
          integration: zwave_js
          manufacturer: Inovelli
    up_action:
      name: Press Up Once Action
      description: Action to perform when pressing up once
      default: []
      selector:
        action: {}
    down_action:
      name: Press Down Once Action
      description: Action to perform when pressing down once
      default: []
      selector:
        action: {}
    up_hold_action:
      name: Hold Up Action
      description: Action to perform when holding the up button
      default: []
      selector:
        action: {}
    up_release_action:
      name: Release Up Action
      description: Action to perform when releasing the up button
      default: []
      selector:
        action: {}
    down_hold_action:
      name: Hold Down Action
      description: Action to perform when holding the down button
      default: []
      selector:
        action: {}
    down_release_action:
      name: Release Down Action
      description: Action to perform when releasing the down button
      default: []
      selector:
        action: {}
    config_action:
      name: Config Button Action
      description: The action to perform when the config button is pressed once
      default: []
      selector:
        action: {}
    up_x2_action:
      name: Press Up Twice Action
      description: Action to perform when pressing up twice
      default: []
      selector:
        action: {}
    down_x2_action:
      name: Press Down Twice Action
      description: Action to perform when pressing down twice
      default: []
      selector:
        action: {}
    up_x3_action:
      name: Press Up 3 Times Action
      description: Action to perform on when pressing up 3 times
      default: []
      selector:
        action: {}
    down_x3_action:
      name: Press Down 3 Times Action
      description: Action to perform when pressing down 3 times
      default: []
      selector:
        action: {}
    up_x4_action:
      name: Press Up 4 Times Action
      description: Action to perform when pressing up 4 times
      default: []
      selector:
        action: {}
    down_x4_action:
      name: Press Down 4 Times Action
      description: Action to perform when pressing down 4 times
      default: []
      selector:
        action: {}
    up_x5_action:
      name: Press Up 5 Times Action
      description: Action to perform when pressing up 5 times
      default: []
      selector:
        action: {}
    down_x5_action:
      name: Press Down 5 Times Action
      description: Action to perform when pressing down 5 times
      default: []
      selector:
        action: {}
  source_url: https://gist.github.com/mikemsd/f67d1ebc4ef04d040b0b328daebd8520
mode: parallel
max_exceeded: silent
variables:
  down_button: '001'
  up_button: '002'
  config_button: '003'
  press_x1: 'KeyPressed'
  press_x2: 'KeyPressed2x'
  press_x3: 'KeyPressed3x'
  press_x4: 'KeyPressed4x'
  press_x5: 'KeyPressed5x'
  hold: 'KeyHeldDown'
  release: 'KeyReleased'
  button: '{{ trigger.event.data.property_key }}'
  action_type: '{{ trigger.event.data.value }}'
trigger:
- platform: event
  event_type: zwave_js_value_notification
  event_data:
    device_id: !input 'inovelli_switch'
action:
  choose:
  - conditions: '{{ button == up_button }}'
    sequence:
    - choose:
      - conditions: '{{ action_type == press_x1 }}'
        sequence: !input 'up_action'
      - conditions: '{{ action_type == press_x2 }}'
        sequence: !input 'up_x2_action'
      - conditions: '{{ action_type == press_x3 }}'
        sequence: !input 'up_x3_action'
      - conditions: '{{ action_type == press_x4 }}'
        sequence: !input 'up_x4_action'
      - conditions: '{{ action_type == press_x5 }}'
        sequence: !input 'up_x5_action'
      - conditions: '{{ action_type == hold }}'
        sequence: !input 'up_hold_action'
      - conditions: '{{ action_type == release }}'
        sequence: !input 'up_release_action'
  - conditions: '{{ button == down_button }}'
    sequence:
    - choose:
      - conditions: '{{ action_type == press_x1 }}'
        sequence: !input 'down_action'
      - conditions: '{{ action_type == press_x2 }}'
        sequence: !input 'down_x2_action'
      - conditions: '{{ action_type == press_x3 }}'
        sequence: !input 'down_x3_action'
      - conditions: '{{ action_type == press_x4 }}'
        sequence: !input 'down_x4_action'
      - conditions: '{{ action_type == press_x5 }}'
        sequence: !input 'down_x5_action'
      - conditions: '{{ action_type == hold }}'
        sequence: !input 'down_hold_action'
      - conditions: '{{ action_type == release }}'
        sequence: !input 'down_release_action'
  - conditions: '{{ button == config_button and action_type == press_x1 }}'
    sequence: !input 'config_action'
3 Likes