Sorry, to be clear, this is the exact same zen32 unit, i had just unpaired it from my old 500 controller and re-paired to my new 800 controller.
Some more info:
Events from the controller are firing:
*2/26/2024, 9:15:42 PM* - **VALUE NOTIFICATION** Arg 0: └─commandClassName: Central Scene
└─commandClass: 91
└─property: scene
└─propertyKey: 005
└─value: 0
└─propertyName: scene
└─propertyKeyName: 005
└─newValue: 0
└─stateless: true
So, ha is getting the event, the automation at a top level is triggering (the “last changed” value on the automation updates when i press a scene button). But the actual actions to run when certain scene buttons are being pressed don’t trigger. Maybe something to do with how the event information is being sent is different on an 800 controller vs a 500?
EDIT2: Here is the event info from the “traces” page on the automation:
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
this:
entity_id: automation.scene_controller
state: 'on'
attributes:
id: 'xxxxxxxxxxxxxxxxxxxx'
last_triggered: xxxxxxxxxxxxxxxxxxxx
mode: single
current: 0
friendly_name: Scene Controller
last_changed: xxxxxxxxxxxxxxxxxxxx
last_updated: xxxxxxxxxxxxxxxxxxxx
context:
id: xxxxxxxxxxxxxxxxxxxx
parent_id: xxxxxxxxxxxxxxxxxxxx
user_id: null
trigger:
id: '0'
idx: '0'
alias: null
platform: event
event:
event_type: zwave_js_value_notification
data:
domain: zwave_js
node_id: 18
home_id: 4013712635
endpoint: 0
device_id: xxxxxxxxxxxxxxxxxxxx
command_class: 91
command_class_name: Central Scene
label: Scene 005
property: scene
property_name: scene
property_key: '005'
property_key_name: '005'
value: 0
value_raw: 0
origin: LOCAL
time_fired: xxxxxxxxxxxxxxxxxxxx
context:
id: xxxxxxxxxxxxxxxxxxxx
parent_id: null
user_id: null
description: event 'zwave_js_value_notification'
EDIT3: I updated my local copy of the blueprint to output the property_key_name to the log during the bit where it logs the “received event” line, and the main button is reporting “005” like it should be. So the overall flow up to that point seems correct. Something is happening between the “choose” block and the list of actions. Also, i tested the actions by manually clicking the “run” button on each one in the automation editor UI and they do trigger correctly when I do that.
EDIT4: Ok, i think i found the issue. It seems like the “value” variable in the “choose” block is expected to be a string like “KeyPressed” but instead i’m just getting int values 0,1,2,etc.
EDIT5: I updated the script to use those int values instead of the strings and it started working again. Is this a change in how the event is reported by zwavejs or is this happening on the device?
EDIT6: here’s the full updated script that now works for me:
blueprint:
name: ZEN32 (Z-Wave JS)
description: Create automations for the Zooz ZEN32 switch using the Z-Wave JS integration.
domain: automation
input:
zooz_switch:
name: Zooz Switch
description: List of available Zooz ZEN32 switches.
selector:
device:
filter:
- integration: zwave_js
manufacturer: Zooz
model: ZEN32
- integration: zwave_js
manufacturer: Zooz
model: ZEN32 800LR
multiple: false
scene_5:
name: Scene 5 - Pressed Once
description: Action to run when button is pressed once.
default: []
selector:
action: {}
scene_1:
name: Scene 1 - Pressed Once
description: Action to run when button is pressed once.
default: []
selector:
action: {}
scene_2:
name: Scene 2 - Pressed Once
description: Action to run when button is pressed once.
default: []
selector:
action: {}
scene_3:
name: Scene 3 - Pressed Once
description: Action to run when button is pressed once.
default: []
selector:
action: {}
scene_4:
name: Scene 4 - Pressed Once
description: Action to run when button is pressed once.
default: []
selector:
action: {}
scene_5h:
name: Scene 5 - Held
description: Action to run when button is held.
default: []
selector:
action: {}
scene_1h:
name: Scene 1 - Held
description: Action to run when button is held.
default: []
selector:
action: {}
scene_2h:
name: Scene 2 - Held
description: Action to run when button is held.
default: []
selector:
action: {}
scene_3h:
name: Scene 3 - Held
description: Action to run when button is held.
default: []
selector:
action: {}
scene_4h:
name: Scene 4 - Held
description: Action to run when button is held.
default: []
selector:
action: {}
scene_5r:
name: Scene 5 - Released
description: Action to run when button is released.
default: []
selector:
action: {}
scene_1r:
name: Scene 1 - Released
description: Action to run when button is released.
default: []
selector:
action: {}
scene_2r:
name: Scene 2 - Released
description: Action to run when button is released.
default: []
selector:
action: {}
scene_3r:
name: Scene 3 - Released
description: Action to run when button is released.
default: []
selector:
action: {}
scene_4r:
name: Scene 4 - Released
description: Action to run when button is released.
default: []
selector:
action: {}
scene_52:
name: Scene 5 - Pressed 2x
description: Action to run when button is pressed twice.
default: []
selector:
action: {}
scene_12:
name: Scene 1 - Pressed 2x
description: Action to run when button is pressed twice.
default: []
selector:
action: {}
scene_22:
name: Scene 2 - Pressed 2x
description: Action to run when button is pressed twice.
default: []
selector:
action: {}
scene_32:
name: Scene 3 - Pressed 2x
description: Action to run when button is pressed twice.
default: []
selector:
action: {}
scene_42:
name: Scene 4 - Pressed 2x
description: Action to run when button is pressed twice.
default: []
selector:
action: {}
scene_53:
name: Scene 5 - Pressed 3x
description: Action to run when button is pressed three times.
default: []
selector:
action: {}
scene_13:
name: Scene 1 - Pressed 3x
description: Action to run when button is pressed three times.
default: []
selector:
action: {}
scene_23:
name: Scene 2 - Pressed 3x
description: Action to run when button is pressed three times.
default: []
selector:
action: {}
scene_33:
name: Scene 3 - Pressed 3x
description: Action to run when button is pressed three times.
default: []
selector:
action: {}
scene_43:
name: Scene 4 - Pressed 3x
description: Action to run when button is pressed three times.
default: []
selector:
action: {}
scene_54:
name: Scene 5 - Pressed 4x
description: Action to run when button is pressed four times.
default: []
selector:
action: {}
scene_14:
name: Scene 1 - Pressed 4x
description: Action to run when button is pressed four times.
default: []
selector:
action: {}
scene_24:
name: Scene 2 - Pressed 4x
description: Action to run when button is pressed four times.
default: []
selector:
action: {}
scene_34:
name: Scene 3 - Pressed 4x
description: Action to run when button is pressed four times.
default: []
selector:
action: {}
scene_44:
name: Scene 4 - Pressed 4x
description: Action to run when button is pressed four times.
default: []
selector:
action: {}
scene_55:
name: Scene 5 - Pressed 5x
description: Action to run when button is pressed five times.
default: []
selector:
action: {}
scene_15:
name: Scene 1 - Pressed 5x
description: Action to run when button is pressed five times.
default: []
selector:
action: {}
scene_25:
name: Scene 2 - Pressed 5x
description: Action to run when button is pressed five times.
default: []
selector:
action: {}
scene_35:
name: Scene 3 - Pressed 5x
description: Action to run when button is pressed five times.
default: []
selector:
action: {}
scene_45:
name: Scene 4 - Pressed 5x
description: Action to run when button is pressed five times.
default: []
selector:
action: {}
source_url: https://community.home-assistant.io/t/zen32-scene-controller-z-wave-js/292610
mode: single
max_exceeded: silent
variables:
device_id: !input zooz_switch
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 }}"
label: "{{ trigger.event.data.label }}"
command_class_name: "{{ trigger.event.data.command_class_name }}"
value: "{{ trigger.event.data.value }}"
- service: logbook.log
data:
name: Z-Wave JS
message: "received event: {{ command_class_name }} - {{ value }} - {{ label }} - {{ property_key_name }}"
- choose:
- conditions: "{{ property_key_name == '001' and value == 0 }}"
sequence: !input scene_1
- conditions: "{{ property_key_name == '001' and value == 2 }}"
sequence: !input scene_1h
- conditions: "{{ property_key_name == '001' and value == 1 }}"
sequence: !input scene_1r
- conditions: "{{ property_key_name == '001' and value == 3 }}"
sequence: !input scene_12
- conditions: "{{ property_key_name == '001' and value == 4 }}"
sequence: !input scene_13
- conditions: "{{ property_key_name == '001' and value == 5 }}"
sequence: !input scene_14
- conditions: "{{ property_key_name == '001' and value == 6 }}"
sequence: !input scene_15
- conditions: "{{ property_key_name == '002' and value == 0 }}"
sequence: !input scene_2
- conditions: "{{ property_key_name == '002' and value == 2 }}"
sequence: !input scene_2h
- conditions: "{{ property_key_name == '002' and value == 1 }}"
sequence: !input scene_2r
- conditions: "{{ property_key_name == '002' and value == 3 }}"
sequence: !input scene_22
- conditions: "{{ property_key_name == '002' and value == 4 }}"
sequence: !input scene_23
- conditions: "{{ property_key_name == '002' and value == 5 }}"
sequence: !input scene_24
- conditions: "{{ property_key_name == '002' and value == 6 }}"
sequence: !input scene_25
- conditions: "{{ property_key_name == '003' and value == 0 }}"
sequence: !input scene_3
- conditions: "{{ property_key_name == '003' and value == 2 }}"
sequence: !input scene_3h
- conditions: "{{ property_key_name == '003' and value == 1 }}"
sequence: !input scene_3r
- conditions: "{{ property_key_name == '003' and value == 3 }}"
sequence: !input scene_32
- conditions: "{{ property_key_name == '003' and value == 4 }}"
sequence: !input scene_33
- conditions: "{{ property_key_name == '003' and value == 5 }}"
sequence: !input scene_34
- conditions: "{{ property_key_name == '003' and value == 6 }}"
sequence: !input scene_35
- conditions: "{{ property_key_name == '004' and value == 0 }}"
sequence: !input scene_4
- conditions: "{{ property_key_name == '004' and value == 2 }}"
sequence: !input scene_4h
- conditions: "{{ property_key_name == '004' and value == 1 }}"
sequence: !input scene_4r
- conditions: "{{ property_key_name == '004' and value == 3 }}"
sequence: !input scene_42
- conditions: "{{ property_key_name == '004' and value == 4 }}"
sequence: !input scene_43
- conditions: "{{ property_key_name == '004' and value == 5 }}"
sequence: !input scene_44
- conditions: "{{ property_key_name == '004' and value == 6 }}"
sequence: !input scene_45
- conditions: "{{ property_key_name == '005' and value == 0 }}"
sequence: !input scene_5
- conditions: "{{ property_key_name == '005' and value == 2 }}"
sequence: !input scene_5h
- conditions: "{{ property_key_name == '005' and value == 1 }}"
sequence: !input scene_5r
- conditions: "{{ property_key_name == '005' and value == 3 }}"
sequence: !input scene_52
- conditions: "{{ property_key_name == '005' and value == 4 }}"
sequence: !input scene_53
- conditions: "{{ property_key_name == '005' and value == 5 }}"
sequence: !input scene_54
- conditions: "{{ property_key_name == '005' and value == 6 }}"
sequence: !input scene_55
Yet another edit: After updating the firmware on this scene controller, this updated script no longer works, but the original one at the top of the post now does. No idea why this keeps switching but as of firmware 10.40.2 it seems like the OP post one is the way to go.