Help needed - Wife wants an automation, I can't figure out how

Hi all!!

I need some help/inspiration with an automation my wife asked me yesterday. What she wants is a way to know if the dishes in the washer are clean or dirty. I’ve been thinking about it all day but can’t think of anything. For anyone that want’s to help the dishwasher has an Energy Meter (Power, Energy and Current entities for the dishwasher) and I also have a spear button that I could use if needed.

You need something to detect if it has been opened after washing, like a door sensor, unless you want to put a scale under it.

I thought the same but the problem with going this way is that the dishwasher we have it automatically opens the door every time it ends a washing cycle. Scale is also not an option cause it can only detect if the dishwasher is empty or not and not if the dishes are clean…I’m really confused with this one

if door open + temp is high?

Hmmm, but what if we are not home, the dishwasher ends washing, the door opens and after 30min the temperature is down again…I was thinking something like press a button every time we empty the dishwasher but that’s not an actual automation, we still have to remember to press that button…

To my knowledge there’s really no perfect solution to this. There are many ways to determine if the dishwasher has been run (smart dishwasher, watch its power usage, temperature or water sensor inside, etc.) But after that there’s no sensor I’m aware of that can tell you if the dishes in there are clean or not.

Is there a discernable pattern you use? For example:

Do you always empty the dishwasher before closing it again? Or do you close it once the temperature is down and empty it later? If you don’t close it until the dishwasher has been empty then you can use that - once the dishwasher has finished running (use one of the suggested ways to track that above) assume the dishes are clean until the door has been closed again (use a door/contact sensor to track that).

Alternatively weight could work if you can get a weight sensor under there that can reliably tell the difference between an empty and full dishwasher. That could be tricky since dishwashers are big, heavy and typically somewhat built into the kitchen. But if you can figure that out you can use the same idea as above - once the dishwasher has finished running, assume it is clean until the weight sensor says it is empty again. Probably your most reliable mechanism if its possible

Otherwise I’m not really sure how you could do better then a button tbh. But I do like the idea and would totally use it myself if someone figures out a way :smiley:

As Mike has suggested, work out the basic pattern of action you take when the dishes are washed.

Power monitor the cycle. Once finishes
Sensor state " dishes clean"

Then
To empty the clean dishes from the dishwasher you

  • open the door fully (sensor)
  • pull the draw(s) open to remove the dishes (sensor)

If the weight is at empty baseline
Sensor state “empty”

