Notify or do something when an appliance like a dishwasher or washing machine finishes

I’m not using a ZEN15 - rather, I’m using less expensive TP-Link KP125 Wifi smartplugs.

However, I have run into a similar with my Whirlpool clothes washing machine. The power usage is all over the place.

The fix for me is to using a long finishing hysteresis, of 4 minutes below 6W. I came up with it by studying the consumption curve of the washer.

I came up with the 4 minutes because the “Tumblefresh” option of the washer spins once every 5 minutes, if enabled. I hadn’t enabled it in this particular cycle, though. Making the finishing hysteresis longer than 5 minutes would cause the finish action never to be executed if I had turned on that option in the washer, which I usually do, but forgot this time.

Have you considered a sensor that flattens the jumps?

Is there a way to use this blueprint automation to manage a sensor that contains the state of my dishwasher/laundry/dryer?

I’d love to have a simple entity that shows “running” or “finished X hours ago” or something

I have a template binary sensor like this with the running state. You could use the last changed time attribute to show the ‘running for x minutes’ or 'finished for y days. Or a helper or template sensor. To show energy used for last run you need 2 helpers or template sensors.

I’m not getting notifications from this blueprint, although I am from others. The logs don’t show anything (although I may be looking in the wrong place!).

The sensor is a TuYa TS011F_plug_3 (TuYa TS011F_plug_3 control via MQTT | Zigbee2MQTT), currently the only power plug I have as I learn to migrate from a z-wave Vera setup.

Any pointers from the community would be greatly appreciated, my searches have been without fruit.

alias: Utility - Washing Machine has finished
description: ""
use_blueprint:
  path: >-
    sbyx/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes.yaml
  input:
    power_sensor: sensor.washing_machine_power
    actions:
      - service: notify.phones
        data:
          message: ....has finished
          title: Washing Machine
    pre_actions:
      - delay:
          hours: 0
          minutes: 0
          seconds: 0
          milliseconds: 0

I used “if” action for this. Eg. if time condition 09:00 - 20:00, then tts+tts+notification, else only notification.
Please let me know if you need help with this.

Hai IsoInH,

How can I do this? I do not want to wake up the house in the middle off the night :wink:

Yaml is as follows

alias: Wasmachine is klaar!
description: ""
use_blueprint:
  path: >-
    sbyx/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes.yaml
  input:
    power_sensor: sensor.shelly_plug_s_wasmachine_power
    actions:
      - service: telegram_bot.send_message
        data:
          message: Wasmachine is klaar!
          target: -1001280723513
      - service: media_player.play_media
        target:
          entity_id: media_player.living_room_speaker
        data:
          media_content_id: media-source://tts/google_translate?message=De+wasmachine+is+klaar
          media_content_type: provider
        metadata:
          title: De wasmachine is klaar
          thumbnail: https://brands.home-assistant.io/_/google_translate/logo.png
          media_class: app
          children_media_class: null
          navigateIds:
            - {}
            - media_content_type: app
              media_content_id: media-source://tts
            - media_content_type: provider
              media_content_id: >-
                media-source://tts/google_translate?message=De+wasmachine+is+klaar
    pre_actions: []
    starting_threshold: 50
    starting_hysteresis: 2

Perhaps a picture is worth a thousand words in this case?

Here is the code also:

alias: Washing machine is ready
description: ""
use_blueprint:
  path: >-
    sbyx/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes.yaml
  input:
    power_sensor: sensor.washingmachine_current_power
    starting_hysteresis: 10
    finishing_hysteresis: 2
    finishing_threshold: 2
    actions:
      - if:
          - condition: time
            after: "09:00:00"
            before: "20:00:00"
        then:
          - service: tts.google_translate_say
            data:
              entity_id: media_player.livingroom_speaker
              message: Washing machine is ready
          - service: tts.google_translate_say
            data:
              entity_id: media_player.office_speaker
              message: Washing machine is ready
          - service: notify.all_ios_phones
            data:
              title: Washing machine is ready
              message: It's time do some hanging
        else:
          - service: notify.all_ios_phones
            data:
              title: Washing machine is ready
              message: It's time do some hanging
    pre_actions:
      - delay:
          hours: 0
          minutes: 0
          seconds: 1
          milliseconds: 0

The service of notify.all_ios_phones here is just a group of all companion app users.

Thx a lot. Learned that I can use ‘If then else’ :slight_smile: and that I can use ‘tts.google_translate_say’ and let Google speak Dutch. Learned a lot! :smile:

1 Like

Is there a way to change the unit of measurement in the starting threshold to seconds?
(After importing your blueprint I don’t see any option to change it)

Thanks!

I am having some problems with this blueprint… Using it with both my dishwasher and my regular washer together with two BlitzWolf SHP-13 (TS011F_plug_1). Sometimes the automation doesn’t start at all, even though the program is 3 hours long and it worked the day before. I can see when looking at my plugs that the power actually goes up during the cycles as expected, but the automation is not running for some reason.

Anyone have any idea why this might be happening - intermittently?

1 Like

thanks for this great blueprint. Is it a good idea to turn off the washing machine power plug when the machine has finished but the display is still on? You have to manually set it to “Off” for the display to stop glowing.
Will this permanently damage the device?

Is there a way to exclude notifications during the night?

I can’t get it to work, error message

Message malformed: Missing input pre_actions

1 Like

just add a waiting step in pre actions (the 2nd action line in the UI) and set it to 0

Hello,
I try this BP but didn`t work . Could you help me ?
What is wrong here ?

try adding another action…it works fine here with android and IOS phones, but maybe there’s an issue with your setup.
heck, add a button on your home screen just a ‘send message’ / notification to your phone when you press it to test that part…
also, do you have the correct sensor selected - check it’s history, and see if it’s lots of jagged peaks, or a smooth line

Anyone have something for if you are using an Acceleration \ Vibration Sensor instead of the Power Measure? This is what I have currently but it doesn’t seem to work:

description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.washing_machine_acceleration
    to: "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - platform: state
    entity_id:
      - binary_sensor.washing_machine_acceleration
    to: "off"
    for:
      hours: 0
      minutes: 2
      seconds: 0
condition: []
action:
  - service: notify.alexa_media_living_room_echo
    data:
      message: The Washing Machine Has finished.
      target: notify.alexa_media_living_room_echo
      data:
        type: tts
mode: single

How do you mean when you say “does not work?”

As written, your logic is going to send the notification at the start and stop. You probably want a condition of “triggered by on” with your first action being to wait for the acceleration sensor to flip off, then send your notification.

Could you clarify the triggered on? I would like it to Notify after 5 minutes of Vibration stopping, if the contact sensor is state closed and after like 10 mins of previous vibration (ie the machine running). I removed the Start condition and added a check for the state of the contact sensor, any further thoughts? Here is what I have now

description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.washing_machine_acceleration
    to: "off"
    for:
      hours: 0
      minutes: 5
      seconds: 0
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: binary_sensor.washing_machine_contact
        state: "off"
action:
  - service: notify.alexa_media_living_room_echo
    data:
      message: The Washing Machine Has finished.
      target: notify.alexa_media_living_room_echo
      data:
        type: tts
mode: single