[APP][Pro] Tuya Local

When connecting SmartLife to a Tuya Project, all SmartLife device names are automatically transferred. These names are stored as custom_name for the Tuya device.

No visible improvement/change for me in v1.0.83.

EDIT: I can setup the status indicator (position) of the curtain devices in the Homey Android app, but this same indicator has been disabled in the Homey web app.

Maybe this helps

  • force reload the web app page
  • and/or check the quick action settings

Did a F5, Ctrl-F5 and Chrome incognito mode without any luck

Are you logging in to your Homey via a local user account?

If so, the local web app version is not up to date. I think it is version 1.15.x, while the cloud web app version is currently on 1.18.1. Check the cloud version via my.homey.app.

Using my.homey.app:

@Amersfoort

That’s how it looks like for me in 1.0.83:

Custom_Name in blue
Name
Type
Device ID is available and Local Key as well

Are you using SmartLife linked to Tuya IOT?
Do you have more than one Tuya device?

I created a project in Tuya IoT. I established a connection with Tuya via Smartlife and then used your app v1.0.83. Did I forget a step somewhere?

Just checked what happens in my case, but I observe the same behavior: the Local Key field is empty:

@SunBeech @Amersfoort Could you please test it again in 1.0.84?

Yes, it works now. It also shows the custom name:

Yes, it’s an improvement. The local keys are visible, but for me the choice of blind motor is still hard (no custom_name but name)

Please try it again with 1.0.85

Yes, it’s working!


I have another suggestion, but I don’t know if it is technically feasible:

  • Enter Access ID and Access Secret once and press a Test button to test the connection in the Toya local app settings. Save the access credentials so that they only need to be entered once.
  • When creating a Homey Tuya device, first select the desired IP address of the device to be paired. Then select the desired Tuya device from a dropdown based on name or custom_name, using the access credentials as set in the app settings behind the scenes.

Great :tada:

Could you please try the newest version? I tried to implement your idea in the pairing process:

That is indeed what I mean, nice!

A few fine-tuning points:

  • Tuya local app “Cloud lookup” settings are actually no longer necessary, because the same settings are now also available in the device settings, including saving Access settings
  • if a Homey device already exists, there is still no clear notification, but only a disabled “Add device” button
  • Auto detect does not include v3.2 (which happens to be used by my curtain motors) and manual setting does not include v3.22
  • change the color scheme of the “Fetch devices” button (dark blue with black text is difficult to read)

Keep up the good work!

@Andi
I gave it a go and I’m especially impressed by the device and ID+Key detection! Thanks, highly appreciated.
Using Tuya w/o cloud dependency (plus privacy) is always a plus.

About the missing quick action button for curtain device types @Amersfoort reported:
It misses @ my Tuya local curtains as well. So I’ve been diggin into it a bit.

By comparison, I found out a curtain device needs to have both windowcoverings_opened and windowcoverings_closed boolean capabilities in order for the Quick action toggle to become available;
The weird part:
apparently only the “closed” capability seem to act as toggle button, as you can see on the Aqara curtain device settings screenshot.

Aqara curtain capabilities:

Quick action is available @ Aqara curtain:

Despite the odd title “Closed”, it acts as open/close toggle.


Tuya Local curtain capabilities


So, Andi, my question will be:
Is it possible to add both these windowcoverings_opened and windowcoverings_closed capabilities to the curtain device driver?
And if true, are you willing to add this to the app in a future release?

Thank you.

Thanks :slight_smile:

That’s not fully true → if you click on a device under the app settings, Cloud Lookup, you will get the full picture of the device regarding the DPs and possible values (important for me to debug issues).

added message " This Device ID already exists in Homey" in next version

added 3.22 option in next version

changed the button color in next version

@Peter_Kawa

Thanks for the detailed investigation — that was exactly the right lead! You’re correct that windowcoverings_closed is the key capability Homey needs to show the Quick Action toggle.

I’ve added it to the Curtain Motor driver in v1.0.91 (just published TEST Tuya Local | Homey). The toggle sends open/close commands and its state reflects the actual position — closed = 0%, open = anything above. Existing curtain devices are migrated automatically; just restart the Tuya Local app after updating and the Quick Action should appear.

Note: windowcoverings_opened is not a standard Homey capability — it’s a custom one defined by the Aqara app, so we don’t need it here. windowcoverings_closed alone is sufficient per the Homey developer docs.
Window coverings | Homey Apps SDK

Let me know if the Quick Action shows up after the update!

YW and thank you as well! That was quick :slight_smile:

I can confirm the Quick Action is added to existing curtain devices now, with the v1.0.91 update & app restart.
The curtain position shows too

I had to enable the QA myself though; maybe it’s an idea to have it enabled by default?

Ah, thanks! It’s a actually a HomeAssistant Community app device, not sure why this custom capability is present.

Hi @Andi ,

I’m trying to add a Marmitek Buzz LO doorbell, but the DP’s aren’t recognized when adding the device.

I do get the DP table in Cloud Lookup. Could you help me out with this one?

DP table:

Videocamera
DP 101	basic_indicator	Boolean	true	{}
DP 103	basic_flip	Boolean	false	{}
DP 104	basic_osd	Boolean	true	{}
DP 106	motion_sensitivity	Enum	1	0, 1, 2
DP 108	basic_nightvision	Enum	0	0, 1, 2
DP 109	sd_storge	string	0|0|0	maxlen 255
DP 110	sd_status	value	5	1–5 step 1
DP 111	sd_format	Boolean	false	{}
DP 115	movement_detect_pic	raw	$	{}
DP 117	sd_format_state	value	-20000	-20000–200000 step 1
DP 134	motion_switch	Boolean	false	{}
DP 136	doorbell_active	string	1783360353	maxlen 255
DP 150	record_switch	Boolean	true	{}
DP 151	record_mode	Enum	2	1, 2
DP 154	doorbell_pic	raw		{}
DP 155	doorbell_ring_exist	Enum	0	0, 1
DP 156	chime_ring_tune	Enum	2	1, 2, 3, 4
DP 157	chime_ring_volume	Integer	100	0–100 step 1
DP 160	basic_device_volume	Integer	10	0–10 step 1 %
DP 165	chime_settings	Enum	1	0, 1, 3
DP 168	motion_area_switch	Boolean	false	{}
DP 169	motion_area	String		maxlen 255
DP 185	alarm_message	raw	eyJ2IjoiMy4wIiwiYnVja2V0IjoidHktZXUtc3RvcmFnZTMwLXBpYyIsImNtZCI6ImlwY19kb29yYmVsbCIsInR5cGUiOiJpbWFnZSIsIndpdGgiOiJyZXNvdXJjZXMiLCJmaWxlcyI6W1siL2JmMzAwMS0zOTc3MDI3OC1wcDAxMDBmNTIzZmQ3YmE2OGEzMi9kZXRlY3QvMTc4MzM2MDM1NC5qcGVnIiwiZDdkNTYzYWU3NDgxM2RjNCJdXX0=	{}
DP 253	onvif_change_pwd	string	{"res":"ok"}	
DP 254	onvif_ip_addr	string	10.0.1.xx	
DP 255	onvif_switch	bool	true