Posts: 347
	Threads: 79
	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: 8410
	Threads: 45
	Joined: Jun 2015
	
Reputation: 
481
	 
	
	
		MQTT integration is the easiest solution by far
	
	
	
	
		
	
 
 
	
	
	
		
	Posts: 26
	Threads: 1
	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: 8410
	Threads: 45
	Joined: Jun 2015
	
Reputation: 
481
	 
	
	
		Check that your LM has correct timezone set. Post your script code.
	
	
	
	
		
	
 
 
	
	
	
		
	Posts: 26
	Threads: 1
	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: 8410
	Threads: 45
	Joined: Jun 2015
	
Reputation: 
481
	 
	
	
		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: 26
	Threads: 1
	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: 26
	Threads: 1
	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.