In the example I gave I set the Boolean to FALSE two times. One should have set it to TRUE and the other to FALSE.
The rule won't run any less but it will consume less resources because if you're not in one of those modes the rule will exit instead of evaluating the other conditions.
You need the boolean because if it isn't there the Repeat will run every time the temp changes. This way the boolean makes sure it only runs once when the temp initially becomes >= 35
I didn't do this for a reason, had I, a better way would be to do a simple condition of NOT that then exit rule that is the most efficient BUT it creates a edge case the same as yours does. If it repeats and the mode changes to one of the ones he doesn't want the repeat to happen, it will keep repeating none stop until the mode is returned and the rule is evaluated to false.
Temperature changed
IF (mode X AND temp Y AND private boolean true) THEN
Set Private Boolean to F
IF (door closed) repeat every 5 mins (note no THEN because it's a simple condition)
Notify
END-REP
ELSE-IF (temperature Z OR door open) THEN
Stop repeating actions
Set private boolean to T
END IF
@stevebott123 if this works as expected then, apply that to the rest of the rules that are similar. Then we can work on the fan one, that's abit more complex and I will need to be at the PC for.