ISSUE / PROBLEM:
After updating to Zigbee2MQTT 2.0 and moving to event-based automation triggers, the buttons on my 4-scene button selector don’t toggle correctly. The trigger runs when any given button (e.g. button 1 of 4) is pressed for the first time after a different button has been pressed (e.g. button 2 of 4), but not after having been the most recently pressed button. Of note, in Developer Tools → States, I can see under the “filter” column that the button press is recognized with every click because the timestamp changes. See example code below.
SETUP:
RPi4
Zigbee2MQTT v2.0.0-2
Core: 2025.1.0
Supervisor 2024.12.3
OS: 14.1
QUESTION:
Looking for suggestions on my automation syntax, general troubleshooting advice, or information about this particular Zigbee device (i.e. any known compatibility issues).
AUTOMATION YAML:
alias: Testing 4-Button Scene - Peloton - Zigbee2MQTT
description: >-
This automation is for my Peloton Bike Fan, which is a smart Dreo floor fan.
Button #1 toggles the fan on/off and sets speed to minimal when on. Button #2
sets fan speed to low. Button #3 sets speed to medium. Button #4 sets speed
to high.
triggers:
- alias: 4-Button Scene - Peloton
entity_id:
- event.peloton_fan_buttons_action
attribute: event_type
id: 4-Button Scene - Peloton
trigger: state
not_from: unavailable
enabled: true
conditions: []
actions:
- choose:
- conditions:
- condition: template
value_template: "{{trigger.to_state.attributes.event_type == '1_single'}}"
sequence:
- if:
- condition: state
entity_id: fan.peloton_rower_fan
state: "off"
then:
- target:
entity_id:
- fan.peloton_rower_fan
data: {}
action: fan.turn_on
- metadata: {}
data:
percentage: 10
target:
entity_id:
- fan.peloton_rower_fan
action: fan.set_percentage
else:
- metadata: {}
data: {}
target:
entity_id:
- fan.peloton_rower_fan
action: fan.turn_off
- conditions:
- condition: template
value_template: "{{trigger.to_state.attributes.event_type == '2_single'}}"
- condition: state
entity_id: fan.peloton_rower_fan
state: "on"
sequence:
- metadata: {}
data:
percentage: 33
target:
entity_id:
- fan.peloton_rower_fan
action: fan.set_percentage
- conditions:
- condition: template
value_template: "{{trigger.to_state.attributes.event_type == '3_single'}}"
- condition: state
entity_id: fan.peloton_rower_fan
state: "on"
sequence:
- metadata: {}
data:
percentage: 66
target:
entity_id:
- fan.peloton_rower_fan
action: fan.set_percentage
- conditions:
- condition: template
value_template: "{{trigger.to_state.attributes.event_type == '4_single'}}"
- condition: state
entity_id: fan.peloton_rower_fan
state: "on"
sequence:
- target:
entity_id:
- fan.peloton_rower_fan
data:
preset_mode: turbo
action: fan.set_preset_mode
mode: single