You say your rule isnāt working right, and you say that the private boolean didnāt get set to false. But the logs show that it did get set to false. If it stayed true, your rule would never run again, because your āIFā statement would stop it. You would just see a bunch of skips in the log, and it would never run any of the lines. So the boolean is going false. You can check that by looking at the ruleās status page. Click on the gear next to the ruleās name. On that page, under āApplication Stateā look for āPrivateā. It will show true or false.
Regarding the line that waits for the power to drop below 20 you saidā¦
The logs show that when the 2 hr and 5 minute delay was done, it did process the wait line - but at that point the power level was already at 5, so it didnāt wait for anything, the logs say ā(not waiting)ā.
It did the same thing on the line that looked for presence. The presence was true so it didnāt wait. So the rule worked ok, except at the end it got a POP error. That is from all of the re-triggering. When the boolean was true, your IF statement successfully kept the lines between the IF and END-IF from running, but the re-triggering still messed up the rule and caused an error.
So your rule itself is fine, and it is working ok. You donāt need to do anything with the part that waits for power to go below 20, you just need to stop the re-triggering when the power is going over 1000.
That is real easy with a real short second rule. Just a one-line action to set the private boolean of your main rule to True.
Dishwasher Trigger
Trigger:
Power level of dishwasher reports > 1000
Action:
Rule Boolean True: Dishwasher Done
Now change your main rule, you wonāt need the IF statement now.
Dishwasher done
Trigger:
Private boolean reports true
Actions:
Delay 2:05:00
Wait for condition: Power Level of Dishwasher is < 20
Wait for condition: Presence Comet present TRUE
(send notification here)
Set Private Boolean False
No matter how many times the dishwasher power level triggers Dishwasher Trigger, once the PB is set to true it canāt be set to true again until it is set to false. So that means only one trigger for the main rule, and when the dishwasher is done, the main rule sets it back to false, so it can be used the next time you run the dishwasher.
One word of caution. Whenever you are setting something in a rule that can trigger that same rule, you need to be very sure there is some sort of delay. If you make any changes to this that would set the PB false and then back to true without any delay in between, then you will get a runaway superfast loop and it will lock up your hub. May or may not be recoverable.