Step-by-Step guide for adding Tuya-bulbs, Wi-Fi smart LED (Smart Life app) to OH2 using tuya-mqtt.js by AgentK

Do you know what I should do to set integration with tuya in synchronous mode?
I use and it works fine but in asynchronous mode.

Hi everyone… Can’t seem to make it work and I need help debugging this thing.
I’m running OH 2.5 on Raspberry Pi 4 and I’m trying to control Tuya Led Strip.
I did the following steps:

  1. I already had an MQTT broker up and running, using it with other sensors. Successfully getting temp and humidity data from an ESP8266 based sensor.
  2. installed the .js script from AgentK
  3. I think I performed all the configurations including editing the config.json and tuyaapi-mqtt.service
  4. Noted the device ID
  5. Retrieved the local key using tuya-cli wizard method
  6. Created a new channel in my generic MQTT Thing with the following configurations:
    6.1 Channel type- ON/OFF (Switch)
    6.2 State topic- tuya/id/key/ip/state
    6.3 Command topic- tuya/id/key/ip/command
  7. Linked the channel to a switch item
  8. Controlled the switch from my sitemap
  9. And nothing happens…

Things I already checked:

  1. Broker details are correct at config.json
  2. Broker is working fine (getting data from the Temp sensor)
  3. Tried setting Custom On and Off values (1 and 0)
  4. Tried setting a string channel and sending it “ON” and “OFF” strings
  5. Tried sending values from a stand alone mqtt client to the command topic
  6. Rebooting the PI several times
  7. Tried changing the topics with different options at the top-

Sepecific questions I don’t understand:

  1. How can I check if the tuya-mqtt service is up and running correctly?
  2. What is the correct topic settings? There are several different versions in this long session…
  3. Does it matter that I’m trying to control a led strip and not a light bulb?
  4. Should I set something with the tuya-cli?

And other than that, any other thoughts on how to debug it and find the problem?

Thanks in advanced.

For checking tuya-mqtt service, try:

DEBUG=* node /etc/openhab2/scripts//tuya-mqtt/tuya-mqtt.js

1 Like

I have OH2 in a docker container - how can i use tuya-mqtt,js there ?

AAAAHHH! Thank you! I had been dorking around with certs and proxies and anything I could think of - and the 3.6.1 APK Mirror finally gave me the global keys file!

I got the tuya-mqtt installed and working (I used the fork which supports protocol v 3.3). I can control my lights no problem.

I had a question about the “dps” index numbers. I have a Merkury RGB bulb from Walmart (link HERE) and I was watching the transactions coming out of tuya-mqtt when controlling the bulb with the app.

Some of the DPS indices were obvious, like the ones for power (1), brightness (3), and setting the scene (2); but others are a mystery, and I see them getting set when I change scenes.

For example:

tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ true
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "white"
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ 255
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "ff00000000ffff"
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "feedbb002c1a64"
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "ffff3205ff000000ff00ffff00ff00ff0000ff"
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "ffff3201ff0000"
tuya/eb31b3020ddf10759blnao/da8fdb33370bf37f/ "ffff3205ff000000ff00ffff00ff00ff0000ff"

Is there a way to find out what the other DPS indices mean? Or would someone know here?


Hellooooo, maybe someone available in 2020 to help me with my project? :frowning: I’m trying to manage my devices with mqtt in openhab, but I can’t, I have tried the steps you suggested, but nothing. Help

If this thread is still alive, can anyone provide some help as I can’t get this to work.
It seems that the dps is not sent to the device from Paper UI as I get this (I am using DEBUG on top of tuya-mqtt.js):

TuyAPI GET Payload: +3ms
TuyAPI {
TuyAPI gwId: ‘bfc8f65d319b4e4f87wcqv’,
TuyAPI devId: ‘bfc8f65d319b4e4f87wcqv’,
TuyAPI t: ‘1600938741’,
TuyAPI dps: {},
TuyAPI uid: ‘bfc8f65d319b4e4f87wcqv’
TuyAPI } +1ms
TuyAPI:mqtt Received command: { set: true } +82ms
TuyAPI:device set: { set: true } +12ms
TuyAPI SET Payload: +11ms
TuyAPI {
TuyAPI devId: ‘bfc8f65d319b4e4f87wcqv’,
TuyAPI gwId: ‘bfc8f65d319b4e4f87wcqv’,
TuyAPI uid: ‘’,
TuyAPI t: 1600938741,
TuyAPI dps: { ‘1’: true }
TuyAPI } +0ms
TuyAPI Received data: 000055aa000000010000000a0000002c0000000143f419dc669d9137904f7f66bd026f20c4e1dc5dff0aaf61cbdcf2ad87dc02ad1db3708b0000aa55 +16ms
TuyAPI Parsed: +3ms
TuyAPI {
TuyAPI payload: ‘parse data error’,
TuyAPI leftover: false,
TuyAPI commandByte: 10,
TuyAPI sequenceN: 1
TuyAPI } +1ms

