Hello, I am new to OpenHab so be kind!
I am playing with some Lifx bulbs, creating some lighting scenes using a number item, with a multi state switch. I have it working as expected, but I want to change the state of the multi state switch if the value of the dimmer item does not equal a particular value.
For example, I have 4 lighting scenes: OFF, LOW, HIGH, MANUAL. I want the switch to go to MANUAL when the value of a dimmer item does not equal the value of 0 (OFF), 60 (LOW), or 100 (HIGH). So if I change the dimmer manually to 80%, the multi state switch goes to MANUAL.
See my items, sitemap, and rules below. The problem seems to be my IF statement in the second rule. It doesn’t seem to be comparing the dimmer value correctly and every time the dimmer value is changed, it always executes the switch in the rule.
default.items
//Groups
// Kitchen Switch Groups
Group:Switch:OR(ON, OFF) gLightsKitchenCeiling
Group:Switch:OR(ON, OFF) gLightsKitchenDown
// Kitchen Dimmer Groups
Group:Dimmer:MAX gLightsKitchenDim
Group:Dimmer:MAX gLightsKitchenCeilingDim (gLightsKitchenDim)
Group:Dimmer:MAX gLightsKitchenDownDim (gLightsKitchenDim)
// Lighting Scenes
Number Lighting_Scenes
// Kitchen Lights
Switch Kitchen_Light_Ceiling "Kitchen Ceiling Light" <light> (gLightsKitchenCeiling) { channel="lifx:colorlight:D073D5227BD8:color" }
Switch Kitchen_Light_Down1 "Kitchen Ceiling Light" <light> (gLightsKitchenDown) { channel="lifx:colorlight:D073D5265800:color" }
Switch Kitchen_Light_Down2 "Kitchen Ceiling Light" <light> (gLightsKitchenDown) { channel="lifx:colorlight:D073D5262BB3:color" }
Switch Kitchen_Light_Down3 "Kitchen Ceiling Light" <light> (gLightsKitchenDown) { channel="lifx:colorlight:D073D5262E07:color" }
Dimmer Kitchen_Light_Ceiling_Dim "Kitchen Ceiling Light Dim" <light> (gLightsKitchenCeilingDim) { channel="lifx:colorlight:D073D5227BD8:color" }
Dimmer Kitchen_Light_Down1Dim "Kitchen Ceiling Light Dim" <light> (gLightsKitchenDownDim) { channel="lifx:colorlight:D073D5265800:color" }
Dimmer Kitchen_Light_Down2Dim "Kitchen Ceiling Light Dim" <light> (gLightsKitchenDownDim) { channel="lifx:colorlight:D073D5262BB3:color" }
Dimmer Kitchen_Light_Down3Dim "Kitchen Ceiling Light Dim" <light> (gLightsKitchenDownDim) { channel="lifx:colorlight:D073D5262E07:color" }
default.sitemap
sitemap default label="My first sitemap"
{
Frame label="Lighting Scenes" {
Switch item=Lighting_Scenes label="Scenes" icon="light" mappings=[0="off", 1="Low", 2="High", 3="Manual"]
}
Frame label="Lighting Control" {
Slider item=gLightsKitchenDim label="Kitchen Lights" icon="light"
Switch item=gLightsKitchenCeiling label="Ceiling" icon="light"
Text item=gLightsKitchenCeilingDim label="Ceiling [%d %%]" icon="light"
Switch item=gLightsKitchenDown label="Downlights" icon="light"
Text item=gLightsKitchenDownDim label="Downlights [%d %%]" icon="light"
}
}
default.rules
rule "Kitchen Scenes"
when
Item Lighting_Scenes received command
then
switch receivedCommand{
case 0:{
gLightsKitchenDownDim.sendCommand(0)
gLightsKitchenCeilingDim.sendCommand(0)
}
case 1:{
gLightsKitchenDownDim.sendCommand(60)
gLightsKitchenCeilingDim.sendCommand(0)
}
case 2:{
gLightsKitchenDownDim.sendCommand(100)
gLightsKitchenCeilingDim.sendCommand(100)
}
case 3:{
}
}
end
rule "Kitchen Lights Manual"
when
Item gLightsKitchenDim changed
then
if (gLightsKitchenDim !=0 || gLightsKitchenDim !=60 || gLightsKitchenDim != 100) {
switch Lighting_Scenes.postUpdate(3){
case 3:{
}
}
}
end