So I have a simple little table top dishwasher. I am monitoring the power consumption through a smart plug. I want to make a notification that goes off when the cycle ends. the default setting on the dishwasher takes 2.5 hours to complete. All I want to do is read when the consumption goes high during the beginning cycle. then 2.5 hours later send me a notification. Ive tried the blueprint for monitoring appliances by using their power consumption over time, the only problem is that this dishwasher uses the heat from the last cycle ty dry the the dishes for like 40 minutes of the running cycle, which means it stops using power for longer than any other cycle that uses power, so my base power reading would have to be greater than the drying cycle, so the blueprint would mean id have to wait almost an hour after the last cycle which is only like 30 seconds of pumping to drain. so if i use the blueprint it takes almost 4 hours to get a completion notification. so i just need to start a timer and when it goes off it sends a notification. I can use a simple delay, but im afraid that the automation will be restarted every time the power goes low. So how do i make an automation that can run once and then not give a shit until the timer is over which will also turn off the power to the appliance to stop parasitic power loads. so i could also use the power on/off setting as a condition/trigger.
If you create an automation which purely uses the power consumption you wonโt even have to start anything to get it to give you notifications.
Here is a modification of something I have that you can use if you change the entities and current values to suit your setup.
alias: Dishwasher finished notification
trigger:
- platform: numeric_state
entity_id: sensor.dishwasher_power_current_consumption
above: 5
for: '00:00:05'
action:
- wait_for_trigger:
- platform: numeric_state
entity_id: sensor.dishwasher_power_current_consumption
below: 5
for: '00:45:00'
- service: notify.mobile_phones
data:
message: The dishwasher has finished
data:
ttl: 0
priority: high
the problem with this as this is kinda wht my blueprint does, is that at the end of very long cycle with no power there is a very small spike right at the end which would restart the beginning trigger. thats what makes my current automations not really worth it. I really just need a way to allow the timer to run to completion before any other automation can run again. hmm i guess i could run the thing, wait to see if there is any cycle that draws more power than any other and make a note of how long into the cycle it does, then subtract the remaining time and add that as a timer. that would stop the issue with the automation restarting every time the device uses more than 5W
So set your initial trigger to be below this power value.
Also, using the for: '00:00:05'
in the trigger allows you to tune this value to eliminate spikes.
Give it a try.
I need to actually run a cycle to get some more data points. but using the UI i got a little more creative with your initial example
alias: Dishwasher finished notification
trigger:
- type: power
platform: device
device_id: a11f1094ecc7577e2edacb6a876396df
entity_id: sensor.dishwasher_current_consumption
domain: sensor
above: 5
for:
hours: 0
minutes: 0
seconds: 5
action:
- wait_for_trigger:
- type: power
platform: device
device_id: a11f1094ecc7577e2edacb6a876396df
entity_id: sensor.dishwasher_current_consumption
domain: sensor
below: 5
for:
hours: 0
minutes: 45
seconds: 0
- service: tts.cloud_say
data:
entity_id: media_player.livingroom_wall_media_player
message: Dishwasher complete
cache: true
- service: tts.cloud_say
data:
entity_id: media_player.bedroom_wall_media_player
message: Dishwasher complete
cache: true
so here is my most recent attempt at a working automation using the data ive accrued so far. A little more precise.
alias: Dishwasher finished notification
trigger:
- type: power
platform: device
device_id: a11f1094ecc7577e2edacb6a876396df
entity_id: sensor.dishwasher_current_consumption
domain: sensor
above: 710
for:
hours: 0
minutes: 0
seconds: 0
action:
- wait_for_trigger:
- type: power
platform: device
device_id: a11f1094ecc7577e2edacb6a876396df
entity_id: sensor.dishwasher_current_consumption
domain: sensor
below: 0.8
for:
hours: 0
minutes: 24
seconds: 30
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- service: tts.cloud_say
data:
entity_id: media_player.livingroom_wall_media_player
message: Dishwasher complete
cache: true
- service: tts.cloud_say
data:
entity_id: media_player.bedroom_wall_media_player
message: Dishwasher complete
cache: true