Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sbyx/6d8344d3575c9865657ac51915684696 to your computer and use it in GitHub Desktop.
Save sbyx/6d8344d3575c9865657ac51915684696 to your computer and use it in GitHub Desktop.
Home Assistant Blueprint: Notify or do something when an appliance like a dishwasher or washing machine finishes
blueprint:
name: Appliance has finished
description: Do something when an appliance (like a washing machine or dishwasher)
has finished as detected by a power sensor.
domain: automation
input:
power_sensor:
name: Power Sensor
description: Power sensor entity (e.g. from a smart plug device).
selector:
entity:
domain: sensor
starting_threshold:
name: Starting power threshold
description: Power threshold above which we assume the appliance has started.
default: 5
selector:
number:
min: 1.0
max: 100.0
unit_of_measurement: W
mode: slider
step: 1.0
starting_hysteresis:
name: Starting hysteresis
description: Time duration the power measurement has to stay above the starting
power threshold.
default: 5
selector:
number:
min: 0.25
max: 60.0
unit_of_measurement: min
mode: slider
step: 0.25
finishing_threshold:
name: Finishing power threshold
description: Power threshold below which we assume the appliance has finished.
default: 5
selector:
number:
min: 1.0
max: 100.0
unit_of_measurement: W
mode: slider
step: 1.0
finishing_hysteresis:
name: Finishing hysteresis
description: Time duration the power measurement has to stay below the finishing
power threshold.
default: 5
selector:
number:
min: 0.25
max: 60.0
unit_of_measurement: min
mode: slider
step: 0.25
actions:
name: Actions
description: Actions (e.g. pushing a notification, TTS announcement, ...)
selector:
action: {}
pre_actions:
name: Actions
description: Actions when starting threshhold is crossed
selector:
action: {}
source_url: https://gist.github.com/sbyx/6d8344d3575c9865657ac51915684696
trigger:
- platform: numeric_state
entity_id: !input 'power_sensor'
for:
minutes: !input 'starting_hysteresis'
above: !input 'starting_threshold'
condition: []
action:
- choose: []
default: !input 'pre_actions'
- wait_for_trigger:
- platform: numeric_state
entity_id: !input 'power_sensor'
below: !input 'finishing_threshold'
for:
minutes: !input 'finishing_hysteresis'
- choose: []
default: !input 'actions'
mode: single
max_exceeded: silent
@hf-krechan
Copy link

I was also struggling with the error message Message malformed: Missing input pre_actions.
You have to define a pre-action. If you do not need one, you can add just a 1s delay like @Steeveeveeve mentioned.
Here is my yaml file which you can copy and paste into the yaml editor.

alias: Waschmaschine ist fertig
description: ""
use_blueprint:
  path: >-
    sbyx/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes.yaml
  input:
    power_sensor: sensor.switch_bathroomfloor_plug_washingmashine_power
    starting_threshold: 100
    starting_hysteresis: 5
    finishing_threshold: 5
    finishing_hysteresis: 5
    actions:
      - service: notify.mobile_app_heliumhypernet
        metadata: {}
        data:
          message: Waschmaschine ist fertig
          title: I am done
    pre_actions:
      - delay:
          hours: 0
          minutes: 0
          seconds: 1
          milliseconds: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment