Files
home-assistant/packages/laundry/laundry.yaml
2022-08-14 11:28:28 -07:00

223 lines
6.1 KiB
YAML

# Laundry Package
# -----------------------------------------------------------------------------
# Washer Final Pump-Out State Machine
input_select:
washer_final_pump_state:
name: Washer Final Pump State
options:
- Idle
- Check
- Triggered
washer_complete_state:
name: Washer Complete Detect State
options:
- Idle
- Stage 1 # Iw > 4A, <70s
- Stage 2 # Iw ~ [2A, 4A], 60s
- Stage 3 # dIw ~ [-0.8A, -0.5A], 60s
- Triggered # Iw < 0.2A, 60s
input_number:
washer_complete_threshold_low:
min: 0.0
max: 4.0
washer_complete_threshold_high:
min: 0.0
max: 4.0
# -----------------------------------------------------------------------------
# Laundry Automations
automation:
- alias: Notify when Dryer Done
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.dryer_power_electric_consumption_a
below: 1.0
for:
minutes: 1
action:
- service: notify.everyone
data:
message: Dryer is done
- alias: Washer Complete Detect - Stage 1
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
above: 4
condition:
- "{{ is_state('input_select.washer_complete_detect_state', 'Idle') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_complete_detect_state
data:
option: Stage 1
- alias: Washer Complete Detect - Stage 2
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
above: 2
below: 4
for:
seconds: 60
condition:
- "{{ is_state('input_select.washer_complete_detect_state', 'Stage 1') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_complete_detect_state
data:
option: Stage 2
- action: input_number.set_value
target:
entity_id: input_number.washer_complete_threshold_low
data:
value: "{{ states('sensor.washer_power_electric_consumption_a')|float - 1.0 }}"
- action: input_number.set_value
target:
entity_id: input_number.washer_complete_threshold_high
data:
value: "{{ states('sensor.washer_power_electric_consumption_a')|float - 0.5 }}"
- alias: Washer Complete Detect - Stage 3
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
above: "{{ states('input_number.washer_complete_threshold_low')|float }}"
below: "{{ states('input_number.washer_complete_threshold_high')|float }}"
for:
seconds: 60
condition:
- "{{ is_state('input_select.washer_complete_detect_state', 'Stage 2') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_complete_detect_state
data:
option: Stage 3
- alias: Washer Complete Detect - Trigger
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
below: 0.2
for:
seconds: 60
condition:
- "{{ is_state('input_select.washer_complete_detect_state', 'Stage 3') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_complete_detect_state
data:
option: Triggered
- alias: Washer Complete Detect - Timeout
mode: single
trigger:
- platform: state
entity_id: input_select.washer_complete_detect_state
to: Stage 1
for:
seconds: 180
- platform: state
entity_id: input_select.washer_complete_detect_state
to: Stage 2
for:
seconds: 180
- platform: state
entity_id: input_select.washer_complete_detect_state
to: Stage 3
for:
seconds: 180
- platform: state
entity_id: input_select.washer_complete_detect_state
to: Triggered
for:
seconds: 60
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_complete_detect_state
data:
option: Idle
- alias: Notify when Washer Done
mode: single
trigger:
- platform: state
entity_id: input_select.washer_complete_detect_state
to: Triggered
action:
- service: notify.everyone
data:
message: Washer is Done
- alias: Washer Final Pump-Out - Check
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
above: 0.5
condition:
- "{{ is_state('input_select.washer_final_pump_state', 'Idle') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_final_pump_state
data:
option: Check
- alias: Washer Final Pump-Out - Trigger
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.washer_power_electric_consumption_a
below: 0.5
condition:
- "{{ is_state('input_select.washer_final_pump_state', 'Check') }}"
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_final_pump_state
data:
option: Triggered
- alias: Washer Final Pump-Out - Reset
mode: single
trigger:
- platform: state
entity_id: input_select.washer_final_pump_state
from: Idle
for:
seconds: 30
action:
- service: input_select.select_option
target:
entity_id: input_select.washer_final_pump_state
data:
option: Idle
- alias: Notify when Washer Done
mode: single
trigger:
- platform: state
entity_id: input_select.washer_final_pump_state
to: Triggered
action:
- service: notify.everyone
data:
message: Washer is done