[APP][Pro] Tuya Local

Hi Andi

I’m afraid I have had another unexpected feeding at 02:15. Looks like the time may have some significance, as this was about the last one that went off.

Dump included

c22c1f94-c664-4e65-b629-a35b22aa71d4

thanks

Stephen

Hi Andi, I maped the DP’s like that

and I get a device button to switch the pir on/off

But I don’t get any flow cards to to manage the device.

That is something that should be improved.

Hi Dietrich, you were right — I built the tiles and forgot the cards. They’re in 1.0.254.

Nine cards: the daylight threshold and the sensitivity each trigger on change and hand the new value to the flow, all four can be checked in a condition, and all four can be set in an action.

The pickers use your own names, so with 50lux=2 mapped the flow says “50lux” and the sensor gets the 2.

One thing I had wrong: the hold time was readable but not settable from the tile. It’s a slider now.

Thanks for pushing on it.

Hello Andi,

thank you for the flow cards.

The slider for the hold time has to be divided by ten. It now goes up to 36000 instead of 3600. :joy:

Hi Dietrich, it’s in 1.0.255 — and your “divided by ten” was exactly right.

It’s how Tuya writes a range: the raw numbers the device sends, plus where the decimal point goes. Your pir_delay is 5–3600 seconds with one decimal, which reads min 50, max 36000. So 36000 was one hour in tenths of a second, and the app was sending you a hold time ten times too short.

It now reads that from your sensor’s own spec. If you have Cloud Lookup set up, use Apply — no need to re-pair. It also finds cds, pir_sensitivity, pir_delay and switch_pir by name now, so no manual mapping next time.

Can you check once: set 60 s and confirm the tile says 60?

Hi, can you please add support for this Power World Heat pump?

Thanks in advance!

Martin

**Tuya Local 1.0.253 — support bundle (1 device)**

Support bundle

