Posts: 321
Threads: 72
Joined: Jan 2021
Reputation:
0
hello
How could we connect IoT Products which compatible with the Tuya app with OUR LM, SL, HL?
is it possible and How.
regards.
Best Regards,
Posts: 7758
Threads: 42
Joined: Jun 2015
Reputation:
447
MQTT integration is the easiest solution by far
Posts: 15
Threads: 0
Joined: Mar 2017
Reputation:
0
Hello
I am trying to reach to my TUYA developer account via API.
Same API GET code easily accesses from Postman but when I try from logic machine I am receiving a time error.
Normally this happens when logic machine has wrong time and date but it seems the NTP and all settings fine.
Could you please give some guidance?
Best
Turker
* table:
["t"]
* number: 1729423258660
["msg"]
* string: request time is invalid
["code"]
* number: 1013
["success"]
* bool: false
["tid"]
* string: 617cb0ab8ed511efb25f867693c53a33
Posts: 7758
Threads: 42
Joined: Jun 2015
Reputation:
447
Check that your LM has correct timezone set. Post your script code.
Posts: 15
Threads: 0
Joined: Mar 2017
Reputation:
0
Thanks for quick answer. Time Zone is Europe/Madrid. Here is the code
https = require('ssl.https')
json = require('json')
ltn12 = require('ltn12')
token = '***********************'
--tuya
tbl = {}
res, code = https.request({
url = 'https://openapi.tuyaeu.com/v1.0/devices/***8dc756f81122a3al***/status',
method = 'GET',
headers = {
['authorization'] = 'Bearer ' .. token,
['content-type'] = 'application/json',
},
sink = ltn12.sink.table(tbl),
})
log(os.date('%c'))
if res and code == 200 then
resp = table.concat(tbl)
resp = json.pdecode(resp)
log(resp)
else
log(res, code)
end
Posts: 7758
Threads: 42
Joined: Jun 2015
Reputation:
447
I don't see any timestamp being passed to the request in your code. Do you have documentation on how the API calls should be made?
Posts: 15
Threads: 0
Joined: Mar 2017
Reputation:
0
Hello
I think after your guidance I have progressed on the time. Now the issue is I need to sign the GET code with HMAC-SHA256
How can we add a "crypto" library so this code can work:
local sign = crypto.hmac("sha256", str, secret):upper()
Thank you
Posts: 15
Threads: 0
Joined: Mar 2017
Reputation:
0
25.10.2024, 13:41
(This post was last modified: 25.10.2024, 13:41 by Ozturker.)
Thank you.
it worked but I think the ciphertext is not correct --> Here is the response string: {"code":1004,"msg":"sign invalid","success":false,"t
local ciphertext = client_id .. access_token .. t .. nonce .. identifier .. stringToSign
What is the identifer for Wiser?
identifier: The custom signature content for app authorization. When the authorization type is Android, you need to concatenate SHA1 and Application ID to form an identifier without a separator. For other types, you can directly use the customized Bundle Identifier.