How to identify when a dishwasher ended if it zeroes during the dry cycle?

I have a dumb (but very good) dishwasher which I was planning to automate some alerts about it. I bought an energy sensor and attached to it, but…


Blue = power; green = current; red = voltage

I created a binary sensor (seen at the bottom of the screenshot) which tracks when the power goes to 0W, and that made me realize it seems to sort of turn off during the dry cycle (the last third on the graphs, after the last big plateau and before the small increase at the end). If it does anything during that time, it’s not something the sensor can pick up (I also have no clue how that dries out the dishes, but I digress).

To complicate matters:

  1. the normal cycle doesn’t have a specific time to run, it’s “smart” in which it verifies water turbidity to decide how to clean stuff;
  2. we also use the quick cycle every now and then; I have yet to compare both, but it runs for fixed ~30min and does not dry the dishes. Thus, just doing “1:15h alarm after it turns off” would be very suboptimal.
  3. it seems to drop power and current to 0 for a minute or less every now and then during the normal cycle (e.g. right after 13:30 or before the last big plateau)
  4. as you might have guessed, vibration sensors are also out of question here, since it’s completely dead besides the LED timer on the front

Some ideas that popped up:

  • A friend of mine suggested summing up the spent energy until it zeroes, and then use that to identify which cycle was run (normal vs quick)… but the random moments it zeroes for a couple of seconds would cause havoc
  • I tried checking if Riemann Sum or Threshold sensors could help, but I can’t see how given they don’t have a way to “skip the silence”, and the Utility Meter integration is time-based only, it doesn’t seem I could force it to reset, say, when detecting a new cycle starts.
  • I wonder if there’s a reasonable way to run this energy summation on the automation itself, so I can use its timers + “single-run setting” to try to skip those quick moments and notice when it’s effectively stopped for long enough.
  • or somehow identify that Voltage stabilized and then sum up the spent energy to identify which cycle is/was running?

Any other easier and more reliable ideas for situations like this? :thinking:

I’m honestly thinking about skip all the this trouble and paste a zigbee button on the dishwasher, requesting/hoping the users will press a second button to identify which cycle they’re starting :man_facepalming:

I use a numeric state for my dishwasher and it works reliably:

alias: D/W Set Off
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.s31_01_power
    below: 1.9
    for:
      minutes: 5

But it looks like that wouldn’t work for you, because it seems you have a 50min(?) period in there (from 14:20 - 15:10h) where the dishwasher does nothing - what is the dishwasher doing during that time and what is it doing at the very end?

Does it really run from 11:40h to 15:10h?

1 Like

I think it’s quietly waiting for the dishes to dry themselves (not sure how, though). Then at the end it does some deep noises, which I guess is draining the water accumulated at the bottom? That takes a minute or two, tops.

But that numeric state might help bootstrap an automation or more complex template to identify the cycle :thinking:

I use a temperature sensor that sits on top of my dishwasher. The last part of the wash program is the drying phase. In this phase the temperature reaches a fixed maximum and then falls. For me this maximum is about 33 C. So I have an automation that triggers when the temperature goes below 31 C.

I have some other conditions too because, living in the uk, the ambient temperature sometimes goes above 33 C.

YMMV

2 Likes

Do you only use 2 different machine programs?

Would be interested to see the trace from the other cycle if so.

The first thing that comes to mind is the unique pattern of time seen in the drying cycle at the end, it is the longest power draw with no drop outs, so I am thinking you could trigger on value being above x for x amount of time then a wait for zero to trigger the end of cycle notification maybe.

So if it’s drawing purely for example 100 for 10 mins you could trigger on above 90 for 8 mins then a wait for zero to confirm drying cycle had finished.

Just an idea, but don’t know how this would work on other possible machine programs !

There’s a blueprint for this sort of thing :

https://community.home-assistant.io/t/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes/254841/159

1 Like

@Neil_Brownlee, that blueprint is definitely interesting! However, it doesn’t seem to solve the issue with my dishwasher, since it zeroes for more than an hour before the smart cycle actually finishes.

@rossk you’re right, let’s consider this topic frozen until I can get the short cycle trace for comparison, and see if we can draw any differences we could cling to. But note that the drying cycle still takes a lot of time with no power draw at all - the screenshot shows the whole period since the dishwasher started until it beeps out in the end, which is that tiny increase way after 3PM in the green graph.

@templeton_nash the temperature sensor seems quick hacky, but it could be an idea to try if nothing else works hahah

Haven’t been back to the issue yet, but I just ran the quick cycle and here’s the results… There’s a single moment when it zeroes both power and current, but I’m not 100% sure this was normal or caused by a quick additional of laundry during the first minutes :sweat:

Other than that, it seems to be quite stable - the binary sensor at the bottom is based on current > 0.
Also, this seems quite similar to the first three plateaus on the smart cycle (the previous graphs).

At approx 1108h on the short cycle trace does that drop to zero and if so for how long roughly?