Hey guys,
Ive got the following rule that I can’t figure out how to make the if condition work with a variable.
Any help would be amazing!
if (VEnsuite_Main_Room_Lights == 1)
if (VEnsuite_Main_Room_Lights ==0)
var Number Ensuite_Hue_Temp
var Number Ensuite_Hue_Brightness
var Number VEnsuite_Main_Room_Lights
var Number Ensuite_Timeout_Minutes_Use
var Timer Ensuite_Lights_Timer = null
rule "Auto Ensuite Lights"
when
Item Ensuite__Motion changed from OFF to ON
then
logInfo("Auto Ensuite Lights", "Rule triggered")
if (now.getHour <6) {
logInfo("Auto Ensuite Lights", "Time is after 0600")
Ensuite_Timeout_Minutes_Use = Ensuite_Timeout_Minutes_Night
Ensuite_Hue_Temp = 60
Ensuite_Hue_Brightness = 20
VEnsuite_Main_Room_Lights = 1
}
if (now.getHour <9) {
Ensuite_Timeout_Minutes_Use = Ensuite_Timeout_Minutes_Day
Ensuite_Hue_Temp = 60
Ensuite_Hue_Brightness = 100
VEnsuite_Main_Room_Lights = 1
}
if (now.getHour <22) {
logInfo("Auto Ensuite Lights", "Time is after 2200")
Ensuite_Timeout_Minutes_Use = Ensuite_Timeout_Minutes_Day
Ensuite_Hue_Temp = 100
Ensuite_Hue_Brightness = 1
VEnsuite_Main_Room_Lights = 0
}
if (now.getHour >6) {
logInfo("Auto Ensuite Lights", "Time is after 2200 and before 7")
Ensuite_Timeout_Minutes_Use = Ensuite_Timeout_Minutes_Day
Ensuite_Hue_Temp = 100
Ensuite_Hue_Brightness = 1
VEnsuite_Main_Room_Lights = 0
}
if ((Ensuite_Lights_Timer !==null) && (Someones_Home.state == ON)) {
logInfo("Auto Ensuite Lights", "Turning on lights and rescheduling timer")
Ensuite_Lights_Timer.reschedule(now.plusMinutes(Ensuite_Timeout_Minutes_Use ))
if (VEnsuite_Main_Room_Lights.state == 0) {
Ensuite__Main_Lights.sendCommand(OFF)
Ensuite_Middle.sendCommand(Ensuite_Hue_Brightness)
}
if (VEnsuite_Main_Room_Lights.state == 1) {
Ensuite__Main_Lights.sendCommand(ON)
Ensuite_Left.sendCommand(Ensuite_Hue_Brightness)
Ensuite_Middle.sendCommand(Ensuite_Hue_Brightness)
Ensuite_Right.sendCommand(Ensuite_Hue_Brightness)
}
Ensuite_Right_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Middle_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Left_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Lights_Timer = createTimer(now.plusMinutes(Entry_Timeout_Minutes_Use ), [|
])
if ((Ensuite_Lights_Timer === null) && (Someones_Home.state == ON)) {
logInfo("Auto Ensuite Lights", "Turning on lights and setting timer")
if (VEnsuite_Main_Room_Lights == 0) {
Ensuite__Main_Lights.sendCommand(OFF)
Ensuite_Middle.sendCommand(Ensuite_Hue_Brightness)
}
if (VEnsuite_Main_Room_Lights == 1) {
Ensuite__Main_Lights.sendCommand(ON)
Ensuite_Left.sendCommand(Ensuite_Hue_Brightness)
Ensuite_Middle.sendCommand(Ensuite_Hue_Brightness)
Ensuite_Right.sendCommand(Ensuite_Hue_Brightness)
}
Ensuite_Right_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Middle_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Left_Temp.sendCommand(Ensuite_Hue_Temp)
Ensuite_Lights_Timer = createTimer(now.plusMinutes(Entry_Timeout_Minutes_Use ), [|
])
Ensuite_Lights_Timer = createTimer(now.plusMinutes(Ensuite_Timeout_Minutes_Use ), [|
logInfo("Auto Ensuite Lights", "Timer finished Turning Lights Off")
Ensuite__Main_Lights.sendCommand(OFF)
Ensuite_Left.sendCommand(OFF)
Ensuite_Middle.sendCommand(OFF)
Ensuite_Right.sendCommand(OFF)
Ensuite_Lights_Timer = null
])
}}
end