Version 1.14
229 downloads
It's a "simple" QA that relies on the QuickAppChildren to realise the Hue devices.
This means that the user interfaces are limited to what are supported by the child app classes.
Supported Hue device classes:
ZLLSwitch.
Hue switch with 4 buttons. Creates centralSceneEvents similar to a Fibaro keyFob (com.fibaro.remoteController)
The interpretation is
keyId = hueKeyValue // 1000
keyAttribute = ({"Pressed","HeldDown","Released","Released"})[hueKeyValue % 1000 +1]
It also supports setValue('value',value) to simulate a key press.
ZLLTemperature.
Hue temperature sensor. Behaves like a standard fibaro.com.temperatureSensor.
ZLLLightLevel.
Hue light sensor. Behaves like a standard fibaro.com.lightSensor.
The device quickAppVariables 'daylight' and 'dark' is updated with resp. Hue attribute.
ZLLPresence
Hue presence sensor. Behaves like a standard fibaro.com.motionSensor.
Extended color light
Hue RGB light. Behaves like a fibaro.com.philipsHueLight.
supports:
fibaro.call(<id>,"turnOn")
fibaro.call(<id>,"turnOff")
fibaro.call(<id>,"toggle")
fibaro.call(<id>,"setValue",value) -- dim value 0..100
If the value is a table the value is sent directly to the Hue light as a Hue property table.
Ex. fibaro.call(<id>,"setValue",{effect='colorloop',bri=50})
fibaro.call(<id>,"setValue",{startup={customsettings={xy={0.73500005089041,0.26499994910959}}}})
fibaro.call(<id>,"setColor",red, green,blue). -- color 0..255
fibaro.call(<id>,"changeBrightness") -- brightness 0..255
fibaro.call(<id>,"changeHue") -- 0..65535
fibaro.call(<id>,"changeSaturation") -- 0..255
fibaro.call(<id>,"startLevelIncrease")
fibaro.call(<id>,"startLevelDecrease")
fibaro.call(<id>,"stopLevelChange")
fibaro.call(<id>,"toggleDim",<boolean>) -- Toggle dim direction. true with 'stop'
The device quickAppVariable 'state' is updated with the Hue state
Dimmable light
Hue dimmable white light. Behaves like a fibaro.com.multilevelSwitch.
supports:
fibaro.call(<id>,"turnOn")
fibaro.call(<id>,"turnOff")
fibaro.call(<id>,"toggle")
fibaro.call(<id>,"setValue",value) --- dim value 0..100
If the value is a table the value is sent directly to the Hue light as a Hue property table.
fibaro.call(<id>,"changeBrightness") -- brightness 0..255
fibaro.call(<id>,"startLevelIncrease")
fibaro.call(<id>,"startLevelDecrease")
fibaro.call(<id>,"stopLevelChange")
fibaro.call(<id>,"toggleDim",<boolean>) -- Toggle dim direction. true with 'stop'
The device quickAppVariable 'state' is updated with the Hue state
Color temperature light
Mapped as a Dimmable light
Color light
Hue color light. Behaves like a fibaro.com.colorController.
supports:
fibaro.call(<id>,"turnOn")
fibaro.call(<id>,"turnOff")
fibaro.call(<id>,"toggle")
fibaro.call(<id>,"setValue",value) --- dim value 0..100
If the value is a table the value is sent directly to the Hue light as a Hue property table.
fibaro.call(<id>,"setColor",red, green,blue). -- color 0..255
fibaro.call(<id>,"changeBrightness") -- brightness 0..255
fibaro.call(<id>,"startLevelIncrease")
fibaro.call(<id>,"startLevelDecrease")
fibaro.call(<id>,"stopLevelChange")
The device quickAppVariable 'state' is updated with the Hue state
fibaro.call(<id>,"toggleDim",<boolean>) -- Toggle dim direction. true with 'stop'
Room
Hue light group.
Behaves like a fibaro.com.multilevelSwitch.
fibaro.call(<id>,"turnOn")
fibaro.call(<id>,"turnOff")
fibaro.call(<id>,"toggle")
fibaro.call(<id>,"setValue",value) --- dim value 0..100
If the value is a table the value is sent directly to the Hue group as a Hue property table.
fibaro.call(<id>,"changeBrightness") -- brightness 0..255
fibaro.call(<id>,"startLevelIncrease")
fibaro.call(<id>,"startLevelDecrease")
fibaro.call(<id>,"stopLevelChange")
fibaro.call(<id>,"setScene",<Hue scene ID or scene name>)
fibaro.call(<id>,"toggleDim",<boolean>) -- Toggle dim direction. true with 'stop'
Hue CLIPS devices
CLIPPresence => com.fibaro.motionSensor class='ZLLPresence'
CLIPTemperature. => com.fibaro.temperatureSensor class='ZLLTemperature'
CLIPPressure => com.fibaro.binarySwitch class='BinarySwitch'
CLIPHumidity => com.fibaro.humiditySensor. class='Humidity'
CLIPOpenClose. => com.fibaro.binarySensor. class='BinarySensor'
The startLevelIncrease, startLevelDecrease, and stopLevelChange makes it possible to bind a remote controller that support centralSceneEvent to dim when a button is held down and stop dimming when the button is released.
The lights store their Hue values in a quickAppVariable 'state'.
This can be retrieved like below and ex. used to set default startup values for Hue lights...
local function getVar(id,name)
local vars = api.get("/devices/"..id).properties.quickAppVariables or {}
for _,v in ipairs(vars) do
if v.name==name then return v.value end
end
end
function QuickApp:main()
state = getVar(1435,"state") -- retrieve current color
fibaro.call(1435,{startup={customsettings={xy=state.xy}}) -- set as default startup
end