jasonacox / tinytuya

Python API for Tuya WiFi smart devices using a direct local area network (LAN) connection or the cloud (TuyaCloud API).
MIT License
1.02k stars 181 forks source link

Registering a Cloud Project on iot.tuya.com is not free anymore #15

Open RigacciOrg opened 3 years ago

RigacciOrg commented 3 years ago

Hi, I was following the instructions to Get the Tuya Device LOCAL_KEY found on https://pypi.org/project/tinytuya/, but it seems that it is not longer supported as a free service. From the developer framework https://iot.tuya.com/cloud/, if I click on Cloud => Projects => Try It Free, I get the message that I need a personal authentication or enterprise authentication. It is not clear what is a personal authentication, whereas an enterprise authentication seems reserverd to big companies. And after all, the Free Trial is just for three months. I asked for support in chat, the answer was that API usage is not for device users, but only for companies. Does it means that the use of TinyTuya is precluded to single developers?

jasonacox commented 3 years ago

You are mostly correct. Tuya is a commercial offering that provides IoT device makers a way to use their code/cloud to quickly ship ESP8266 based smart devices quickly to market. The devices are designed to use their Tuya cloud. There is a backdoor way to control the devices through a localkey but it requires getting that from the Tuya cloud API. This is what tinytuya and other libraries help you do. Getting API access to do that requires that you register as a Tuya developer. However, as a single Tuya developer, you are still able to sign up for the free 3-month trial. You can sign up for the 3 month trial and use the method here to download the local keys: https://github.com/jasonacox/tinytuya#get-the-tuya-device-local_key

The alternative is to re-image your Tuya devices with an open non-cloud system. Check out Tasmota. I haven't tried it but it looks promising.

arrmo commented 3 years ago

as a single Tuya developer, you are still able to sign up for the free 3-month trial. You can sign up for the 3 month trial and use the method here to download the local keys

Hmmm ... does this mean that if you add new devices after 3 months - you can no longer get keys for them?

jasonacox commented 3 years ago

I'm not sure. I haven't seen the time limit enforced. Hopefully Tuya will be kind to us since we are developing community open source apps and supporting their platform.

arrmo commented 3 years ago

Agreed!

RigacciOrg commented 3 years ago

It seems that registering for the developer Free trial is not simple (Jan 2021). Using the account that I created I get the message Your account is not yet available for cloud development platform. The cloud development platform can only be used after completing personal authentication or enterprise authentication.

As far as I can see, there is no way to do a personal authentication.

The enterprise authentication seems rather complicated; the FAQ says: If you need to open it, please apply to your business manager or contact online customer service to provide the following information: 1. Basic information: Country, enterprise scale, industry influence, main products, well-known cooperative brands 2. Enterprise IoT account 3. Industry 4. Market coverage area

This seems to me a good point to switch to Tasmota!

BenoitVH commented 1 year ago

I recently (dec 2022) downloaded the tinytuya libraries (unaware of this time limitation mentioned above). Here are my observations: 1) it was possible to register a free trial cloud , it comes with a one month expiration 2) after one month (i.e. last week), I could indeed no longer collect the data for the new device (power strip) I just bought 3) there is an option in the Tuya Cloud to "debug a device" (ie send/receive the data from the cloud developer webpage). When I used that option I received the "expired" error message but I was also directed to a link to buy a license or extend the free subscription 4) extending the free subscription can be done for 1, 3 or 6 months. I applied for the latter and one day later: voilà, it worked again. Not sure what will happen in 6 months time but by then I hope to have added all devices I need... (I'm building a home automation controller with my Raspi). Alternatively, if another extension is no longer possible, I do imagine that creating a new cloud from another account should do the job? Hope that helps...

jasonacox commented 1 year ago

Thanks @BenoitVH ! That's great information. A similar discussion on this: https://github.com/jasonacox/tinytuya/issues/249.

When you were setting up the account, do you recall if you selected an "Account Type" or did you use the "Skip this step" path?

image
BenoitVH commented 1 year ago

It's me thanking you for providing the excellent tinytuya library! :-)

As mentioned, I created the Tuya account back in December 22, but the first steps in my project where to communicate with the Smart Home app (TuyaOS library), controlling the devices part (tinytuya) came only later. For the TuyaOS part I already had to create an account, so I'm pretty sure that I selected "individual developer" (having not yet seen your pdf back then).

If I now look in my Tuya Account (https://myaccount.tuya.com/account), it does show as "individual developer" and the only other option I get to select is to migrate towards "organisation".

However, I'm not convinced that the "skipping" you mention above would make a real difference... One of the things I did notice, is that -even in the few weeks I have been using the Tuya platform- the platform is pretty "volatile": many things (screens/options/controls...) change all the time. So, I suspect that Tuya added the expiration part after you created your account (which is probably a long time ago?) On a side-note: Tuya "volatility" also makes any documentation (including their own) quickly obsolete... To illustrate: I submitted a Tuya ticket for a TuyaOS problem I encountered: turns out it was primarily due to their outdated docs; so as a compensation I was granted two "extra device codes" :-)

jasonacox commented 1 year ago

However, I'm not convinced that the "skipping" you mention above would make a real difference...

That's fair. I choose that path and have never had an account expire (several years now). However, I may be in a obsolete clause. I recently created a new one (several months ago) and followed that same path. It has not expired yet, but time will tell. As you mention, there is definitely a lot of "volatility". :)

BenoitVH commented 1 year ago

Just to be sure we're on the same page: it's not the Tuya account that had expired; it's the "Cloud Project" that I created. I guess accounts do not expire?

jasonacox commented 1 year ago

Thanks, yes, same page. I'm referring to my cloud projects. I do wish there was an easier path.

To be fair, I understand why Tuya would seek to charge for these. I suspect their "cloud" costs are funded by licensing and these developer subscriptions. From a business perspective, the issue I see with IoT is that they all tie to a centralized cloud platform that has ongoing operational costs that must be funded by something. A one-time payment for the device won't cover costs long term. Some IoT product vendors are figuring out ways to sell subscriptions to cover that (and make a profit) for access to historic data or other cloud enabled feature. Personally, I would like to see more IoT products offer distributed or local access only options (which is essentially the reason I started TinyTuya for Tuya devices) and depend less on a centralized platform. Sadly, at least for Tuya, they still all use/need the cloud even if it is just for the local key creation. Sorry, went a bit long there...

Thanks again for documenting what you are seeing. I know this will help others.

uzlonewolf commented 1 year ago

I agree that things are constantly changing with them so it can change at any moment, but for what it's worth I did the "skip this step" thing and my IoT-Core access did not expire. My account information page says "Account Type: Not selected"

jasonacox commented 1 year ago

Thanks @uzlonewolf - I do think the "skip this step" could be key. Also, I only select "IoT Core" and "Authorization Token Management" API services.

image

Did you select others? I'm wondering if some of the expiration issues some see is related to selecting other APIs that show "limited edition":

image

I do think I will update the README to highlight the "Skip" step, just in case that helps.

BenoitVH commented 1 year ago

Thanks @jasonacox and @uzlonewolf for the insights. You may be into something ;-). As for me, it's too late, I'm stuck with "developer" for now. I'll let you know in 6 months time what happens next!