Supports multi-click behavior on the Heatit/Thermofloor ZDim rotary dimmer.
When the dimmer knob is clicked from 2-5 times rapidly, different scenes are triggered. This blueprint makes it easy to perform actions on those events.
Just select the light entity associated with the device, and the node_id is automatically handled.
Unmaintained: I’ve switched to ZWaveJS, so this is no longer updated. See my new blueprint here: ZWaveJS - Heatit ZDim scene controller (knob multi-click)
blueprint:
name: OZW - Heatit ZDim scene controller
description: |
Perform actions when ZDim knob is multi-clicked.
The release actions you probably do not want to define, as it is
triggered after every multiple-click scene activation.
Remember that 6 clicks in rapid succession puts the device into Z-Wave
inclusion/exclusion mode, so quintuple clicks should probably be
avoided.
domain: automation
input:
ozw_entity:
name: OZW Entity
description: The Heatit ZDim light to listen for events on.
selector:
entity:
domain: light
integration: ozw
click2_actions:
name: Double Click Actions
description: The actions to perform when the scene is activated.
selector:
action:
default: []
click3_actions:
name: Triple Click Actions
description: The actions to perform when the scene is activated.
selector:
action:
default: []
click4_actions:
name: Quadruple Click Actions
description: The actions to perform when the scene is activated.
selector:
action:
default: []
click5_actions:
name: Quintuple Click Actions
description: The actions to perform when the scene is activated.
selector:
action:
default: []
release_actions:
name: Release Actions
description: The actions to perform when the scene is activated.
selector:
action:
default: []
mode: single
trigger:
- platform: event
event_type: ozw.scene_activated
variables:
logger: blueprint.ozw_scene_activation
ozw_entity: !input ozw_entity
action:
- choose:
# IF triggered node_id is ozw_entity node_id
- conditions:
- condition: template
value_template: "{{ trigger.event.data.node_id == state_attr(ozw_entity, 'node_id') }}"
sequence:
- choose:
# IF released after clicked
- conditions:
- condition: template
value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_value_id == 0 }}"
sequence: !input release_actions
# IF double clicked
- conditions:
- condition: template
value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_value_id == 4 }}"
sequence: !input click2_actions
# IF triple clicked
- conditions:
- condition: template
value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_value_id == 5 }}"
sequence: !input click3_actions
# IF quadruple clicked
- conditions:
- condition: template
value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_value_id == 6 }}"
sequence: !input click4_actions
# IF quintuple clicked
- conditions:
- condition: template
value_template: "{{ trigger.event.data.scene_id == 1 and trigger.event.data.scene_value_id == 7 }}"
sequence: !input click5_actions
# ELSE: unhandled scene_id/scene_value_id
default:
- service: system_log.write
data:
level: debug
logger: "{{ logger }}"
message: "Activated scene '{{ trigger.event.data.scene_label }}' ({{ trigger.event.data.scene_id }}) with value '{{ trigger.event.data.scene_value_label }}' ({{ trigger.event.data.scene_value_id }}) for node '{{ ozw_entity }}' ({{ trigger.event.data.node_id }})"
# ELSE: unhandled ozw event
default: []