Zigbee2MQTT - Tuya 4-button Scene Switch (TS0044)

First of all, sorry for my English.
I did so. I stopped the zigbee2mqtt add-on. In its configuration panel, I added an appropriate entry in the external_converters section.

I saved the configuration. In the zigbee2mqtt plugin directory (for me it’s /share/zigbee2mqtt) I created the TS004F.js file. I launched the add-on and restarted the Home Assistant.
After these manipulations, when pairing the TS004F, it was correctly recognized.


Hey All, Does anyone know if this switch will work with this blueprint connected through a Hue Bridge? I don’t have a Zigbee directly on my hassio host yet.


thanks for this, not sure if i am missing something

but i can’t find switch in entity in blueprint, i click arrow down, i get “no matching entties found”

. although its been added and i can see the device in zigbee. please see attached

Does anyone else have a problem with TS004F that you have to press the button twice before an action will get triggered?

Double clicking won’t do anything. But clicking twice with 1s in between the presses will trigger the action.
Just pressing the button once will work like 10% of the time.

This blueprint has been working flawlessly with multiple devices for a few weeks now!
Thank you so much!

I’ve used it with:

Zemismart 4-gang Scene Switch

Zemismart 2-gang Switch

Switches similar to the first one in 2-gang and 3-gang

(These ones are branded “MOES”.)

Obviously, with 2-gang and 3-gang, you need to ignore the blueprint’s inputs for buttons 3 and/or 4.

There’s however one more switch that this blueprint didn’t accommodate as-is, and it is the 1-gang scene switch:

Contrary to the others, this switch does not send payloads prefixed with the button’s number (eg 1_single, 2_double, etc). Payloads are simply single, double and hold. All I had to do was to add the following lines to the end of the blueprint for it to work

  - conditions: 
    - "{{ command == 'single' }}"
    sequence: !input "button_one_short_press"
  - conditions: 
    - "{{ command == 'double' }}"
    sequence: !input "button_one_double_press"
  - conditions: 
    - "{{ command == 'hold' }}"
    sequence: !input "button_one_long_press"

In case you accept PRs… Support 1-gang switch by davidstosik · Pull Request #1 · AramidX/ha-blueprint · GitHub


Sorry for the very dumb question but I’m sure I’m not the only new guy in home assistant that is facing this problem, therefore I would like to ask you:

What configuarion.yaml are you talking about? The base configuration file of home assistant? The configuration file of zigbee2mtqq?

Thanks in advance, but i can’t put your solution to work!

1 Like


I am trying to add the blueprint you developed and I have the issue with configuration.yaml. Could you be so kind and assist?

I have added below into the configuration.yaml:


In the same folder I have created *.js

HA is showing following below message: Component error: external_converters - Integration ‘external_converters’ not found.

Thanks in advance,

@HeroiAmarelo @kalatos Hello,

External converters are applied to the configuration.yaml of the zigbee2mqtt service. In my case, this is the file “/opt/zigbee2mqtt/data/configuration.yaml”, where “/opt/zigbee2mqtt/” is the path where the zigbee2mqtt is installed.

Thanks! Unfortunately even after that nothing really happens because it doesn’t matter what I do, when I press any button nothing happens on home assistant, there’s no info in the log neither… therefore no matter what blueprints I follow the buttons won’t ever do a thing… It’s strange because the buttons do work if connected to a TUYA ZIGBEE HUB.

I’ve seen other people with this problem. Not sure any of you suffered the same, and if you do, what did you do to solve it? I have 2 buttons.

Thank you very much for the answer. I was trying to put the configuration into the proper file now in the catalog zigbee2mqtt. What are my concerns now:

  1. Visual studio code is telling about missing comma:

Is the configuration properly set? The file TS004F.js is also in catalog zigbee2mqtt

  1. zigbee2mqtt is working with above configuration but I am trying to permit again TS004F I am getting Unsupported device :frowning:

Dear Community,

