This is the power usage of my dishwasher with the drying cycle turned on.
The spikes starting above 10pm, is the drying cycle.
When drying, the wattage spikes to around 630, for about a minute, then drop to 1.7 for about another minute, then spikes to 630 for about another minute, and so on, and so forth.
How can I detect this sequence to update the status from “washing”, to “drying”?
My initial thought is to just base it on time; just say “ok, after 40 minutes, it must be drying”.
Problem with that is, what if the drying cycle is turned off?
I guess I could say, "ok, after 40 minutes, if there is power usage it must be drying, otherwise, set to “clean”?
Here’s my current code to set state to washing:
- id: '1629775434888'
alias: Dishwasher - Set dishwasher active when power detected
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.shelly1pm_84cca8af1140_power
above: '2'
for: 00:00:05
condition:
- condition: or
conditions:
- condition: state
entity_id: sensor.dishwasher_status
state: Idle
- condition: state
entity_id: sensor.dishwasher_status
state: Clean
action:
- service: input_select.select_option
data:
option: Washing
target:
entity_id:
- input_select.dishwasher_status
and my current code to set status to clean:
- id: '1629775577060'
alias: Dishwasher - Set dishwasher to clean
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.shelly1pm_84cca8af1140_power
above: '1.5'
below: '1.8'
for: 00:02:00
condition:
- condition: and
conditions:
- condition: state
entity_id: input_select.dishwasher_status
state: Washing
- condition: template
value_template: "{% if states.automation.dishwasher_set_dishwasher_active_when_power_detected.last_triggered\
\ is not none %}\n {% if as_timestamp(now()) | int - as_timestamp(states.automation.dishwasher_set_dishwasher_active_when_power_detected.last_triggered)\
\ | int > 2700 %} true {% else %} false\n {% endif %}\n \
\ {% else %}\n false\n {% endif %}"
action:
- service: input_select.select_option
data:
option: Clean
target:
entity_id:
- input_select.dishwasher_status
Does anyone have any ideas how to cleanly detect the drying cycle?
Thank-you