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.
The button names were wrong in the original blueprint.
Button 1 - Left Bottom
Button 2 - Right Bottom
Button 3 - Top Right
Button 4 - Top Left
This blueprint follows the order
Button 1 Single Press
Button 1 Long Press
Button 1 Double Press
The original blueprint sometimes had inconsistencies
Button 1 Single Press
Button 1 Long Press
Button 1 Double Press
Button 2 Hold
Button 2 Double Press
Button 3 Long Press
I was unable to get this automation to work until realizing that my device name needed to exclude any spaces due to the condition in the blueprint below: