For anyone who’s running into issues with this not working, I finally got mine to work so figured I’d share:
The choose condition seems to be the primary point where it gets “weird”
I had to replace a bunch of ‘’ (single quotes, doubled up) with ’ to get it to parse correctly
From the file perspective: '{{ topic.split('/')[1].replace('/', '') == deviceName.split(' ')[0] }}
From the tracing perspective: '{{ topic.split(''/'')[1].replace(''/'', '''') == deviceName.split('' '')[0] }}'
Once that’s done keep in mind that the deviceName lookup (a variable) is going to split the name on the space characters and take the first one. This is because the name is " action" and the " action" needs to get chopped off.
I have made a ZHA blueprint version of the Tuya 4 button switch TS004F. Works with all combinations of buttons allowed by the switch, incl the “stop” of dimming
As I have no idea of how to generate a blueprint, feel free to create a useable blueprint in the blueprint exchange if you know how.
blueprint:
name: ZHA - Tuya 4-Button Dimmer Switch
description: Automate your Tuya 4-Button Dimmer using ZHA events.
domain: automation
input:
tuya_4button_dimmer_switch:
name: Tuya 4-Button Dimmer Switch
description: Tuya 4-Button Dimmer Switch to use
selector:
device:
integration: zha
manufacturer: _TZ3000_xabckq1v
model: TS004F
button_one_short_press:
name: Single Press On
description: Action to run on button upper-left single press
default: []
selector:
action: {}
button_two_short_press:
name: Single Press Off
description: Action to run on button lower-left single press
default: []
selector:
action: {}
button_three_short_press:
name: Single Press Dim-up
description: Action to run on button upper-right single press
default: []
selector:
action: {}
button_four_short_press:
name: Single Press Dim-down
description: Action to run on button lower-right single press
default: []
selector:
action: {}
button_three_long_press:
name: Long Press Dim-up
description: Action to run on button upper-right long press
default: []
selector:
action: {}
button_four_long_press:
name: Long Press Dim-down
description: Action to run on button lower-right long press
default: []
selector:
action: {}
button_dim_stop:
name: Long Press Dim-down
description: Action to run when end/stop long press
default: []
selector:
action: {}
# source_url:
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input 'tuya_4button_dimmer_switch'
action:
- variables:
command: '{{ trigger.event.data.command }}'
args: '{{ trigger.event.data.args }}'
- choose:
- conditions: '{{ command == ''on'' }}'
sequence: !input 'button_one_short_press'
- conditions: '{{ command == ''off'' }}'
sequence: !input 'button_two_short_press'
- conditions: '{{ command == ''step'' }}'
sequence:
- choose:
- conditions: '{{ args == [ 0, 51, 10] }}'
sequence: !input 'button_three_short_press'
- conditions: '{{ args == [ 1, 51, 10 ] }}'
sequence: !input 'button_four_short_press'
- conditions: '{{ command == ''move'' }}'
sequence:
- choose:
- conditions: '{{ args == [ 0, 51] }}'
sequence: !input 'button_three_long_press'
- conditions: '{{ args == [ 1, 51 ] }}'
sequence: !input 'button_four_long_press'
- conditions: '{{ command == ''stop'' }}'
sequence: !input 'button_dim_stop'
The Tuya TS004F is build this way. Intended to be used as on/off on the left buttons and dim-up/dim-down on the right buttons. Hence, only longpress on the right buttons
Was it fixed? I chose this blueprint and device for testing my zigbee network. It’s not working. I am not sure if have a configuration problem in my network or if the blue print ist not working
Hi all, noob-ish user here trying to understand how to add a Tuya 4-gang switch, model TS004F.
I apologize for these initial questions, but please bear with me in helping me understand how this works:
Does this require “zigbee2mqtt” ?
If so, I can’t seem to add the repo to my add-on store, so that’s another story.
Does the zigbee2mqtt add-on replace my current HubZ Smart Home Controller - HubZ ZigBee Com Port interface? I’m also using DeConz with a Conbee II if that makes any difference.
Thanks for any tips here. I was able to pair my 4-gang with the current zigbee controller and I even see events when listening for zha_events, so I think I’m close!
Update here – it turns out I didn’t need to do anything with this blueprint or any custom stuff at all. I just added the switch as a zigbee device and it fires off events with button presses.
I just look for the device_id, endpoint_id (button #), and what kind of press happened (i.e. remote_button_short_press and fire actions based on that. It works great!
I did notice that button #1 uses different data for what kind of press happened, but that’s easy to accommodate.