Hi,
I succesfully set up a Scene Switch to control an RGB Light Strip.
However, what I would like to achieve is that if I turn it on it cyles through different preset Scenes
I am using the Scene Switch as follows:
rule "Kitchen Switch"
when Item Zwave_Switch_SceneNumber received update
then
switch(Zwave_Switch_SceneNumber.state.toString) {
case "1.0": {
Kitchen_LightStrip_Toggle.sendCommand(ON)
}
case "3.0": {
Kitchen_LightStrip_Toggle.sendCommand(OFF)
}
}
end
The result should be something like:
rule "Kitchen Switch"
//Light Setting 1
Kitchen_LightStrip_Color.sendCommand("290,88,9")
Kitchen_LightStrip_Dimmer.sendCommand("50")
//Light Setting 2
Kitchen_LightStrip_Color.sendCommand("230,88,9")
Kitchen_LightStrip_Dimmer.sendCommand("50")
//Light Setting 3
Kitchen_LightStrip_Color.sendCommand("230,88,9")
Kitchen_LightStrip_Dimmer.sendCommand("100")
when Item Zwave_Switch_SceneNumber received update
then
switch(Zwave_Switch_SceneNumber.state.toString) {
case "1.0": {
if Kitchen_LightStrip_Toggle is OFF send Command ON
Set light to the last light setting it was at
if Kitchen_LightStrip_Toggle is ON and set to Light Settiung 1
Switch from Light Setting 1 to Light Setting 2
if Kitchen_LightStrip_Toggle is ON and set to Light Settiung 2
Switch from Light Setting 2 to Light Setting 3
if Kitchen_LightStrip_Toggle is ON and set to Light Settiung 3
Switch from Light Setting 3 to Light Setting 1
}
case "3.0": {
Kitchen_LightStrip_Toggle.sendCommand(OFF)
}
}
end
How do I accomplish what I am looking for??
Thanks for the help!
MDAR
(Stuart Hanlon, UK importer of Velbus hardware)
2
Hi
I think I’ve got something very similar running happily.
Introduce a virtual item “scenenumber” of Number type and change that on every switch toggle, then change your rule to get triggered on changes to that new item.
Thank you all for your input. This is what I came up with:
var Number kitchenScene = 1
val Number maxKitchenScene = 3
rule "Kitchen Switch"
when
Item Zwave_Switch_SceneNumber received update
then
switch(Zwave_Switch_SceneNumber.state) {
case 1.0: {
if(Kitchen_LightStrip_Toggle.state==OFF)
{Kitchen_LightStrip_Toggle.sendCommand(ON)
else {
if (kitchenScene >= maxKitchenScene) {
kitchenScene = 1
Kitchen_LightStrip_SceneNumber.postUpdate(kitchenScene)}
else{
kitchenScene = kitchenScene + 1
Kitchen_LightStrip_SceneNumber.postUpdate(kitchenScene)}
}}
case 3.0: {
Kitchen_LightStrip_Toggle.sendCommand(OFF)}
case 2.0: {
Kitchen_SinkLight.sendCommand(ON) }
case 4.0: {
Kitchen_SinkLight.sendCommand(OFF)}
}
end
rule "Scene Selector Kitchen Strip"
when
Item Kitchen_LightStrip_SceneNumber changed
then
switch (Kitchen_LightStrip_SceneNumber.state) {
case 1: {
logInfo("Kitchen Switch", "Scene 1")
//Some color
}
case 2: {
logInfo("Kitchen Switch", "Scene2")
//Some color
}
case 3: {
logInfo("Kitchen Switch", "Scene 3")
//Some color
}
}
end
It is working. I hope that this is the correct way to do it.