Hi All
I am using an IR blaster to turn on my split system. Without the private boolean the rule keeps triggering each time office motion is active.
what do i want it to do?
Trigger only once every say 30 mins.
What's happening
The private boolean is always remaining true. So it is not triggering. I switched the setup around as perhaps it can't first trigger and it triggered then but it is still not setting the boolean to false after it's run.
What am I doing wrong here? is there a simpler way to make a rule run only once every 30 mins?
thank you
IF (Office Motion, Office Motion 2 any active(T) AND
Time between 3:00 AM AEST and 7:00 PM AEST(T) AND
Day in Monday, Tuesday, Wednesday, Thursday, Friday(T) AND
Temperature of Office Motion(10.49) is < 17.0(T) AND
Private Boolean is false(F) [FALSE]) THEN
SendStoredCode(On) on Office Split
SendStoredCode(Heating_Mode) on Office Split --> delayed: 0:00:03
SendStoredCode(Temp_23) on Office Split --> delayed: 0:00:04
Cancel Delayed Actions
Set Private Boolean True
Set Private Boolean False --> delayed: 0:30:00
END-IF
ELSE-IF (Office Motion, Office Motion 2 all inactive(F) [FALSE]) THEN
SendCode(Off) on Office Split --> delayed: 0:20:00 (cancelable)
END-IF
We need to see what is triggering the currently to see if the Boolean is operating correctly.
You can select "Periodic Schedule" in the trigger of the rule.
Ah right well right now it's only triggered by motion

Something looks weird with your rule. I see
IF THEN
END-IF
ELSE-IF
END-IF
Not sure how you can get the ELSE-IF after the END-IF.
right ..I thought it would skip the end if it the first if doesn't action
i'll try removing it the end if thank you
I would reverse the PB logic of your rule and it should run.
IF (Office Motion, Office Motion 2 any active AND
Time between 3:00 AM AEST and 7:00 PM AEST AND
Day in Monday, Tuesday, Wednesday, Thursday, Friday AND
Temperature of Office Motion is < 17.0 AND
Private Boolean is true) THEN
SendStoredCode() on Office Split
SendStoredCode() on Office Split --> delayed: 0:00:03
SendStoredCode() on Office Split --> delayed: 0:00:04
Cancel Delayed Actions
Set Private Boolean False
Set Private Boolean True --> delayed: 0:30:00
ELSE-IF (Office Motion, Office Motion 2 all inactive(F) [FALSE]) THEN
SendCode() on Office Split --> delayed: 0:20:00 (cancelable)
END-IF
I converted all by Private Boolean rule to use Local Boolean Variables. This allowed me to change the boolean value easily and helped me when debugging my rules.