Dumb Washing Machine Integration (HA Washdata)

HA WashData (v0.1, active development)

Home Assistant custom integration to detect washer cycles from smart plug power, label programs, and estimate time remaining using NumPy shape correlation.

What it does

  • Detects start/finish from power draw with smoothing, off-delay, and ghost-cycle filtering.

  • Learns profiles from past runs; matches live traces via correlation, MAE, and peaks.

  • Provides sensors: state, program, time remaining, cycle progress, current power.

  • Manual program select entity to override/teach the system.

  • Notifications for start/finish and optional pre-completion heads-up.

  • Nightly maintenance to merge fragmented cycles and keep storage lean.

Status

  • Version: 0.1 (early stage, active development).

  • Expect rapid changes; breaking adjustments possible.

  • Feedback on detection stability, matching accuracy, and UI flow is welcome.

Install (HACS, Custom Repository)

  1. In HA, open HACS → Settings → Custom repositories.

  2. Add https://github.com/3dg1luk43/ha_washdata as type Integration.

  3. Install HA WashData from HACS and restart Home Assistant.

Manual fallback: copy custom_components/ha_washdata into your HA custom_components folder and restart.

Configure

  • Go to Settings → Devices & Services → Add Integration → HA WashData.

  • Pick your washer’s power sensor, set min power, name the device.

  • In Configure → Settings, you can Apply Suggestions to preload recommended values, then submit to save.

Known notes and asks

  • Time/progress estimation is tuned for average cycle length; please report erratic jumps with logs.

  • Profile matching prefers consistent power shapes; share traces where it mislabels.

  • Publish-on-change plugs: adjust no_update_active_timeout and watchdog_interval if you see premature endings.

5 Likes

Hello. I am trying out the integration. Read the docs, but am confused about the program entity. I have left all the data stock. Did not create a program name yet. Ran the washer.

Do we need to create at least one program name before starting up the washer? I see the program entity was stuck on detecting state the whole time. I assume the program should correspond to the different cycle washes? I plan to have 3. Normal wash, Gentle wash, dryer only. each will have their different total time cycles. Just need to time each one out to get the total minutes which will be converted to seconds.

Hey, intended usage is that you will record each one and then label them with profile name. After that, every time you ran cycle, integration will try to estimate which one you’re running and assign profile → estimate time to completion. If you dont want to wait for autodetection, you can assign runningprofil to running cycle via dropdown select entity within your device.

Cool integration. Do you think it also would work for a dishwasher?

1 Like

Wow, this is great! (Idea anyway, I’ve not exercised it yet.) I’ve got a “dumb” automation for my dumb washer dryer but I think you’ve taken it up a notch. Thanks!

would also be nice if it could be used for my dumb coffee machine. to be able to let a smart speaker announce the coffee is ready, or the cappucino is ready (depending on the power usage profile)

This is amazing, thank you for all the hard work! I previously used SmartThings but didn’t really want the integration hanging around just for my washer and dryer, so I use smart plugs just to notify me when the cycle are done. This is next level and I’m pumped to implement it.

I also have a dumb dishwasher that I use a temperature sensor on, would be cool if this could be adapted to work with the temp sensor instead of just power sensing as well.

Awesome stuff!

ok. Will do a few runs and save as profiles. Any way to fix the progress state readings? To many digits. Thanks for this integration.

Click the progress row to get the ‘More Info’ dialog, then tap on the cog wheel in the upper right, and set the ‘Display precision’ to your liking.

1 Like

Thanks. Knew that settings, but forgot it.

Hey, great integration
i just need help, this morning it doesn’t detect well my cycle. A special cycle with a long time warming the water.

Here’s what the smart plug saw:

and Washdata saw:

I think this is because the device remained at 2039w for a very long time without a new measurement point.

Any idea ?
Maybe a too l