Choose the signal before building the notification
A useful Home Assistant washing machine finished notification needs two things: evidence that a load ran, and evidence that it has ended. A low power reading alone is not enough—the washer also uses little power before you start it.
First check the washer’s existing integration, the connection that brings it into Home Assistant. Look for a cycle-complete signal or program status. Prefer a verified finished status over guessing from electricity use. For example, the current Miele documentation shows a notification triggered by program_ended. That is an example for supported Miele appliances, not a universal state name.
If no useful status exists, use a power sensor that measures only this washer. The procedure below remembers a sustained start and then checks for a sustained quiet period. It suits a machine whose finished power level and normal pauses can be distinguished. If those patterns overlap, use actual appliance status or accept that power alone cannot give a dependable finish alert.
This guide was researched from current Home Assistant and Companion App documentation on September 8, 2026. The worked readings are illustrative. The YAML was checked for syntax, but has not been run in Home Assistant or tested on a physical washer. The cover is an AI-generated laundry illustration.
Set it up in this order
1. Test the phone message first
Install and sign in to the Home Assistant Companion App on the intended phone and allow notifications. In Home Assistant’s Developer tools → Actions, find that phone’s notification action and send “Laundry notification test.” The Companion documentation describes actions named notify.mobile_app_ followed by the device ID; each message needs a message field.
Save the exact action name for step 4. If this test does not arrive, follow the phone-notification delivery checks before changing washer thresholds.
2. Use a finished status if your washer provides one
Open the washer under Settings → Devices & services. Watch its relevant entity—Home Assistant’s named reading or status—during a complete cycle. Confirm the actual value in Developer tools → States, because the displayed label can differ from the value an automation uses.
Create an automation with a State trigger for that entity, the observed running state as From, and its finished state as To; add the tested phone action. If the appliance passes through several phases, use its documented completion signal or the observed final transition instead of assuming every phase changes directly from “running” to “finished.” A specific From value also prevents a simple unavailable-to-finished reconnection from looking like a newly completed cycle. Confirm the transition through the programs you use.
Check the connection’s limits: both Miele and LG ThinQ use cloud connections. Support and exposed statuses depend on the appliance. If the verified status works for you, skip the power-based setup below.
3. Record a complete power cycle
For the power route, open the sensor’s history and watch an ordinary wash from idle through completion. Repeat for your shortest program and any eco, soak or delayed-start program you actually use. Record four things: idle power, a clear sustained rise after starting, the longest low-power pause within a wash, and the settled power after the machine says it is finished.
Use W (watts), the present rate of electricity use. A cumulative kWh reading is energy used over time and will not fall back to idle. The YAML below compares raw numbers without unit conversion, as the Numeric state documentation explains. A sensor reporting kW needs conversion or different thresholds.
Keep the appliance’s normal power connection safe. This guide assumes suitable monitoring is already installed. Do not add an arbitrary smart plug, extension lead or outlet modification to obtain a reading. Follow both the washer and monitor manufacturers’ instructions for the exact appliance and load; have any fixed-wiring work handled by a qualified electrician. The automation below never switches the washer’s supply.
Worked example: why a pause should not send an alert
These numbers are made-up teaching data, not measurements. Imagine your observations looked like this. A threshold is simply the number a reading must cross; a hold time is how long it must stay on that side.
On a narrow screen, scroll the table sideways.
| Illustrative reading | What the rule does | Send an alert? |
|---|---|---|
| Idle at 2 W for an hour | No sustained start has been seen; the running flag is off. | No. |
| 80–150 W continuously for two minutes | Above 20 W for two minutes turns the running flag on. | No; this only remembers a start. |
| 3 W for three minutes during a rinse pause | The below-5 W wait begins, but ends when power rises again. | No; the pause is shorter than five minutes. |
| 90 W after the pause | The washer remains marked running. A later drop starts a fresh quiet wait. | No. |
| 2 W for five minutes after completion | The quiet wait completes with the running flag on. Clear the flag and send one message. | Yes, about five minutes after the reported drop. |
| Still 2 W twenty minutes later | The running flag is off and there is no new threshold crossing. | No repeated message. |
For this example, 20 W is above idle and below a sustained active period; 5 W includes the finished reading. The five-minute finish wait outlasts the illustrated three-minute pause. In your own history, choose a wait longer than every normal low-power pause you observed, with some margin for reporting delays. If a soak lasts twenty minutes at the same power as “finished,” five minutes is plainly wrong. A longer wait also means a later reminder.
Do not require a heating spike to identify a start if some programs do not heat. If no sustained rise and quiet period separate your usual programs from idle and pauses, stop tuning this simple rule and use a different completion signal.
4. Add a visible running flag and one automation
Go to Settings → Devices & services → Helpers → Create helper → Toggle. Name it “Washer running” and note its entity ID. This helper is a remembered yes/no flag, not a control for the washer. Set it off before the first test. The Toggle helper documentation calls this an input_boolean.
Create a new empty automation under Settings → Automations & scenes. Open its menu and choose Edit in YAML, the text format for the same rule. Paste the example below into that automation, not into configuration.yaml. Replace every sensor.washer_power, every input_boolean.washer_running, and notify.mobile_app_your_phone with your actual IDs. Replace the thresholds and durations with your observations. The finish threshold appears twice; change both copies of below: 5 together.
Show the complete power-based automation
alias: Washer - one completion reminder
id: washer_one_completion_reminder
mode: queued
triggers:
- trigger: numeric_state
entity_id: sensor.washer_power
above: 20
for: "00:02:00"
id: started
- trigger: numeric_state
entity_id: sensor.washer_power
below: 5
for: "00:05:00"
id: finished
- trigger: homeassistant
event: start
id: reset
- trigger: state
entity_id: sensor.washer_power
to: "unavailable"
id: reset
- trigger: state
entity_id: sensor.washer_power
to: "unknown"
id: reset
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: reset
sequence:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.washer_running
- conditions:
- condition: trigger
id: started
sequence:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.washer_running
- conditions:
- condition: trigger
id: finished
- condition: state
entity_id: input_boolean.washer_running
state: "on"
- condition: numeric_state
entity_id: sensor.washer_power
below: 5
sequence:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.washer_running
- action: notify.mobile_app_your_phone
data:
title: "Check the washer"
message: "The washer stayed quiet after a run. Check whether the laundry is ready."
The trigger IDs select the matching Choose branch: start, finish or reset. The finish branch requires the running flag and checks that power is still low. It clears the flag before sending, so this example does not retry a failed phone message. Queued mode processes overlapping runs in order; none of these action sequences waits for the length of a wash.
5. Check one idle period and several real loads
- While idle: leave the flag off and confirm there is no completion message.
- During a wash: verify the flag turns on after the qualifying rise. Watch a normal pause; it should not produce a message.
- At the end: compare the reminder with the machine’s own finished indication. Expect the configured quiet wait plus sensor and phone-delivery delays.
- Afterwards: check that the flag is off and there is no second message while the washer remains idle. Repeat for other programs before depending on the reminder.
Use the automation’s Traces—its recorded execution steps—to check which branch ran. Pressing Run actions alone does not recreate the power changes or duration holds. The automation troubleshooting guide explains how to read a trace when the expected branch never starts.
Fix the symptom that you actually see
Scroll sideways to read all columns on a phone.
| Symptom | Check first | Next change |
|---|---|---|
| Reminder arrives mid-wash | Does a normal pause stay below the finish threshold longer than your wait? | Increase the wait from actual cycle history, or use a completion status when pauses and completion cannot be separated. |
| Running flag never turns on | Is the reading in watts? Does it stay above the start threshold for the entire start hold? | Choose a sustained active segment that exists in every relevant program. A brief spike is not enough. |
| No alert after restarting | Was the cycle already running or finishing when Home Assistant restarted? | Check the washer manually. This example clears the flag at startup; it cannot reconstruct an unseen cycle. |
| Flag turns off during a wash | Did the sensor become unknown or unavailable? | Fix the sensor connection. The reset branch intentionally discards that uncertain run. |
| Two appliances share one reading | Does the dryer change the same sensor? | Use separate suitable measurements or each appliance’s status. This example cannot identify individual loads from a combined total. |
| Trace sends a message, phone stays quiet | Does the plain phone test still arrive? | Fix notification delivery. Changing the watt threshold will not fix phone permissions or a failed message action. |
Restarts and gaps are a real limit. Home Assistant resets a trigger’s duration hold on restart or automation reload. Toggle helpers can restore their prior value, so this example explicitly clears the flag at startup and whenever the sensor reports unknown or unavailable. After editing or reloading the automation, clear the helper yourself and begin validation with a fresh cycle. A run interrupted this way may produce no reminder.
A reading that silently freezes at a low number is different from an unavailable sensor: this rule cannot detect that failure. Nor can it distinguish a finished wash from somebody cancelling a cycle or removing power. Never convert missing data to zero in a template feeding this rule. Treat its message as “check the washer,” not proof that clothes are clean or that the door is unlocked.
Other practical questions
Does this work without internet?
The power-based decision can run without internet when the sensor connection and Home Assistant are local and working. Ordinary phone push delivery can still depend on internet services. Companion App Local Push is a separate option with local-connection requirements; a cloud-connected washer status also needs its cloud service.
Can the same settings monitor my dryer or dishwasher?
Do not copy the washer thresholds. A different appliance needs its own observed start, pause and finished patterns. A combined washer-dryer program also needs validation through the complete wash-and-dry sequence. This example is for one washer, not a way to separate multiple appliances on one meter.
Will it remind me until I unload the washer?
No. This setup sends one completion reminder. Detecting unloading needs a separate acknowledgement, such as a button you press after removing the clothes. An opened door alone does not prove a load was removed. Add repeat reminders only after the single-message rule works reliably.
If you want household routines planned together, Tara’s home automation kit with coordinated local routines is the relevant setup path. Keep the first laundry rule simple: one understandable signal, one recipient and a clear way to tell whether it ran.