```

Tuya Local v1.0.253 — support bundle

Generated: 2026-10-07T23:24:11.216Z

App started: 2026-10-07T18:53:22.195Z (running 4h 30m)

Homey: 13.5.1

Cloud lookup: configured (eu) — account listing ok, 12 device(s) (2026-10-07T23:23:27.457Z)

========================================================================

DEVICE Heat Pump

driver heat_pump

model PW58421 (product 16sthwpnxt6u7ewz)

device id bf3d02…

available yes

protocol configured 3.4, connected 3.4 ip 10.0.1.247

status Connected · last seen 10/8/26, 1:24:11 AM · poll 30s

history 2 connections since app start · up 3h 41m total · avg 1h 50m · longest 2h 1m

packets 11973 received · 0.90/s while connected · data ever received: yes

DP mapping

dp_current_temp            102

dp_fault                   15

dp_mode                    2

dp_onoff                   1

dp_power_level             104

dp_preset                  0

dp_silent                  0

dp_target_temp             106

other settings

command_gap_ms             100

current_temp_divisor       0

fault_bits                 ""

fault_status               "—"

fire_and_forget            true

lock_protocol              false

mode_values                "smart,heat,cool,auto"

offline_grace_seconds      60

preset_values              "sleep,comfort,boost"

reconnect_interval         0

silent_true_means          "smart"

silent_values              "smart,silence"

temp_divisor               1

temp_max                   45

temp_min                   12

temp_step                  1

live DPs (updated 2026-10-07T23:23:28.211Z)

DP 1     true                         boolean

DP 2     "smart"                      string

DP 5     "heat"                       string

DP 6     "c"                          string

DP 15    0                            number

DP 101   36                           number

DP 102   39                           number

DP 103   7                            number

DP 104   42                           number

DP 105   4                            number

DP 106   3                            number

DP 107   38                           number

DP 108   14                           number

DP 109   390                          number

DP 111   0                            number

DP 112   4                            number

DP 113   55                           number

DP 114   374                          number

DP 115   50                           number

DP 116   599                          number

DP 117   0                            number

DP 140   "AAAAJAAAAGQAAAA3AAAA7gAABR0AAAAbAAAAZAAAAKwAAAAAAAAAAAAAAAEAAAfqAAAACgAAAAgAAAABAAAAFwAAABcAAAAAAAAAAAAAAAA=" string

cloud spec code / dp / type / value / range

switch                     1     Boolean   null             

mode                       2     Enum      null             smart,strong,mute

work_mode                  5     Enum      null             wth,heat,cool,wth_heat,wth_cool

temp_unit_convert          6     Enum      null             c,f

fault                      15    bitmap    null             

intemp                     101   value     null             -50-220 ℃

outtemp                    102   value     null             -50-220 ℃

whjtemp                    103   value     null             -50-220 ℃

cmptemp                    104   value     null             0-400 ℃

hqtemp                     105   value     null             -50-220 ℃

ptemp                      106   value     null             -50-220 ℃

cptemp                     107   value     null             -50-220 ℃

wttemp                     108   value     null             -50-220 ℃

step_run                   109   value     null             0-500 P

stepb_run                  111   value     null             0-500 P

cmp_cur                    112   value     null             0-65 A

sink_temp                  113   value     null             -99-220 ℃

dc_bus_voltage             114   value     null             0-999 V

cmp_act_frep               115   value     null             0-500 Hz

dc_fan_speed               116   value     null             0-2000

dc_fan2_speed              117   value     null             0-2000

parameter_group_1          118   Raw       null             

parameter_group_2          119   Raw       null             

parameter_group_3          120   Raw       null             

parameter_group_4          121   Raw       null             

parameter_group_5          122   Raw       null             

parameter_group_6          123   Raw       null             

parameter_group_7          124   Raw       null             

reset                      125   Boolean   null             

parameter_group_8          126   Raw       null             

parameter_group_23         140   Raw       null             

------------------------------------------------------

Hi Martin,

good news: your heat pump already connects and reports — it just has the wrong numbers in a few places. You can fix those now under the device’s settings:

Mode DP → 5, values wth,heat,cool,wth_heat,wth_cool
Preset DP → 2, values smart,strong,mute
Target temperature DP → 0 — DP 106 is one of its temperature sensors, not the setpoint
Power level DP → 0 — DP 104 is the compressor temperature

The harder part: your model doesn’t publish the target temperature as a data point of its own. It’s packed inside one of the “parameter group” blocks. To find it, could you change the target temperature in the Smart Life app by one degree, note the old and new value, and send me a new support bundle right after? Whichever block changes is the one.

Thanks for your reply - and solution! Yes, I was able to get the pump into Homey, but as you said, I could not control it. “Target” is always 12, and changing it does nothing.

I tried looking the DPs when changing it in the Tuya app, but no luck. But I’ve looked at what I think is the “parameter group”, and looked for differences:

Temp first (30, 31, 33 and 40), then the group:
30:118 “AAAAAgAAAAUAAAAyAAAADAAAAB4AAAABAAAAAAAAABcAAAAeAAAARgAAAEEAAAAAAAAAFwAAAAYAAAAAAAAAAAAAAB4AAAABAAAAAQAAAB4=” string
31:118 “AAAAAgAAAAUAAAAyAAAADAAAAB8AAAABAAAAAAAAABcAAAAeAAAARgAAAEEAAAAAAAAAFwAAAAYAAAAAAAAAAAAAAB4AAAABAAAAAQAAAB4=” string
33:118 “AAAAAgAAAAUAAAAyAAAADAAAAB8AAAABAAAAAAAAABcAAAAeAAAARgAAAEEAAAAAAAAAFwAAAAYAAAAAAAAAAAAAAB4AAAABAAAAAQAAAB4=” string
40:118 “AAAAAgAAAAUAAAAyAAAADAAAACEAAAABAAAAAAAAABcAAAAeAAAARgAAAEEAAAAAAAAAFwAAAAYAAAAAAAAAAAAAAB4AAAABAAAAAQAAAB4=” string

30:140 “AAAAAwAAAGQAAAALAAAA7gAAAQUAAAANAAAAXwAAAK4AAAAAAAAAAAAAAAgAAAfqAAAACgAAAAgAAAAJAAAAIwAAACwAAAAAAAAAAAAAAAA=” string
31:140 “AAAAAwAAAGQAAAAMAAAA7gAAAR0AAAAMAAAAZAAAAK8AAAAAAAAAAAAAAAgAAAfqAAAACgAAAAgAAAAJAAAAJQAAADEAAAAAAAAAAAAAAAA=” string
33:140 “AAAAAwAAAGQAAAAMAAAA7gAAAR0AAAAMAAAAZAAAAK8AAAAAAAAAAAAAAAgAAAfqAAAACgAAAAgAAAAJAAAAJQAAADEAAAAAAAAAAAAAAAA=” string
40:140 “AAAAAQAAAGQAAAAMAAAA7gAAAR0AAAAEAAAAXwAAAK0AAAAAAAAAAAAAAAgAAAfqAAAACgAAAAgAAAAJAAAAJgAAADsAAAAAAAAAAAAAAAA=” string

Hope this is usefull!

Martin

Hi Stephen, thanks — this log settles one thing: the feeder really did dispense. Its own record says 02:14:48, nine seconds after the app restarted at 02:14:39. That restart is most likely Homey installing an app update overnight. Last time was the same. Each feed came about a second after the first message the app sent on a fresh connection, so something at the start of a connection sets it off. The log just can’t show which message.

Version 1.0.257 can record that. If you could, during the day:

  1. Update to 1.0.257. The restart may trigger a feed; that’s the bug, nothing new.
  2. In the feeder’s settings, turn on Record connection start.
  3. Restart the app (More → Apps → Tuya Local) with the bowl in view.
  4. Send me the log as before, and tell me whether it fed.

Until it’s fixed, turning off automatic updates for Tuya Local stops the 2 am surprises.

Hi Andi,

that is ok now. Thank you.

Hi Martin, it’s in 1.0.258, built on your captures. Set these in the pump’s settings:

Target Temperature DP → 118
Target Temperature Field → 5

The target tile then shows the pump’s own setpoint. Setting it from Homey sends the whole settings block back with only that value changed, and always from a copy the pump reported since the app connected, so nothing else in it gets overwritten with old values.

Could you try it with the Tuya app open and tell me whether it follows? If the pump takes a different value than you asked for, Homey will say which one. That would also answer whether 40 is allowed.

Hi,
I uppgraded to 1.0.258, and added the 2 codes, and when trying to change the target temp using the Homey-app, I get this popup : “The heat pump has not reported DP 118 since connecting and did not sent it when asked”.

I used the Tuya app to change it to 45.

Reopened Homey, and now it’s 45. Yay!

Changing it to 42 in Homey - no error message.
Checking the Tuya app again - 42. Yay again.

You did it! Thanks!!

Hi Martin,

one more improvement in 1.0.259: the “has not reported DP 118” message after a reconnect should be gone. When the pump doesn’t send its settings block, the app now gets it from the Tuya cloud. You already have Cloud Lookup set up, so there’s nothing for you to do.

That also means a flow that sets the target works at any time, not only after you’ve used the Tuya app. If the message ever comes back, let me know.

Hi Andi

Some how my outdoor smart plug ON/OFF wont work from homey APP. DP state will not change if i check them in DP debug

If i press ON/OFF button from plug directly, Homey will change button state in app (OFF and ON) . Also i can see in DP debug DP1 state changing False to True and True to False

Very strange to me, i have tried change protocol version, remove and add smart plug again but still same. Connection to Homey is fine, but command from homey not change anything

Diag. report d250d1f8-72d6-4576-aab8-9665e23a9e50 If this helps..

Hi Mikko, thanks for the report. Homey reads your plug fine, but every command from Homey goes unanswered: the plug receives it and silently ignores it. That usually means one of two things:

Is it a WiFi plug, or connected through a Tuya hub/gateway (Zigbee)?
Please compare the Device ID: in Smart Life, open the plug → :pencil: → Device Information → Virtual ID, against the Device ID in the Homey device settings. Are they exactly the same?
If both look right, please update to 1.0.259 and, in the plug’s settings, turn off Fire and Forget and turn on Record connection start. Then restart the app, press ON and OFF in Homey within 20 seconds, and send me the log. It will show exactly what the plug answers.

This is WIFI plug, device id is exact same. I change to experimental version, but wont work still. Hope i do everything right what asked.. =D

diag.report ce9105f5-958e-4462-aa95-947fd4f8594b

Here is also log from APP, i think it show all from the beging

09/10/2026, 17.20.30  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.20.30  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 17.20.22  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.20.22  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.20.13  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.20.13  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.20.08  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.20.08  [WRN]  [Smart Plug]  GET timed out 4× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 17.20.03  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.20.03  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 17.19.58  [INF]  [Smart Plug]  Trace +15.70 s ← CONTROL (7) seq 6
09/10/2026, 17.19.58  [INF]  [Smart Plug]  Trace +15.64 s → CONTROL (7) seq 6: dps {1=true}
09/10/2026, 17.19.58  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.19.58  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.19.53  [INF]  [Smart Plug]  Trace +10.69 s ← CONTROL (7) seq 5
09/10/2026, 17.19.53  [INF]  [Smart Plug]  Trace +10.63 s → CONTROL (7) seq 5: dps {1=false}
09/10/2026, 17.19.53  [WRN]  [Smart Plug]  Set DP 1 timed out (value may still have applied)
09/10/2026, 17.19.53  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.19.53  [INF]  [Smart Plug]  Trace +10.57 s ← HEART_BEAT (9) seq 0
09/10/2026, 17.19.53  [INF]  [Smart Plug]  Trace +10.53 s → HEART_BEAT (9) seq 4
09/10/2026, 17.19.48  [INF]  [Smart Plug]  Trace +5.66 s ← CONTROL (7) seq 3
09/10/2026, 17.19.48  [INF]  [Smart Plug]  Trace +5.61 s → CONTROL (7) seq 3: dps {1=true}
09/10/2026, 17.19.45  [INF]  [Smart Plug]  Trace +2.90 s ← DP_REFRESH (18) seq 2
09/10/2026, 17.19.45  [INF]  [Smart Plug]  Trace +2.70 s ← STATUS (8) seq 0: dps {20=2309}
09/10/2026, 17.19.45  [INF]  [Smart Plug]  Trace +2.66 s → DP_REFRESH (18) seq 2: {dpId [1,9,18,19,20,26,38]}
09/10/2026, 17.19.44  [INF]  [Smart Plug]  Trace +1.18 s ← DP_QUERY (10) seq 1: dps {1=false, 9=0, 17=2, 18=0, 19=0, 20=2304, 21=1, 22=529, 23=27189, 24=14378, 25=2900, 26=0, 41="", 42=""}
09/10/2026, 17.19.43  [INF]  [Smart Plug]  Trace +1.04 s → DP_QUERY (10) seq 1: dps {}
09/10/2026, 17.19.43  [INF]  [Smart Plug]  Connected
09/10/2026, 17.19.42  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.3)
09/10/2026, 17.19.41  [INF]  [App]  Started — v1.0.259
09/10/2026, 17.16.56  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 17.16.44  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.16.38  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.16.29  [INF]  [Smart Plug]  Connected
09/10/2026, 17.14.57  [INF]  [Smart Plug]  Trace +10.34 s ← HEART_BEAT (9) seq 0
09/10/2026, 17.14.57  [INF]  [Smart Plug]  Trace +10.29 s → HEART_BEAT (9) seq 3
09/10/2026, 17.14.50  [INF]  [Smart Plug]  Trace +3.09 s ← DP_REFRESH (18) seq 2
09/10/2026, 17.14.49  [INF]  [Smart Plug]  Trace +2.90 s ← STATUS (8) seq 0: dps {20=2304}
09/10/2026, 17.14.49  [INF]  [Smart Plug]  Trace +2.76 s → DP_REFRESH (18) seq 2: {dpId [1,9,18,19,20,26]}
09/10/2026, 17.14.47  [WRN]  [Smart Plug]  Protocol 3.3 works on this device (configured: 3.4) — saving it to "Protocol Version" so the next reconnect starts there.
09/10/2026, 17.14.47  [INF]  [Smart Plug]  Trace +0.93 s ← DP_QUERY (10) seq 1: dps {1=false, 9=0, 17=2, 18=0, 19=0, 20=2322, 21=1, 22=529, 23=27189, 24=14378, 25=2900, 26=0, 41="", 42=""}
09/10/2026, 17.14.47  [INF]  [Smart Plug]  Trace +0.79 s → DP_QUERY (10) seq 1: dps {}
09/10/2026, 17.14.47  [INF]  [Smart Plug]  Connected
09/10/2026, 17.14.46  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.3)
09/10/2026, 17.14.30  [INF]  [Smart Plug]  Reconnecting in 17s (attempt 5)
09/10/2026, 17.14.30  [WRN]  [Smart Plug]  5 failures — trying protocol 3.3 (configured: 3.4)
09/10/2026, 17.14.30  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.14.15  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.14.15  [INF]  [Smart Plug]  Trace +0.20 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.14.15  [INF]  [Smart Plug]  Trace +0.09 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.14.15  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.13.58  [INF]  [Smart Plug]  Reconnecting in 17s (attempt 4)
09/10/2026, 17.13.58  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.13.43  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.13.43  [INF]  [Smart Plug]  Trace +0.22 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.13.43  [INF]  [Smart Plug]  Trace +0.11 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.13.43  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.13.30  [INF]  [Smart Plug]  Reconnecting in 13s (attempt 3)
09/10/2026, 17.13.30  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.13.15  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.13.15  [INF]  [Smart Plug]  Trace +0.18 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.13.15  [INF]  [Smart Plug]  Trace +0.13 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.13.15  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.13.08  [INF]  [Smart Plug]  Reconnecting in 7s (attempt 2)
09/10/2026, 17.13.08  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.12.53  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.12.53  [INF]  [Smart Plug]  Trace +0.33 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.12.53  [INF]  [Smart Plug]  Trace +0.24 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.12.53  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.12.50  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 17.12.50  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.12.35  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.12.35  [INF]  [Smart Plug]  Trace +0.15 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.12.35  [INF]  [Smart Plug]  Trace +0.04 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.12.35  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.12.28  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.12.28  [INF]  [Smart Plug]  Trace +0.17 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.12.27  [INF]  [Smart Plug]  Trace +0.03 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.12.27  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.12.21  [INF]  [Smart Plug]  Reconnecting in 6s (attempt 2)
09/10/2026, 17.12.21  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.12.06  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.12.06  [INF]  [Smart Plug]  Trace +0.17 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.12.06  [INF]  [Smart Plug]  Trace +0.06 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.12.06  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.12.03  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 17.12.03  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 17.11.48  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 17.11.48  [INF]  [Smart Plug]  Trace +0.27 s ← unreadable frame, 60 bytes, SESS_KEY_NEG_START (3), header 000055aa 00000001 00000003 0000002c: HMAC mismatch: expected 643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f088, was 9dfca36014754fad2588334ac020e793093f698abdf4efa776cd679bd0db62fb. 000055aa00000001000000030000002c00000001b3264be2643b5e2b9e641dee8c06369fb015e00bb132e8952eac80290196488004f4f0880000aa55
09/10/2026, 17.11.48  [INF]  [Smart Plug]  Trace +0.17 s → SESS_KEY_NEG_START (3) seq 1: 16 bytes
09/10/2026, 17.11.48  [INF]  [Smart Plug]  Trace +0.00 s Trace: recording every frame of the first 20 s of this connection (protocol 3.4)
09/10/2026, 17.11.47  [INF]  [App]  Started — v1.0.259
09/10/2026, 17.02.32  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.02.23  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 17.01.46  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.01.41  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.01.15  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 17.01.03  [INF]  [Smart Plug]  Connected
09/10/2026, 16.58.41  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 16.58.36  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 16.56.53  [INF]  [Smart Plug]  Connected
09/10/2026, 16.56.51  [INF]  [App]  Started — v1.0.259
09/10/2026, 16.55.01  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 16.54.56  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 16.54.22  [INF]  [Smart Plug]  Protocol Version set to 3.3
09/10/2026, 16.54.22  [WRN]  [Smart Plug]  Protocol 3.3 works on this device (configured: 3.4) — saving it to "Protocol Version" so the next reconnect starts there.
09/10/2026, 16.54.21  [INF]  [Smart Plug]  Connected
09/10/2026, 16.54.06  [INF]  [Smart Plug]  Reconnecting in 15s (attempt 5)
09/10/2026, 16.54.06  [WRN]  [Smart Plug]  5 failures — trying protocol 3.3 (configured: 3.4)
09/10/2026, 16.54.06  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 16.53.51  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 16.53.36  [INF]  [Smart Plug]  Reconnecting in 14s (attempt 4)
09/10/2026, 16.53.36  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 16.53.21  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 16.53.09  [INF]  [Smart Plug]  Reconnecting in 12s (attempt 3)
09/10/2026, 16.53.09  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 16.52.54  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 16.52.48  [INF]  [Smart Plug]  Reconnecting in 6s (attempt 2)
09/10/2026, 16.52.48  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 16.52.33  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 16.52.30  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 16.52.30  [WRN]  [Smart Plug]  Connection failed: Handshake timed out after 15s — the device accepted the connection but never completed the key exchange, which usually means it does not speak the protocol version being tried. The app rotates through the others on its own; if it settles on one that works, the log says so and that version belongs in the device settings.
09/10/2026, 16.52.15  [ERR]  [Smart Plug]  HMAC mismatch — the signature on that frame does not match the one computed from the Local Key. On 3.4 that is either a wrong key or the wrong framing altogether, and those look alike from here, so the app finishes trying the other versions before drawing a conclusion.
09/10/2026, 16.52.13  [INF]  [App]  Started — v1.0.253
09/10/2026, 16.00.00  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.59.39  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.49.27  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.49.21  [WRN]  [Smart Plug]  GET timed out 4× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.49.16  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.49.10  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.49.05  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.48.52  [INF]  [Smart Plug]  Connected
09/10/2026, 15.48.47  [INF]  [Smart Plug]  Reconnecting in 5s (attempt 2)
09/10/2026, 15.48.47  [WRN]  [Smart Plug]  Connection failed: connection timed out — nothing answered in time. The device is asleep, still starting up after a power cut, or busy with another connection; these devices accept exactly one. The app keeps retrying on its own.
09/10/2026, 15.48.47  [WRN]  [Smart Plug]  connection timed out — nothing answered in time. The device is asleep, still starting up after a power cut, or busy with another connection; these devices accept exactly one. The app keeps retrying on its own.
09/10/2026, 15.48.40  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.48.39  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 15.48.39  [WRN]  [Smart Plug]  Disconnected: socket closed (up 1m 12s, 9 packets)
09/10/2026, 15.48.18  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.48.13  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.47.45  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.47.27  [INF]  [Smart Plug]  Connected
09/10/2026, 15.35.03  [WRN]  [Smart Plug]  GET timed out 8× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.34.54  [WRN]  [Smart Plug]  GET timed out 7× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.34.49  [WRN]  [Smart Plug]  GET timed out 6× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.34.44  [WRN]  [Smart Plug]  GET timed out 5× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.34.37  [WRN]  [Smart Plug]  GET timed out 4× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.30.05  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.30.00  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.29.48  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.29.15  [INF]  [Smart Plug]  Connected
09/10/2026, 15.29.14  [INF]  [App]  Started — v1.0.253
09/10/2026, 15.29.00  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.28.55  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.28.44  [WRN]  [Smart Plug]  Turn On Behavior changed but dp_relay_status = 0 — no command sent. Set the DP number first.
09/10/2026, 15.27.06  [WRN]  [Smart Plug]  GET timed out 7× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.27.00  [WRN]  [Smart Plug]  GET timed out 6× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.26.55  [WRN]  [Smart Plug]  GET timed out 5× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.26.34  [WRN]  [Smart Plug]  GET timed out 4× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.26.29  [WRN]  [Smart Plug]  GET timed out 3× in a row — this device looks push-only: it never answers a status request. Set Polling Interval to 0 to stop asking.
09/10/2026, 15.26.24  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 15.26.19  [INF]  [Smart Plug]  GET timed out — no status response this time
09/10/2026, 12.12.17  [INF]  [Smart Plug]  Connected
09/10/2026, 12.12.14  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 12.12.14  [WRN]  [Smart Plug]  Disconnected: socket closed (up 2h 60m, 5 packets)
09/10/2026, 9.12.23  [INF]  [Smart Plug]  Connected
09/10/2026, 9.12.20  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 9.12.20  [WRN]  [Smart Plug]  Disconnected: Error from socket: read ECONNRESET (up 4h 0m, 7 packets)
09/10/2026, 9.12.20  [ERR]  [Smart Plug]  Error from socket: read ECONNRESET — likely a protocol version mismatch. The app retries the other versions on its own after 5 failed attempts. If it stays offline, set Protocol Version manually in the device settings; 3.3 and 3.4 are the common ones.
09/10/2026, 5.12.19  [INF]  [Smart Plug]  Connected
09/10/2026, 5.12.17  [INF]  [Smart Plug]  Reconnecting in 3s (attempt 1)
09/10/2026, 5.12.17  [WRN]  [Smart Plug]  Disconnected: Error from socket: read ECONNRESET (up 4h 0m, 3 packets)
09/10/2026, 5.12.17  [ERR]  [Smart Plug]  Error from socket: read ECONNRESET — likely a protocol version mismatch. The app retries the other versions on its own after 5 failed attempts. If it stays offline, set Protocol Version manually in the device settings; 3.3 and 3.4 are the common ones.
09/10/2026, 1.12.17  [INF]  [Smart Plug]  Connected
09/10/2026, 1.12.14  [INF]  [Smart Plug]  Reconnecting in 2s (attempt 1)
09/10/2026, 1.12.14  [WRN]  [Smart Plug]  Disconnected: socket closed (up 4h 53m, 446 packets)

@Andi Subject: Curtain motor position not updating in Homey (Tuya Local)

Hi Andi,

I’m experiencing an issue with my curtain motor using the Tuya Local app.

The curtain can be controlled through Homey, but its position is no longer updating correctly. This also happens when operating the curtain manually.

Here are my current settings:

  • App version: 1.0.253
  • Protocol: 3.3
  • Connection status: Connected
  • Position DP: 2
  • Control DP: 1
  • Work State DP: 7
  • Polling interval: 20 seconds
  • Fire and forget: Enabled

The last position update was on October 5, although Homey has received other status updates since then.

I also tested protocol 3.4 previously, but the problem remains.

Could this be related to how the app reads or processes position updates from the motor? Is there anything else I should check or change?

Thanks for your help!

Thanks Mikko, you did everything right, and the recording shows exactly what’s happening. Your plug confirms every ON/OFF from Homey within 50 ms, then doesn’t switch. The ID and protocol are fine.

The only difference between what it answers and what it ignores is how one field in the command is filled in. Version 1.0.260 adds a setting to send commands the way other Tuya tools do. Could you:

Update to 1.0.260: Tuya Local | Homey
In the plug’s settings, turn on Alternative command format (leave Record connection start on).
Restart the app, press ON and OFF in Homey within 20 seconds, and tell me whether it switches. Send me the log either way.
And quickly: does ON/OFF work from the Smart Life app?

Hi Mario, thanks for the details. Most likely your motor reports its actual position on a different data point than the one used to set it. DP 2 is usually the target position and only changes when a position is set. The real position is usually on DP 3, and open/close or moving it by hand only changes that one. The app doesn’t read it yet, so the tile stays on the last position that was set.

Could you check? In the Tuya Local settings, open DP Debug, turn on Auto-refresh, move the curtain by hand, and tell me which DP changes. Or send a support bundle from the Fix It tab. If it’s DP 3, I’ll add a setting for it.

@Andi Hi Andi,

I tested it using DP Debug with Auto-refresh enabled, and you were right!

After operating the curtain through Homey:

  • DP 2 remained at 100.
  • DP 3 changed from 100 to 0.

So DP 3 appears to report the actual curtain position, while DP 2 remains unchanged.

I’ve attached screenshots of both readings.

Would it be possible to add a separate setting for the actual position DP (DP 3), so Homey can correctly display the curtain’s position?

Thanks! greetings mark