[APP][Pro] Tuya Local

I’ve added several new device types to the Tuya Local integration — each with full auto‑detection of DPs during pairing, repair flow, and complete flow card support (triggers, conditions, actions):

  • Fan — speed slider, enum speed, oscillation, and mode
  • Humidifier — humidity sensor, target humidity, and water‑empty alarm
  • Heater — target/current temperature, mode, and fault alarm
  • Light — brightness, color temperature, and HSV color control

All drivers are ready for hands‑on testing. If you have compatible devices, please give them a try and share your feedback — it helps refine detection and flow behavior for everyone.

Hi Andi,

I’m testing Tuya Local with a Tuya ceiling fan, and the basic local control works well.

The device was detected successfully and I was able to add it to Homey with these DPs:

  • DP 60: On/Off

  • DP 62: Fan speed

  • DP 64: Timer/countdown

However, the fan also supports reverse direction, but I don’t see a way to map this in the current Fan device template.

In the Tuya Developer Platform, the device exposes this standard instruction:

Code: fan_direction
Type: Enum
Values: forward, reverse

In the Tuya Local pairing screen, this appears in the detected DPs as:

  • DP 63: forward

So it looks like DP 63 is the fan direction / reverse mode DP.

Would it be possible to add support for a “Fan Direction” or “Reverse Mode” capability for ceiling fans, using an enum DP with values forward and reverse?

I’m happy to test this if needed. :slightly_smiling_face:

Thx

Hi, thanks for the detailed report — that’s exactly the info needed to add this cleanly!

Fan Direction (forward / reverse) is implemented in v1.0.32 (as soon as I can publish the version / right now Athom seem to have issues…):

  • A new Fan Direction capability (picker: Forward / Reverse) appears on the device tile once enabled

  • In Device Settings → Data Points, set Fan Direction DP to 63 (or whatever your device reports)

  • At pairing time, the DP is auto-detected — if the detected snapshot contains a value of forward or reverse, the DP number is filled in automatically

  • Three new Flow cards: Fan direction changed (trigger with direction + previous direction tokens), Fan direction is/is not (condition), Set fan direction (action)

The capability is optional — it stays hidden until you set a non-zero DP number, so it won’t clutter devices that don’t support it.

If you’d like to test it: update to v1.0.32, open your fan’s device settings, and enter 63 in the Fan Direction DP field. Let me know how it goes! :slightly_smiling_face:

@Gabriel_Laguna edit: now it’s available for testing: Tuya Local | Homey

Please let me know if/how it works.

Hi! I’ve just installed the test version and it works perfectly. Thank you so much for the quick response and for all your hard work on this amazing new app! :raising_hands:

Works perfectly here with a dehumidifier. I can even activate the timer on the device. Works incredibly fast too. Thanks so much for this app! Finally a local version of Tuya.

Hi everyone,

Looking at the install data, I can see that more than 10 devices are currently running on the Generic Tuya Device driver — which means there are quite a few device types out there that don’t yet have a dedicated driver.

The Generic driver is powerful but requires manual DP configuration. A dedicated driver means auto-detection at pairing, a clean tile, proper icons, and ready-made Flow cards — no fiddling with DP numbers.


If you’re using the Generic driver, I’d love to know:

  1. What kind of device is it? (e.g. robot vacuum, curtain motor, garage door, pool pump, IR blaster, …)

  2. Can you paste the Raw DP snapshot from Settings → DP Debug → Raw Data?

  3. What capabilities matter most to you? (on/off, mode, sensor values, flow cards, …)

  4. Are you willing to test a beta version?

The more details you share, the faster a proper driver can be built. You can also open a structured device request on GitHub — the issue template will guide you through exactly what’s needed.

Thanks for using the app — every piece of feedback helps! :folded_hands:

Andi

Where can I find:
In All Devices, click the pencil icon next to your device → copy Device ID and Device Secret (= Local Key).

I am not sure about that instruction, but an alternative is the following:

I only have this information

It seems that your Tuya IoT-platform subscription has expired. I assume you have a free subscription. That is only valid for half a year. After that you can extend your free subscription again by a half year. You’ll have to perform this renewal process every half year.

  • In your project go to the Service API tab:
  • Next, in the list of APIs click View Details at the IoT Core API:
  • In the following overview, you’ll find the status of your subscription. Normally, when your subscription is about to expire, you’ll find a link there through which you can request an extension. I assume that is also the case for expired subscriptions. In my case that link is not shown, as my subscription is still valid. After requesting an extension, it typically takes a number of days for the request to be approved.

Hi, since this evening I get “socket closed” error on my dehumidifier. What could I try to get this to work again?

I get this error in the log’ 26/05/2026, 22:20:55 [ERR] [D820 Ontvochtiger] Connection failed: read ECONNRESET — likely protocol version mismatch. Use Auto-detect in the device Repair screen.

But I can’t find the repair screen. Am I blind perhaps? :smile:

The “socket closed” error means the device actively terminated the TCP connection — it was reachable on the network, but immediately rejected the connection. This almost always happens for one of three reasons:


Most likely causes (in order)

1. Firmware update pushed tonight
Tuya regularly pushes automatic firmware updates. An update can change the protocol version (e.g. 3.3 → 3.4) or rotate the local key.

Fix: Go to device settings, change the protocol version to Auto-detect and save. The app will then try 3.3 → 3.4 → 3.1 → 3.5 automatically.