I am trying to make it work next night and unfortunately without success at all. I followed the instruction of how to add connector into the HA instance as well as set of the tutorials on YouTube bot for me it’ simply does not work like described.

What I did:

  1. I created file TS004F.js in the home path of zigbee2mqtt

  1. I added configuration through the configuration tab on the Supervisor tab:

With the line in the configuration unfortunately Add-On zigbee2mqtt stops working showing error message: “502: Bad Gateway” When I delete line from configuration (external_converters:

  • TS004F.js) Add-on back to normal work.

Here is the piece of log from the zigbee2mqtt module:

Use node --trace-warnings ... to show where the warning was created)
(node:12964) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line options | Node.js v16.4.2 Documentation). (rejection id: 1)
(node:12964) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[00:52:11] INFO: Handing over control to Zigbee2mqtt Core …

Can I ask about your support here? Thanks!

I test this switch (TS004F) with Tuya Zigbee Hub, and all 12 functions worked!! Then I tested with deconz/conbeeII and only worked 6 functions, same as zigbee2mqtt. There’s something wrong here, why SmartLife app can access 12 functions and zb2mqtt or deconz can’t…??

I have 04 switchs of this model, and really want this to work as advised…
Can I help to debug, or try anything else ???

have you tried to using zigbee2mqtt edge version? i just got my 4 button switch and it was unsupported on the zigbee2mqtt… once i switched to the edge version… it got supported… now testing the blueprint…

cant get the blueprint to work though… sucks
gonna use node red

Thanks for this, I was about to return the remote. Hopefully it can get finished so its fully functional.

I have the TS004F version of this switch - using “Zigbee2Mqtt Edge” the switch is discovered correctly (as TS004F) and listed as “Supported”.

But, I can’t for the life of me get this Blueprint to work.

  1. I can load it into HASS just fine (see image).
  2. When I go to make an Automation from the Blueprint, my switch is listed fine (see image).

However, when I try to save the Automation, I get an error notification, and logs say that the automation cannot find the ZHA version of the blueprint - even though I clearly have the Zigbee2Mqtt version installed.

This switch is riving me crazy. Any thoughts? BTW - I am using a Sonoff ZBBridge as the coordinator.


Image 1:

Image 2:

Image 3:

I have also this wireless switch (TS004F) and for me it was working fine with this Blueprint, but after I updated Z2M o version 1.19.0 I started noticing that the actions were done only on the second press of the buttons. I later found out that in 1.19.0 a native support for this switch was added via z2m (1.19.0 changelog) and I also had still the external converter in place, thats why on the first press I received “brightness_step_up” (action from z2m) and the second time I received “3_single” (from the external converter) and this blueprint works only with the external converter. When you remove the external converter the switch is still supported in Z2M, but does not work with this blueprint.
There is also a blueprint available for the TS004F with the native support of Z2M without the external converter here which works without issues for me.

Hello, did you manage to make progress on this?

I have now 6 switches (procured from different vendors…) sitting there, all recognized as TS004F while what I really need are TS0044 :sweat_smile: and though the description of the vendors was definitely "12 scenes switch).

Upgrade your Zigbee2MQTT

Thanks @francisp, but I’m already at the latest version (1.21).

I get all the actions listed for the TS004F but what I really wanted was the TS0044 with the 12 possible commands.

Unfortunately it seems impossible to procure. All the ones I get are TS004F and I don’t have a Tuya bridge.

I did the steps but I doesnt work
The log say

(node:1769) UnhandledPromiseRejectionWarning: TypeError: Cannot read property ‘length’ of undefined
at Object.addDefinition [as addDeviceDefinition] (/app/node_modules/zigbee-herdsman-converters/index.js:78:29)
at new ExternalConverters (/app/lib/extension/externalConverters.js:13:38)
at new Controller (/app/lib/controller.js:79:34)
at start (/app/index.js:94:18)

Somebody knows some solutions to resolve this problem