73 lines
1.9 KiB
Lua
73 lines
1.9 KiB
Lua
-- ~/domoticz/scripts/lua/script_device_increaselight.lua
|
|
-- On pressing a single button, script reads current light level
|
|
-- and increases by 1 dimming level
|
|
|
|
|
|
function dump(o)
|
|
if type(o) == 'table' then
|
|
local s = '{ '
|
|
for k,v in pairs(o) do
|
|
if type(k) ~= 'number' then k = '"'..k..'"' end
|
|
s = s .. '['..k..'] = ' .. dump(v) .. ','
|
|
end
|
|
return s .. '} '
|
|
else
|
|
return tostring(o)
|
|
end
|
|
end
|
|
|
|
function os.capture(cmd, raw)
|
|
local f = assert(io.popen(cmd, 'r'))
|
|
local s = assert(f:read('*a'))
|
|
f:close()
|
|
if raw then return s end
|
|
s = string.gsub(s, '^%s+', '')
|
|
s = string.gsub(s, '%s+$', '')
|
|
s = string.gsub(s, '[\n\r]+', ' ')
|
|
return s
|
|
end
|
|
decodeurjson = (loadfile "/home/souti/domoticz/scripts/lua/JSON.lua")()
|
|
|
|
commandArray = {}
|
|
-- Path to curl
|
|
local curl = '/usr/bin/curl'
|
|
-- Device ID
|
|
local idx = '493'
|
|
--serveur domoticz
|
|
dz = "192.168.1.3:81"
|
|
|
|
local cmd = curl .. ' "http://'..dz..'/json.htm?type=devices&rid='..idx..'"'
|
|
local json = os.capture(cmd , false)
|
|
donneesJson = decodeurjson:decode(json)
|
|
print(dump(donneesJson))
|
|
level = donneesJson['result']
|
|
print(dump(level))
|
|
print('json: ' .. donneesJson['result'][1]["Level"])
|
|
|
|
|
|
|
|
commandArray = {}
|
|
-- No of dimming steps of device
|
|
MaxDimLevel = 100
|
|
step = 100.0 / MaxDimLevel
|
|
increment = 10
|
|
button = 'dimmapp'
|
|
light = 'Appliques'
|
|
if (devicechanged[button]) then
|
|
-- Need to test for not "Off" rather than "On", as when light
|
|
-- on svalue can be "On" or "Set Level"
|
|
if ('Off' ~= string.len(otherdevices_svalues[light])) then
|
|
local Level = tonumber(Level)
|
|
if (Level < MaxDimLevel) then
|
|
Level = step * Level
|
|
newlevel = mat.ceil(level + (increment * step))
|
|
print('Increase ' .. light .. ' from ' .. math.ceil(Level) .. '% to ' .. newlevel .. '%')
|
|
commandArray[light]='Set Level ' .. newlevel
|
|
end
|
|
end
|
|
end
|
|
|
|
return commandArray
|
|
|
|
|