Need help thinking through the logic of this problem

I use the Laundry Manager app for sending myself and my wife pushover notifications when the laundry finishes. Right now I just use the built in notification feature of the app but what can happen is we get a notification that the washer/dryer has finished and the other one is still running.

The app creates a virtual device and it has a custom attribute called status. The status can be idle, running, or finished. However, to use idle, you need some sort of way to let the app know that you've removed the laundry. We don't really have an easy way to do that. (my wife says there is no way she'd remember to use a button on a dashboard and she hates talking to Google). So our devices just stay in the finished status until they start running again. That'll be important in a moment.

The actual logic is quite simple. Basically if just one is running and finishes, send a notification saying "%device% finished." If one finishes and the other is running, wait for the other to finish and send a notification saying "Washer & Dryer finished."

My first thought was to make a single rule that triggers when either finishes. Then a condition would check if anything was still running. If so, there would be a wait for event. Once that finishes there is a notification that "Washer & Dryer finished" sent. However, there is not a way to differentiate devices when just one is running and triggered the rule. Even if we are just starting laundry, so just the washer has finished, that status of the dryer will still be finished and not idle. So I can't check for the finished state. I deleted this rule before I thought to take a screenshot of it.

So then I broke it up into two rules. One triggers if the washer finishes. if the dryer is still running, wait for it to finish. Send a notification that "Washer & Dryer finished". Else, send just "Washer has finished". Exact same rule for the dryer. The problem with this, is that now the washer and dryer both kick off their rules. So when the dryer finishes (which takes less time than the washer) it will wait for the washer to finish and then send a notification saying "Washer & Dryer finished". But the rule for when the washer finishes will send a notification at the exact same time saying "Washer has finished". So now I end up with 2 notifications.

Screenshots of option 2 rules.

So the first option worked for when both devices were running, but not just 1. The second option works for a single device running, but not both. My wife says it's frustrating when she gets a notification that the washer has finished so she goes to do something with it and can't because the dryer is still running. I'm trying to eliminate that. I feel like this should be easily doable.

1 Like

Tl;Dr

So your end goal is:

If washer finishes but the dryer is running, then wait for the dryer to finish and push an "everything is done" notification once the dryer ends. Otherwise, push a "washer finishes" notification.

If dryer finishes and washer is not running, then push a notification that the dryer is done.

Is that correct?

So I reworked things a bit using hub variables. I think this will work. I have a rule that triggers when either the washer or dryer become running. It sets the variables. It's very straightforward.

Now that I have the variables, I can easily test for which device was running and send the appropriate message. Or at least I think. I'm pretty sure this will work. I'll know for sure next time we do laundry.

Download the Hubitat app