Temat jak najbardziej praktyczny zadany przez użytkownika, który z powodzeniem otwierał drzwi wpisując odpowiedni url w przeglądarce, ale bardzo chciał mieć wirtualny przycisk w centrali FIBARO HC3, który otworzy drzwi.
url: http://IP_centrali/fcgi/do?action=OpenDoor&UserName=******&Password=*****&DoorNum=1
Co w HC3 - Quick App przekłada się na kilka linijek kodu
local url = "http://192.168.1.180/fcgi/do?action=OpenDoor&UserName=*****&Password=*****&DoorNum=1"
self.http:request(url , {
options={
headers = {
Accept = "application/json"
},
checkCertificate = true,
method = "GET"
},
success = function(response)
print(response.status)
print(response.data)
end,
error = function(error)
print('error: ' .. json.encode(error))
end
})
I to jest ogólna zasada. Znasz url i wpisujesz go w przeglądarce, to z powodzeniem przeniesiesz to do sceny lub Quick App wykorzystując REST API metodę GET.
Proste prawda?
Coś znalazłem jak mobile_detector ale wszystko dla HC2 a potrzebuje dla HC3 jeszcze mam cos takiego .: ( może tym uda mi się odpytać konkretne IP czy jest w sieci.)
--[[
%% properties
%% globals
--]]
local function getMethod(requestUrl, successCallback, errorCallback)
local http = net.HTTPClient()
http:request(requestUrl, {
options = {
method = 'GET',
headers = {
},
},
success = successCallback,
error = errorCallback
})
end
local url = 'http://127.0.0.1:11111/api/devices/1' -- fill the url here
getMethod(url, function(resp)
print('Status: ' .. resp.status)
local device = json.decode(resp.data)
print(device.name)
end,
function(err)
print('error' .. err)
end
)