Z2M - TS004F Tuya 4-Gang Switch blueprint

Z2m generates empty action but after restarting z2m add on, it had fixed for me. i had this button 2 times in different times and this was the solution

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.
2 Likes

That’s really a great work! Thanks!
Is there any reason why long-press works only for button 3 and 4?

Thanks,
Claudio

where do I find the friendly name? when I check on Configuration > Devices and even on Entities, the name is wireless_switch.master :thinking:

I even went to hidden .strorage directory and saw that on my .core. device_registry below, the name doesn’t have spaces on it.

You’ve to go in the Zigbee2Mqtt menù and rename it without spaces

In my case, I got rid of underscores in a friendly name and that did the trick.
camelCase all the way!

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'

Any issues, feel free to ping me.

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

Thank you!