Here’s my work-in-progress blueprint for the Inovelli Blue Series switch, model VZM31-SN for use with Zigbee2MQTT. This exposes all the button combinations for you to do with what you please. For example, double press down to turn off every light in the house. Press and hold up to slowly turn the brightness of the entire room up until you release the button. Have fun. Check out my other blueprint for some tips if you need help: Zigbee2Mqtt 2.0 - IKEA five button remote
blueprint:
name: Z2M v2.0 - Inovelli 2-in-1 switch + dimmer Scene Controls
description: |
For Inovelli Blue Series 2-in-1 switch + dimmer, model VZM31-SN
Allows setting a few different actions such as 2,3,4,5 clicking the up/down and config buttons.
Updated for use with Zibbee2MQTT v2.0 with Device Actions
domain: automation
input:
switch:
name: Switch
description: Inovelli Switch.
selector:
device:
integration: mqtt
manufacturer: Inovelli
config_held:
name: Hold Config
description: Action to run
default: []
selector:
action:
config_release:
name: Release Config
description: Action to run (will also stop the "Hold Down" action automatically)
default: []
selector:
action:
config_single:
name: Single Click Config
description: Action to run
default: []
selector:
action:
config_double:
name: Double Click Config
description: Action to run
default: []
selector:
action:
config_triple:
name: 3x Click Config
description: Action to run
default: []
selector:
action:
config_quadruple:
name: 4x Click Config
description: Action to run
default: []
selector:
action:
config_quintuple:
name: 5x Click Config
description: Action to run
default: []
selector:
action:
down_held:
name: Hold Down
description: Action to run
default: []
selector:
action:
down_release:
name: Release Down
description: Action to run (will also stop the "Hold Down" action automatically)
default: []
selector:
action:
down_single:
name: Single Click Down
description: This will trigger an/some action(s), but also, it will probably turn off the switch locally.
default: []
selector:
action:
down_double:
name: Double Click Down
description: Action to run
default: []
selector:
action:
down_triple:
name: 3x Click Down
description: Action to run
default: []
selector:
action:
down_quadruple:
name: 4x Click Down
description: Action to run
default: []
selector:
action:
down_quintuple:
name: 5x Click Down
description: Action to run
default: []
selector:
action:
up_held:
name: Hold Up
description: Action to run
default: []
selector:
action:
up_release:
name: Release Up
description: Action to run (will also stop the "Hold Up" action automatically)
default: []
selector:
action:
up_single:
name: Single Click Up
description: This will trigger an/some action(s), but also, it will probably turn on the switch locally.
default: []
selector:
action:
up_double:
name: Double Click Up
description: Action to run
default: []
selector:
action:
up_triple:
name: 3x Click Up
description: Action to run
default: []
selector:
action:
up_quadruple:
name: 4x Click Up
description: Action to run
default: []
selector:
action:
up_quintuple:
name: 5x Click Up
description: Action to run
default: []
selector:
action:
mode: restart
max_exceeded: silent
trigger:
- domain: mqtt
device_id: !input switch
type: action
subtype: config_double
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: config_release
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: config_held
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: config_quintuple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: config_single
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: config_triple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_double
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_held
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_quadruple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_quintuple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_release
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_single
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: down_triple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_double
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_held
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_quadruple
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_release
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_single
trigger: device
- domain: mqtt
device_id: !input switch
type: action
subtype: up_triple
trigger: device
action:
- variables:
command: "{{ trigger.payload }}"
- choose:
- conditions:
- "{{ command == 'config_held' }}"
sequence: !input config_held
- conditions:
- "{{ command == 'config_release' }}"
sequence: !input config_release
- conditions:
- "{{ command == 'config_double' }}"
sequence: !input config_double
- conditions:
- "{{ command == 'config_quadruple' }}"
sequence: !input config_quadruple
- conditions:
- "{{ command == 'config_quintuple' }}"
sequence: !input config_quintuple
- conditions:
- "{{ command == 'config_single' }}"
sequence: !input config_single
- conditions:
- "{{ command == 'config_triple' }}"
sequence: !input config_triple
- conditions:
- "{{ command == 'down_double' }}"
sequence: !input down_double
- conditions:
- "{{ command == 'down_held' }}"
sequence: !input down_held
- conditions:
- "{{ command == 'down_quadruple' }}"
sequence: !input down_quadruple
- conditions:
- "{{ command == 'down_quintuple' }}"
sequence: !input down_quintuple
- conditions:
- "{{ command == 'down_release' }}"
sequence: !input down_release
- conditions:
- "{{ command == 'down_single' }}"
sequence: !input down_single
- conditions:
- "{{ command == 'down_triple' }}"
sequence: !input down_triple
- conditions:
- "{{ command == 'up_double' }}"
sequence: !input up_double
- conditions:
- "{{ command == 'up_held' }}"
sequence: !input up_held
- conditions:
- "{{ command == 'up_quadruple' }}"
sequence: !input up_quadruple
- conditions:
- "{{ command == 'up_quintuple' }}"
sequence: !input up_quintuple
- conditions:
- "{{ command == 'up_release' }}"
sequence: !input up_release
- conditions:
- "{{ command == 'up_single' }}"
sequence: !input up_single
- conditions:
- "{{ command == 'up_triple' }}"
sequence: !input up_triple
edited the order of inputs
Added missing import button
Edit 1/5/25 updated to use Zigbee2MQTT v2.0 Device Actions
Edit again - Fix config_held & release missing