I’ve tried various inputs including
{ "dps": 1, "set": true }

I am connected to the device which is a basic Switch with 1 gang on or off… but I can’t achieve anything with OpenHAB (version 2.5.9)

I’ve been spending hours on this!

Looking at your devId/gwid I would think that you have a Tuya version 3.2 device. It is sadly not supported by the tyuapi and thus not by tuya-mqtt either.

I can’t remember from where I saw that my device is a Tuya version 3.3 device. But the problem may come from an unreadable schema. What would you think of this (delivered by njstuya) ?

{"id":"xxxxxxxxxxxxxxxxx","broadcast":{"ip":"","port":6668,"id":"xxxxxxxxxxxxxxxxx","gwID":"xxxxxxxxxxxxxxxxx","version":""},"schema":"C�\u0019�f��7�O⌂f�\u0002o ���]�\n�a����\u0002�"}

The version number is blank and the schema may be in chinese?

On Paper UI, “Custom On/Open Value” field put this: { “dps”: “1”, “set”: “1” }

On “Off” field, this: { “dps”: “1”, “set”: “2” }

It worked for me during a while, now I simply can’t have MQTT communication and I don’t know why! :frowning:

I just opened a new thread for integrating tuya devices using tuya-mqtt (which has been completely rewritten by @tsightler within the last weeks). As he also modified parts of the underlaying tuyapi, I was able to get devices to work which didn’t work with tuyapi before…

I am trying this process with a bunch of door sensors I bought from Aliexpress. They have a XR809 chip instead of the ESP8466. Any chance it will work?

I was able to retrieve ID and KEY for the devices, and the tuya-mqtt.js script is running, but the item remains as NULL. Below are some snippets:

Bridge mqtt:broker:mosquitto [ host="localhost", secure=false, username="openhabian", password="XXXXXXXX" ]
            Thing mqtt:topic:tuya "Tuya" {
                Type switch : GF_T_Hallway_Door "Hallway Door" [ stateTopic="tuya/lightbulb//<ID>/<KEY>/192.168.1.XXX/state", commandTopic="tuya/lightbulb/<ID>/<KEY>/192.168.1.XXX/command"]
                Type switch : GF_T_Kitchen_Door "Kitchen Door" [ stateTopic="tuya/lightbulb/<ID>/<KEY>/192.168.1.XXX/state", commandTopic="tuya/lightbulb//<ID>/<KEY>/192.168.1.XXX/command"]

Switch GF_Hallway_Door "Hallway Door" (gSensor) {channel="mqtt:topic:tuya:GF_T_Hallway_Door" }

Did you try tuya/ver3.3/…?

Did you try tuya/ver3.3/…?

I tried today with both v3.3 and v3.1, but none worked. I am guessing I did something wrong in the tuya-mqtt part.

When I use mosquitto_pub to update the item it works perfectly, but apparently the device communication with Tuya cloud is not being intercepted.

No idea how to move on…

Well… the only thing I can recommend you is to try the new version of tuya-mqtt:

The author @tsightler rewrote almost everything and I was able to manage devices which I still can’t control with tuyapi… Especially as you already have the device id’s and keys, I think it’s worth a try…

If you need a small tutorial:

1 Like

Nice tip, I will give it a try this weekend and let you guys know the outcome.

Thank you for the help.

Tuyaapi does not support sensors. At least not sensors which sleep the most time as door sensors.

1 Like

Dear OH-community, i’m going to be crazy! couple of days on this problem:

I succeeded in integrating my Zemismart vertical shutter motor in openhab thanks to the AgentK binding, -I found my secret key etc …,
-I have configured my broker correctly,-configured my MQTT thing like this:

,with a rollershutter ID channel type

  • created my articles like this:
    Dimmer Direction "Store sam" {channel="mqtt:topic:0f66ae51:direction"}

-and create a basic rule like this:

`rule “rule name”
Item Direction received command OFF

rule “rule name”
Item Direction received command ON

-I noticed while running MQTT fix that the topics of my device were tuya / “name” / dps / 2 / state, this one returns a number value.

My problem is the following, when I activate my roller shutter via the tuya application, I see the change of values ​​of my MQTT fix topic, on my sitemap I also see that the switch opens and closes, however I can’t send a shutter command from openhab to my roller shutter, what am I doing wrong with my rule?

i also tried this one reading the binding documentation
MQTT binding doc
`rule “Toggle Tuya light/switch on/off via MQTT”
Item Direction received command
val mqttActions = getActions(“mqtt”,“mqtt:systemBroker:embedded-mqtt-broker”)

 switch(receivedCommand) {
 case ON : mqttActions.publishMQTT("tuya/store_de_la_salle_a_manger/dps/2/state/","40",true)
 case OFF : mqttActions.publishMQTT("tuya/store_de_la_salle_a_manger/dps/2/state/","100",true)

Sorry for the layout firefox doesn’t help me

I did not understand how I run the test, can you explain?

to see if it installed it globally try out the command at the C:\ power shell prompt:

tuya-cli help