If you load dirty dishes and weight changes (either before closing draws/door or closing the dishwasher and loading it another day/time
Sensor state “dirty”

If you add dishes while in the dirty state (opening/closing draws/door state does not change until the power monitoring sensor has changed state through a cycle.

Couldn’t you put a humidity sensor in the ceiling above the machine?
This will detect when the machine opens after a wash.

Then as botts say put a sensor that detects fully open (probably under the machine somewhere) for: 2 minutes means it has been emptied?

No. That definitely won’t work. Per the OP the door opens immediately after it completes automatically to reduce temperature. The door opening after a cycle is not a sign that someone is emptying it

EDIt: oh I see what you’re saying. Tracking humidity is an alternative to tracking power to see when a cycle is done. And then fully open open means a human is there. My bad, that makes sense.

A scale would work, because you can track the changes over time, so after a wash you can see it get empty by the weight going down.
When it starts to go up then it is being filled again.

But can you really fit a scale under?
Usually they are quite snug fit.

In our home we look at the inside of the lid. If it’s clean then the dishes is also clean, if the lid is dirty then the dishes is also dirty.

If you are in the kitchen, it is pretty easy to look inside the machine…

A “solution” I saw in a workplace tea/coffee room was to make a sign, on a piece of paper. On one side it said “dirty” and the other it said “clean”. It was laminated and had a magnet to hold it to the front of the dishwasher. Turn it over as appropriate - when you turn it on, turn to “clean”, when you empty it turn it over to “dirty”.

Not quite a HA solution, but it works exceedingly well.

2 Likes

When a wash is finished the weight doesn’t go down. The weight goes down when it is manually emptied.

Stop, we are here to avoid simple solutions with over exaggerated technical means.I have already a solution in my head involving some ESP32. :rofl:

2 Likes

I think what Wally meant was that the weight would go down from the rinse water being removed.

1 Like

There is no solution to the problem as stated in the initial post. When is a dish clean? When it was in the machine during the last washing run and has not been removed from the machine?

Even that simple question (which has nothing to do with HA at all) is not free of problems: a dish can emerge dirty from the washing run for several reasons, such as sticky dirt or being covered by other dishes. The washing run might have been programmed to merely rinse.

A dish could have been taken out and put in back again without being used, for instance if you take out something that is covered by this particular dish.

One step towards towards finding a solution would be to better define the requirement as posed by the wife.
What, exactly, does she mean (or accept) to tell washed dishes from unwashed ones?
Where and when and what for does she ask for that information?

Depending on the answers, you could define the dishes in the machine to be washed when

  • The machine has run (i.e. has used an appreciable amount of power) and
  • The door has not been moved since the washing program has ended.

That scheme can be subverted in several ways: you can open and close the door without taking anything out. Then the dishes would be declared wrongly to be dirty. You could stick something into the machine though the partly opened door.

If it’s just about seeing whether the machine needs emptying when standing in front of the machine, using a tag which says ‘washed’ or ‘used’ (as suggested above) would be perfectly adequate.

On the other hand, you could put someting into the machine that tells you whether it has been flooded. A lump of sugar or a small bowl placed right side up would suffice. If the sugar is gone or the bowl is full, then the machine has run.

First of all I want to thank all of you for putting a thought into my “Wife’s Crazy Automation”

@nickrout I That would be a perfect solution BUT If I tell my wife about it then she would start thinking ways to use a paper sign instead of an Automation for other things too and then I will get angry and then I will start thinking ways to Automate the turning of the paper (a step motor maybe) and then we both end up in a nuthouse!!! :rofl:

Ok seriously now… I’ve been thinking about that automation a lot and I think I found a solution, so here’s what I thought

I need an entity that has the three following states.
Empty
Dirty
Clean
Lets call that entity Dishwasher State

I figured out that I need at least 2 different sensors to track those three states. The dishwasher already has an energy meter so that’s one sensor. The door sensor is not an option since the door could be opened automatically when the cycle finishes and we could also open and close the door for other reasons so that’s off the list. The other sensor I think it should be a weight track (load cells under the dishwasher), a scaling system could immediately give me the empty state of the “Dishwasher State”
entity. So let’s assume that the dishwasher is 50Kg when it’s empty and 60Kg when it’s full.
I think the automation should be something like the following

1 When the energy meter changes to 0 for 30sec and the weight is over 50Kg change the state to Clean
2 When the dishwasher weight is 50Kg change the state to Empty
3 When the weight goes above 50Kg change the state to Dirty.

What do you guys think? Is this doable? Do you see any flaws in my thinking?

I think you should reconsider.
Look below the dishwasher.
There is plenty of room to sense when the door is fully open (at least on ours), and that is when the state changes.

You can’t unload a machine with the door partially open.
You generally don’t fill the machine with the door partially open.
So what you need is fully open.

For simplicity sake let’s call a input select dishes, it has the three states you mention.
As I see it, power draw means dishes goes to clean.
If the dishes is clean and the door is open for more than 2 min then the dishes goes to empty.
If dishes is empty and open (any duration) then it’s dirty.

1 Like

How far does the dishwasher door open when its finished?

If it just pops open a crack to allow steam to escape faster, but not enough to actually empty it, then you will need a sensor that detects when the door is opened further than the minimum. Maybe a microswitch on the bottom of the door (assuming it opens downwards?) that is only pressed when the door is almost horizontal? You could add a delay timer so the button needs to be pressed for 30seconds(?) rather than just opened for a second or two to check if the pots are clean

They just open to let the steam out.
On our you can barely see down in to the machine, but it’s still enough to vent it.