Often, when I’m focused on a task or project, I absolutely can’t think about anything else. This means that other tasks often get left unattended, possibly for hours. To reduce this, I’ve implemented a system in Home Assistant to notify me when either the washer or dryer are finished running. It’s a pretty simple automation, but it’s this kind of useful life-improvements that really make home automation worthwhile.

The Hardware

I have a gas dryer (not ideal, but I’ll get a heat pump in the next house) and normal electric washer. Both of them share a single power outlet on a 20A circuit, all fairly standard in the US. I do have power monitoring at the breaker panel via the Energy Monitor Project, but that includes power consumed by the washer, dryer, as well as some networking equipment which resides in the laundry room (including the Zigbee master, Z-Wave master, and 433Mhz receiver, a network switch, an audio amplifier for the deck speakers, and two Raspberry Pi’s). The washer and dryer use quite a bit of power, but I still need better resolution than this.

Thankfully, they both use less than 10A and plug into standard US 120V wall plugs, so I can just get two Sonoff S31’s and call it a day (I had one leftover from Tasmota Day and had to get a second). I then added them to Home Assistant, including all of the power monitoring channels, configured them to turn on automatically (PowerOnState 1), and send telemetry more often (TelePeriod 20). Once that was all done, I ran a cycle on each to establish how much power each consumed.

Power Graph

Unfortunately, the washer has a portion of the cycle wher it uses very little power, as it fills initially and again during the rinse cycle. I need to set the threshold very carefully to detect when it’s actually off (and just drawing standby power) versus when only the water valve is on. It seems like the water valve is on at 8W and the control power alone is 2W, so a threshold of 5W and a minimum time of 2-5 minutes is probably adequate. The dryer is much easier, it uses a lot of power for the entire cycle, so the threshold is more agressive at 10W for 1 minute.

The Notifier

Notifications in Home Assistant are really easy. You call a service on the notifier entity, which in this case is an iphone.

If you just want to copy it, here’s the yaml for the whole automation:

alias: Laundry Finished Notification
description: Notify when laundry is finished
trigger:
  - platform: numeric_state
    entity_id: sensor.laundry_dryer_power_w
    id: Dryer
    below: '10'
    for:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - platform: numeric_state
    entity_id: sensor.laundry_washer_power_w
    id: Washer
    below: '5'
    for:
      hours: 0
      minutes: 5
      seconds: 0
      milliseconds: 0
condition: []
action:
  - service: notify.notify
    data:
      title: Laundry Complete
      message: '{{ trigger.id }} Has Finished'
mode: single

You can add as many triggers as you want, it just passes ‘{Trigger ID} Has Finished’ as the notification value. So, set the Trigger ID to the text you want it to say when it notifies you. You can also specify a single device instead of notify.notify if you want to alert just one phone.