Function for RGBW/RGBWAF Type 8 dimmer
Code:
function setRGBWAF(gateway, addr, r, g, b, w, a, f)
if r == nil then r = 0 end
if g == nil then g = 0 end
if b == nil then b = 0 end
if w == nil then w = 0 end
if a == nil then a = 0 end
if f == nil then f = 0 end
res, err = dalicmd(gateway, 'setdtr0', { addrtype = 'short', address = addr, value = math.min(r, 254) })
if err then return nil, 'setdtr0 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr1', { addrtype = 'short', address = addr, value = math.min(g, 254) })
if err then return nil, 'setdtr1 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr2', { addrtype = 'short', address = addr, value = math.min(b, 254) })
if err then return nil, 'setdtr2 error: ' .. err end
res, err = dalicmd(gateway, 'enabledevicetype', { addrtype = 'short', address = addr, value = 8 })
if err then return nil, 'enabledevicetype error: ' .. err end
res, err = dalicmd(gateway, 'setrgbdimlevel', { addrtype = 'short', address = addr })
if err then return nil, 'setrgbdimlevel error: ' .. err end
res, err = dalicmd(gateway, 'setdtr0', { addrtype = 'short', address = addr, value = math.min(w, 254) })
if err then return nil, 'setdtr0 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr1', { addrtype = 'short', address = addr, value = math.min(a, 254) })
if err then return nil, 'setdtr1 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr2', { addrtype = 'short', address = addr, value = math.min(f, 254) })
if err then return nil, 'setdtr2 error: ' .. err end
res, err = dalicmd(gateway, 'enabledevicetype', { addrtype = 'short', address = addr, value = 8 })
if err then return nil, 'enabledevicetype error: ' .. err end
res, err = dalicmd(gateway, 'setwafdimlevel', { addrtype = 'short', address = addr })
if err then return nil, 'setwafdimlevel error: ' .. err end
res, err = dalicmd(gateway, 'enabledevicetype', { addrtype = 'short', address = addr, value = 8 })
if err then return nil, 'enabledevicetype error: ' .. err end
res, err = dalicmd(gateway, 'activate', { addrtype = 'short', address = addr })
return res, err
end
function saveSceneRGBWAF(gateway, addr, scene, arc_level, r, g, b, w, a, f)
if r == nil then r = 0 end
if g == nil then g = 0 end
if b == nil then b = 0 end
if w == nil then w = 0 end
if a == nil then a = 0 end
if f == nil then f = 0 end
if arc_level == nil then arc_level = 254 end
res, err = dalicmd(gateway, 'setdtr0', { addrtype = 'short', address = addr, value = math.min(r, 254) })
if err then return nil, 'setdtr0 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr1', { addrtype = 'short', address = addr, value = math.min(g, 254) })
if err then return nil, 'setdtr1 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr2', { addrtype = 'short', address = addr, value = math.min(b, 254) })
if err then return nil, 'setdtr2 error: ' .. err end
res, err = dalicmd(gateway, 'enabledevicetype', { addrtype = 'short', address = addr, value = 8 })
if err then return nil, 'enabledevicetype error: ' .. err end
res, err = dalicmd(gateway, 'setrgbdimlevel', { addrtype = 'short', address = addr })
if err then return nil, 'setrgbdimlevel error: ' .. err end
res, err = dalicmd(gateway, 'setdtr0', { addrtype = 'short', address = addr, value = math.min(w, 254) })
if err then return nil, 'setdtr0 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr1', { addrtype = 'short', address = addr, value = math.min(a, 254) })
if err then return nil, 'setdtr1 error: ' .. err end
res, err = dalicmd(gateway, 'setdtr2', { addrtype = 'short', address = addr, value = math.min(f, 254) })
if err then return nil, 'setdtr2 error: ' .. err end
res, err = dalicmd(gateway, 'enabledevicetype', { addrtype = 'short', address = addr, value = 8 })
if err then return nil, 'enabledevicetype error: ' .. err end
res, err = dalicmd(gateway, 'setwafdimlevel', { addrtype = 'short', address = addr })
if err then return nil, 'setwafdimlevel error: ' .. err end
res, err = dalicmd(gateway, 'setdtr0', { addrtype = 'short', address = addr, value = arc_level })
if err then return nil, 'setdtr0 error: ' .. err end
res, err = dalicmd(gateway, 'storescene', { addrtype = 'short', address = addr, value = scene })
if err then return nil, 'storescene error: ' .. err end
res, err = dalicmd(gateway, 'storescene', { addrtype = 'short', address = addr, value = scene })
return res, err
end