2. Local key rotated
If someone opened the Tuya app or re-linked the device, Tuya rotates the local key. The old key gets rejected immediately.

Fix: Fetch the new local key from the Tuya IoT Developer Portal and enter it in the device settings.


3. IP address changed
If your router restarted or reassigned IPs via DHCP, the device may now be at a different address.

Fix: Check that the IP in the device settings still matches. Assign a static/reserved IP to the device in your router to prevent this in future.

You’re not blind — the repair screen was removed in version 1.0.34. The hint in the log message is outdated and still points to it. Sorry about that confusion!

The settings are now directly on the device page:

  1. Open the Homey app

  2. Tap on your dehumidifier device

  3. Tap the :gear: gear icon (top right) → Settings

  4. Change Protocol Version to Auto-detect (3.3 → 3.4 → 3.1 → 3.5)

  5. Tap Save

The app will then automatically find the correct protocol version and reconnect.


The misleading log message is a bug — it still references the repair screen that no longer exists. I’ll fix that now.

:paw_prints: Tuya Local v1.0.35 — New Pet Feeder driver (beta) — testers wanted!

Hi everyone,

I’ve just pushed version 1.0.35 to the test channel and I’m looking for people with a Tuya-based automatic pet feeder to help validate the new driver before it goes stable.


What’s new in 1.0.35

:paw_prints: New driver: Pet Feeder

A dedicated driver for Tuya-based automatic pet feeders - It includes:

Capability What it does
On / Off Enable / disable the feeder
Food level (food_status) Enum: full / high / half / low / less / lack / empty
Motor state standby / feeding / blocked / …
Feed portions slider Trigger an immediate feed (1–50 portions)
Last feed report How many portions were actually dispensed
Surplus grain level Secondary hopper level indicator
Meal plan count Number of scheduled meals programmed on the device
Desiccant remaining (days) Days left on the built-in desiccant pack
Child lock Optional
Blockage / cleaning / grain-outlet alarms Optional

Flow cards:

  • Triggers: connected · disconnected · food level is low · feeding completed

  • Conditions: food level is / is not low · feeder is / is not connected

  • Actions: Feed now (1–50 portions) · Refresh state · Force reconnect

Push notification when food drops to low, less, lack or empty — configurable via device settings.


:bell: Offline grace period (all drivers)

All nine drivers now have an Offline Grace Period setting (default 60 s). The “device disconnected” flow trigger is held back until the device has been offline for that many seconds. This eliminates the 3–4 spurious disconnect notifications per night that some devices (especially pet feeders and dehumidifiers) generate due to brief firmware-level TCP reconnect cycles.


:bug: Bug fixes

  • Fixed a misleading log message that referred to a “Repair screen” that no longer exists — it now correctly says to open device Settings.

  • Food level values less and lack are recognised by the “food level is low” condition and push notification.


How to install the beta

use the direct link:
:backhand_index_pointing_right: https://homey.app/en-gb/app/com.tuyalocal/test/


What I need from pet feeder testers :white_check_mark:

If you have a Tuya pet feeder, please:

  1. Install the beta and add your feeder as a Pet Feeder device

  2. Let the app auto-detect your DPs — note which ones were found (Settings → DP Debug)

  3. Test the flow actions

  4. Check that the food level capability updates correctly when the hopper is filled/emptied

  5. Leave the feeder running overnight and confirm whether spurious disconnect notifications are gone

  6. Report back with:

    • Your device brand & model

    • Which DPs were detected and which (if any) needed manual adjustment

    • Any capabilities that are missing or mapped to the wrong DP

    • Are all capability icons available

    • Anything else

The more feeder models we validate, the better the auto-detection becomes for everyone. :slight_smile:

First of all, thanks for building a real Tuya Local integration. I have a Pool Heat Pump that I can only use through Tuya Local with HA because the other Tuya integrations use the wrong DP. Currently I used it through Tuya Local, through Home Assistant, connected to Homey. Which is the only reason I kept HA alive. So :tada: :tada: :tada: !

I am trying to get it to work, using both a heater or air conditioner ‘mode’, but the heater does not have a target temperature attribute I can assign, which the air conditioner setting DOES have.

I copied the Home Assistant configuration, from here: tuya-local/custom_components/tuya_local/devices/fairland_iphcr15_heatpump.yaml at main · make-all/tuya-local · GitHub

In air conditioner mode, it works mostly, but then the icon does not show when it’s heating.

Currently the heat pump is heating from 24 to 26 degrees, but it does not show the circle around the target temperature (like it does in the screenshot below) :

When opening the properties tab, it does show the orange background though:

Maybe, this partly could be solved by introducing more device classes?

The status indicator is likely set incorrectly. Go to the device->Settings (top right corner) and select the target temperature status indicator.

@sorted.bits

Install latest test version and let me know if it works: Tuya Local | Homey

Oh dang, my notifications were not on.

The status indicator is likely set incorrectly. Go to the device->Settings (top right corner) and select the target temperature status indicator.

I tried switching that to different values, but this made no difference :frowning: .

Install latest test version and let me know if it works: Tuya Local | Homey

I just installed it and while I did that, I got an update from the Homey app (beta) and now my tiles look different anyway, so I am not sure this should be fixed right now.

In both cases the heater is on, and both have a target temperature and current/water temperature. But please, don’t spend too much time on it, as it is already SUCH an improvement to no longer have to use Home Assistant to connect my devices directly.

Thanks again for the work!