hue lua app
Signed-off-by: Michael <michael.lindman@gmail.com>
This commit is contained in:
parent
4ea3244e48
commit
22d331e644
59
hue.lua
Executable file
59
hue.lua
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env lua
|
||||||
|
|
||||||
|
local http = require("socket.http")
|
||||||
|
local ltn12 = require"ltn12"
|
||||||
|
local lunajson = require 'lunajson'
|
||||||
|
|
||||||
|
local addr = "http://10.0.30.24/api/"
|
||||||
|
local apikey = ""
|
||||||
|
|
||||||
|
function Request(path, req)
|
||||||
|
local resp = {}
|
||||||
|
local body, statusCode, respheaders, statusText = http.request {
|
||||||
|
method = "PUT",
|
||||||
|
url = path,
|
||||||
|
source = ltn12.source.string(req),
|
||||||
|
headers = {
|
||||||
|
["content-type"] = "application/json",
|
||||||
|
["content-length"] = tostring(#req)
|
||||||
|
},
|
||||||
|
sink = ltn12.sink.table(resp)
|
||||||
|
}
|
||||||
|
resp = table.concat(resp)
|
||||||
|
print(resp)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Get(path)
|
||||||
|
local resp = {}
|
||||||
|
local body, statusCode, respheaders, statusText = http.request {
|
||||||
|
method = "GET",
|
||||||
|
url = path,
|
||||||
|
headers = {
|
||||||
|
["content-type"] = "application/json",
|
||||||
|
},
|
||||||
|
sink = ltn12.sink.table(resp)
|
||||||
|
}
|
||||||
|
resp = table.concat(resp)
|
||||||
|
return lunajson.decode(resp)
|
||||||
|
end
|
||||||
|
|
||||||
|
local js = Get(addr..apikey.."/lights/4/")
|
||||||
|
print(js["state"])
|
||||||
|
|
||||||
|
function LightsOn(on)
|
||||||
|
Request(addr..apikey.."/lights/4/state", "{\"on\":"..on.."}")
|
||||||
|
end
|
||||||
|
|
||||||
|
function LightsBri(bri)
|
||||||
|
Request(addr..apikey.."/lights/4/state", "{\"on\": true, \"bri\":"..bri.."}")
|
||||||
|
end
|
||||||
|
|
||||||
|
function Round(x)
|
||||||
|
return x>=0 and math.floor(x+0.5) or math.ceil(x-0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
if arg[1] == "on" then
|
||||||
|
LightsOn(arg[2])
|
||||||
|
elseif arg[1] == "bri" then
|
||||||
|
LightsBri(Round(arg[2]/100*255))
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user