Niemand der Helfen kann?
Anbei ein Code der bereits funktioniert jedoch bekomme ich den restlichen Teil nicht hin.
Dieser code ist mit Bewilligung abgeändert vom Netatmo Plugin von Sankotronic aus dem Fibaro Forum.
Hier müsste als nächstens der access_token vom Header abgefangen werden und dann als Bearer mit dem access_token die location_id abgerufen werden.
Mit der location_id könnte ich dann den befehlt zum öffnen der Türe senden.
vielleicht hilft dies weiter damit jemand helfen könnte.
Anleitung
--[[
%% properties
%% autostart
%% globals
--]]
local client_id = ''
local client_secret = ''
local username = ''
local password = ''
local hc=fibaro if hc:countScenes()>1 then os.exit() end
-- other local settings
local token,request_body,location_id='','',''
local sourceTrigger=hc:getSourceTrigger()
local currentTime=os.time()
-- debug variables
local bsdebug,addebug,evdebug=false,false,true
-- debug colors
local crc,okc,ekc,erc,evc,xec,cnc,xcc,tmc,stc="green","lightgreen","violet","red","orange","yellow","cyan","pink","magenta","lightgray"
function logbug(color,message)for line in message:gmatch("[^\010\013]+")do local txt=line:gsub("([\038\060\062])",function(c)return"&#"..string.byte(c)..";"end) hc:debug(('<span style="color:%s">%s</span>'):format(color,txt))end end
function oAuth(nextFunction)
local request_body='grant_type=password&client_id='..client_id..'&client_secret='..client_secret..'&username='..username..'&password='..password
getResponseData('https://auth.nello.io/oauth/token/',request_body,
function(data)if(data.access_token~=nil)then token=data.access_token
logbug(okc,"Nello-oAuth connected...")
--getDevices()
else logbug(erc,"ERROR - Nello-oAuth NOT connected. Will try again on next run...")end end)
end
function getResponseData(url,body,func)
local http=net.HTTPClient()
http:request(url,{options={checkCertificate=false,method='POST',headers={['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8'},data=body,timeout=40000},
success=function(response)
ok,msg=pcall(function()chk_data=json.decode(response.data)if type(chk_data)~="table" then error()end end)
if ok then if evdebug then logbug(okc,"Get response data decoded")end func(json.decode(response.data))else
if string.match(response.data,"<html>")=="<html>"then if string.match(response.data,"503")=="503"then
logbug(erc,"503 Service Temporarily Unavailable. Try again later. Netatmo team.")
elseif string.match(response.data,"405")=="405"then logbug(erc,"Not allowed. Change back to .net")
else logbug(erc,"HTML page returned instead of json data")
end end end end})
end
oAuth()