-
-
Save sbyx/6d8344d3575c9865657ac51915684696 to your computer and use it in GitHub Desktop.
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 |
Here is mine which works really good with SonOff POW2:
For starting:
alias: Bad Trockner Gestartet
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.trockner_durchschnittsleistung
above: '30'
for:
hours: 0
minutes: 0
seconds: 0
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.dryer_running
state: 'off'
sequence:
- service: script.alexa_announce
data_template:
alexa_device: media_player.badezimmer
alexa_service: notify.alexa_media_badezimmer
alexa_volume_speak: 0.3
alexa_message: Trockner gestartet!
default: []
- service: input_boolean.turn_on
data: {}
target:
entity_id:
- input_boolean.dryer_running
mode: single
for checking finished:
alias: Bad Trockner Fertig?
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.trockner_durchschnittsleistung
below: '30'
for:
hours: 0
minutes: 1
seconds: 0
condition:
- condition: state
entity_id: input_boolean.dryer_running
state: 'on'
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.dryer_running
- service: input_number.set_value
data:
value: 5
target:
entity_id:
- input_number.dryer_notifications_left
- service: automation.trigger
data: {}
target:
entity_id:
- automation.bad_trockner_notification
mode: single
Notification:
alias: Bad Trockner Notification
description: ''
trigger:
- platform: time
at: input_datetime.dryer_next_notification
condition:
- condition: numeric_state
entity_id: input_number.dryer_notifications_left
above: '0'
action:
- choose:
- conditions:
- type: is_open
condition: device
device_id: 9a7fe1a5534744bc449e99f04fa69755
entity_id: binary_sensor.trockner_ture
domain: binary_sensor
sequence:
- service: input_number.set_value
data:
value: 0
target:
entity_id:
- input_number.dryer_notifications_left
default: []
- type: is_not_open
condition: device
device_id: 9a7fe1a5534744bc449e99f04fa69755
entity_id: binary_sensor.trockner_ture
domain: binary_sensor
- service: input_number.decrement
data: {}
target:
entity_id:
- input_number.dryer_notifications_left
- service: script.turn_on
target:
entity_id: script.notify_devices
data:
variables:
speakvolume: 0.35
speaktext: Trockner ist fertig, bitte ausräumen!
tvtext: Trockner ist fertig, bitte ausräumen!
tvicon: http://192.168.0.8:8123/local/trockner.png
- service: input_datetime.set_datetime
data:
time: '{{ (now() + timedelta( minutes = 10 )).strftime("%H:%M") }}'
target:
entity_id: input_datetime.dryer_next_notification
mode: single
PS.: this automation's are repeating the notfications until the door is opened or motion is detected in the bath. There the count is reseted to 0 to stop the loop.
Have fun
pOpY
errors on lines 63 and 68 automation wont save properly if you dont need or want to use the starting action and doesnt seem to work very reliably at all when trying to work around these issues, cant recomend this unless the owner comes and updates it for 2022
As stated above.
My previously compltly other approach is working without any issue (at least with my sonoff pow r2's) on 3x devices.
Thanks for this very useful blueprint.
It used to work for me prior to delete and reinstall it.
Now the installation is working fine, but when I try to create an automation, I have the following error message 👍
"Message malformed: Missing input pre_actions"
Would you have any clue ?
not working for me, it says 'Message malformed: Missing input pre_actions'
A good solution has been shared on the Home Assistant community forum :
https://community.home-assistant.io/t/notify-or-do-something-when-an-appliance-like-a-dishwasher-or-washing-machine-finishes/254841/117?u=hollyfredd
I am unable to create an automation using this blueprint. It says "Message malformed: Missing input pre_actions" I do not know what this means.
I am unable to create an automation using this blueprint. It says "Message malformed: Missing input pre_actions" I do not know what this means.
Same here…
Added another threshold to detect if the Washing machine is turned Off (and thus empty) or still in standby. Here is my code:
off_threshold:
name: Machine Off threshold
description: Power threshold above which we assume the appliance is turned off.
default: 1
selector:
number:
min: 0.0
max: 5.0
unit_of_measurement: W
mode: slider
step: 0.1
off_hysteresis:
name: Machine Off hysteresis
description: Time duration the power measurement has to stay above the Machine Off threshold
power threshold.
default: 1
selector:
number:
min: 0.25
max: 60.0
unit_of_measurement: min
mode: slider
step: 0.25
and another trigger and action:
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
- wait_for_trigger:
- platform: numeric_state
entity_id: !input power_sensor
below: !input off_threshold
for:
minutes: !input off_hysteresis
- choose: []
default: !input off_actions
I am unable to create an automation using this blueprint. It says "Message malformed: Missing input pre_actions" I do not know what this means.
Same here
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 :)
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
not working for me, it says 'Message malformed: Missing input pre_actions'