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

Sure!
I used this as a great inspiration for the overall setup (points & cash).

For the diswasher specificaly:

  1. I have a input_select
  dishingmachine_turn:
    name: Dishing Machine 
    options:
      - MySonName
      - MyDoughterName
    initial: MySonName
  1. A input_boolean
  dishwasher_is_empty:
    name: DishwasherIsEmpty
    icon: mdi:dishwasher
  1. The automation from this template
alias: Dishwasher 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.kitchen_dishwasher_plug_power
    actions:
      - service: input_boolean.turn_off
        data: {}
        entity_id: input_boolean.dishwasher_is_empty
      - service: notify.mobile_app_my_iphone
        data:
          message: >-
            The dishwasher has finished!
            {{states('input_select.dishingmachine_turn')}} has to empty today!
          data:
            persistent: true
            tag: persistent
      - service: notify.mobile_app_wife_iphone
        data:
          message: >-
            The dishwasher has finished!
            {{states('input_select.dishingmachine_turn')}} has to empty today!
          data:
            persistent: true
            tag: persistent
      - service: notify.mobile_app_doughter_iphone
        data:
          message: >-
            The dishwasher has finished!
            {{states('input_select.dishingmachine_turn')}} has to empty today!
          data:
            persistent: true
            tag: persistent
      - service: notify.mobile_app_son_iphone
        data:
          message: >-
            The dishwasher has finished!
            {{states('input_select.dishingmachine_turn')}} has to empty today!
          data:
            persistent: true
            tag: persistent
      - data:
          volume_level: 0.1
        entity_id: media_player.living_echo
        service: media_player.volume_set
      - service: notify.alexa_media
        data:
          data:
            type: tts
          message: >-
            The dishwasher has finished!
            {{states('input_select.dishingmachine_turn')}} has to emtpy today!
          target:
            - media_player.living_echo
      - service: media_player.volume_set
        data:
          volume_level: 0.4
        entity_id: media_player.living_echo
    starting_hysteresis: '5'
    starting_threshold: '2'
    finishing_threshold: '2'
    finishing_hysteresis: '5'
  1. Each kid has his own dashboard with a conditional card (only show him the button is is his/her turn and if the dishwhasher is not empty) … here is my son’s … similar fo rmy doughter
type: conditional
conditions:
  - entity: input_select.dishingmachine_turn
    state: MySonName
  - entity: input_boolean.dishwasher_is_empty
    state: 'off'
  - entity: sensor.daytime
    state: 'True'
card:
  type: entities
  entities:
    - entity: input_boolean.dishwasher_is_empty
      name: Empty Dishwasher
  1. When they “check” it on their dahsboard (changing the input boolean to true) I have another automation (for each) that is:
  • giving them 10 points (each point is 5 euro cents)
  • sned notification to me and my wife
  • changing the input select to the other kid
  • in this way the button disapeares as well from their dashboard (see conditional card above)
alias: MySon Points Management ADD - Dishwasher
description: ''
trigger:
  - platform: state
    entity_id: input_boolean.dishwasher_is_empty
    to: 'on'
    from: 'off'
condition:
  - condition: state
    entity_id: input_select.dishingmachine_turn
    state: MySonName
action:
  - service: input_number.set_value
    data:
      value: '{{ states(''input_number.points_MySonName'') | int + 10 | int }}'
    entity_id: input_number.points_david
  - service: notify.mobile_app_wife_iphone
    data:
      message: '{{states(''input_select.dishingmachine_turn'')}} emptied the dishwasher!'
      data:
        persistent: true
        tag: persistent
  - service: notify.mobile_app_my_iphone
    data:
      message: '{{states(''input_select.dishingmachine_turn'')}} emptied the dishwasher!'
      data:
        persistent: true
        tag: persistent
  - service: input_select.select_next
    data: {}
    entity_id: input_select.dishingmachine_turn
  - service: input_datetime.set_datetime
    data:
      datetime: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'
    entity_id: input_datetime.dishwasher_last_empty
mode: single
max: 10

PS:

  • I could probably avoid 2 automations on point 5 with 1 script, but I did not have time to make it … maybe later on
  • When HA restarts my son gets the turn … I need to see if the “recorder” HA integration makes this persistent
  • A script will be as weel great to make sure Alexa does not announce the dishwasher finished during the night ( I could not make a condition into the blueprint for that …)
4 Likes

I’m having the same issue. Anyone solved it yet?

To irgnore the wrinkle protection at the end of our dryer programm I would like to set the threshold to 200 watts. Is there an easy way to do that?
I tried to overwrite the maximum 100 w in yaml but the parameter is now beeing displayed with a red underline in the visual editor. That looks like some kind of malfunction to me.

