Last active
November 13, 2024 12:51
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
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
For those getting, 'Message malformed: Missing input pre_actions', add a wait time of 1 second into, 'Actions when starting threshhold is crossed' section at the bottom and it'll be saveable.
Thank you to the author of this plugin - it is very useful.
PS, Threshold has been spelt incorrectly :)