Can you add an option to use conditions for the actions? In the evenings I would prefer a notification on my phone but during daytime I would also like speakers to notify.

1 Like

Hi @Sbyx, nice automation, thanks! :slight_smile:

I’m thinking of an extension to also notify the power consumption of the appliance.

So far I have the below snippet, drawback is that it requires two helper variables per appliance. Is there a way to use automation variables? If so, what service can address these?

action:
  - service: input_number.set_value
    data:
      value: '{{ states(''sensor.power_consumption_today_washer'') }}'
    target:
      entity_id: input_number.washingmachine_usage1
  [...]
  - service: input_number.set_value
    data:
      value: '{{ states(''sensor.power_consumption_today_washer'') }}'
    target:
      entity_id: input_number.washingmachine_usage2
  - service: notify.notify
    data:
      message: "Used {{ states('input_number.washingmachine_usage1') | float - states('input_number.washingmachine_usage2') | float }}{{state_attr('sensor.power_consumption_today_washer', 'unit_of_measurement')}}"

Hi, I just had the same use case and I’ve found this: Adding conditions to blueprint based automation - #2 by 123

I need to test it out myself.

I’ve tried adding conditions to the automation but it didn’t work.

Hello,
would it be possible to modify this blueprint to track the status of a washing machine?
Knowing that it is on above a certain power, that it is in operation if the power is in a certain range and that it has finished when it falls below a certain level.
Or need to be three different automation in conjunction of a state variable?
Thank you

It already does that.

Not really, I can only do action when appliance has finished, not tracking when is active and running.
Or I’m wrong?

@e-raser did you solve this problem? I got the same issue like you

Nope, unfortunately not. I fear there´s no solution on the blueprint/automation level as it´s some core Home Assistant “issue” in my opinion.

I still try to deal with it because of lack of time to further investigate or bring it on the HA core dev team’s table. For my most important use cases I created additional “failsafe” automations (which serve as backup for automations based on this blueprint) - which is kind of silly of course but the only quick’n’dirty workaround that came to my mind.

Maybe @Sbyx has an idea or would like to share his two cents on this.

@e-raser aha gotcha, so as far as I understood if you ran this as normal automation without blueprint it will work normally?

No, the “issue” is within automations. Doesn´t matter if they´re blueprint based or individual ones.
My failsafe automations basically do the same things but based on simpler inputs so they have some downsides.

@Sbyx can I (humbly) offer an improvement:
The ability to trigger actions on both start AND finish of the appliance:

blueprint:
  name: Appliance monitor
...
  input:
... # all inputs are the same except for the last one
...
    actions_on:
      name: Action(s) when starting
      default: []
      selector:
        action: {}
    actions_off:
      name: Action(s) when finishing
      default: []
      selector:
        action: {}
...
...
action:
- choose: []
  default: !input 'actions_on'
- wait_for_trigger:
  - platform: numeric_state
    entity_id: !input 'power_sensor'
    below: !input 'finishing_threshold'
    for:
      minutes: !input 'finishing_hysteresis'
- choose: []
  default: !input 'actions_off'
...
2 Likes

Thank you. I was able to easily adapt this blueprint to send a notification when my dehumidifier tank needs to be checked because it might be full. The dehumidifier is connected to a Zooz ZEN15 power switch, and it’s automated to turn on and off with humidity changes based on a Zooz ZSE40. The power consumption drops below 1 watt when the tank is full.

UPDATE: this blueprint automation was sending the notifications, but every time the dehumidifier was shut off, regardless if the dehumidifier shut itself off or the power switch shut off because the proper humidity level had been reached. So, while it is useful, for me the automation was generating false notifications because the tank wasn’t full yet. This automation required a condition to check for the state of the power switch, where if the power switch was still on, but the wattage had dropped below 1 watt, then the tank was probably full and the dehumidifier had shut itself off.

Hi all,

I have several appliances that I would like to be notified of when they are ready, for example the dishwasher, washing machine and tumble dryer.

Now I have used this blueprint to realize this, however I have a problem:

I can trigger all this equipment if the consumption exceeds a certain wattage, only all equipment has several of these peaks, see for example the screenshot below of my dishwasher.

How can I ensure that I receive a notification when it is actually ready (around 19:36) and not after the first peak (around 18:37).

Hope there is a solution :slight_smile:

Grtz
Edwin

Perhaps by setting a lower finish threshold.

That’s not the solution because between the 2 peaks it’s dropping to almost 0 as well.

Yeah but not for longer than X minutes according to your screenshot.