Files
fresh-home/components/packages/appliances/tumble_dryer.yaml
T
2026-05-04 21:01:23 -04:00

227 lines
6.3 KiB
YAML

template:
- trigger:
- trigger: state
entity_id:
- sensor.pm_dryer_w
- input_number.tumble_dryer_delay_on
- input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- trigger: event
event_type: event_template_reloaded
id: "reload"
- trigger: homeassistant
event: start
binary_sensor:
- name: Tumble Dryer
unique_id: binary-sensor-tumble-dryer
delay_on: "{{states('input_number.tumble_dryer_delay_on') | float(default=0)}}"
delay_off: "{{states('input_number.tumble_dryer_delay_off') | float(default=0)}}"
icon: mdi:tumble-dryer
availability: "{{ states('sensor.pm_dryer_w') not in ['unknown', 'unavailable'] }}"
attributes:
model_number: "DVE45R6100W/A3"
serial_number: "0AY95BBM605793X"
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
state: "{{ states('sensor.pm_dryer_w')|float(default=0) >= states('input_number.tumble_dryer_on')|float(default=0) }}"
- trigger:
- trigger: state
entity_id: sensor.pm_dryer_w
not_to:
- "unknown"
- "unavailable"
- trigger: state
entity_id: input_number.tumble_dryer_delay_on
not_to:
- "unknown"
- "unavailable"
- trigger: state
entity_id: input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- id: door_open
trigger: state
entity_id: binary_sensor.tumble_dryer_door_contact
from: "off"
to: "on"
for:
seconds: 5
- trigger: event
event_type: event_template_reloaded
id: "reload"
- trigger: homeassistant
event: start
sensor:
- name: Tumble Dryer
unique_id: templatesensor_tumble_dryer
state: >
{% if is_state('binary_sensor.tumble_dryer','on') %}
running
{% elif is_state('binary_sensor.tumble_dryer','off') and is_state('input_boolean.fold_clothes','on') %}
{% if is_state('binary_sensor.tumble_dryer_door_contact','on') %}
idle
{% else %}
pending
{% endif %}
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.tumble_dryer','idle') %}
mdi:tumble-dryer-off
{% elif is_state('sensor.tumble_dryer','pending') %}
mdi:tumble-dryer-alert
{% else %}
mdi:tumble-dryer
{% endif %}
attributes:
model_number: "DVE45R6100W/A3"
serial_number: "0AY95BBM605793X"
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
input_boolean:
fold_clothes:
name: Fold Clothes
icon: mdi:hanger
input_number:
tumble_dryer_on:
# was 10
name: "Tumble Dryer On"
icon: mdi:tumble-dryer
min: 0
max: 1000
step: 0.1
mode: box
unit_of_measurement: W
tumble_dryer_off:
name: "Tumble Dryer Off"
icon: mdi:tumble-dryer-off
min: 0
max: 1000
step: 0.1
mode: box
unit_of_measurement: W
tumble_dryer_delay_on:
name: "Tumble Dryer Delay On"
icon: mdi:clock
min: 0
max: 900
step: 10
mode: box
tumble_dryer_delay_off:
# was 10
name: "Tumble Dryer Delay Off"
icon: mdi:clock-alert
min: 0
max: 900
step: 10
mode: box
automation:
- id: automation_fold_clothes_state
alias: Fold Clothes
trigger:
- id: tumble_dryer_off
trigger: state
entity_id: binary_sensor.tumble_dryer
from: "on"
to: "off"
- id: tumble_dryer_on
trigger: state
entity_id: binary_sensor.tumble_dryer
from: "off"
to: "on"
- id: door_open
trigger: state
entity_id: binary_sensor.tumble_dryer_door_contact
from: "off"
to: "on"
for:
seconds: 5
condition: []
action:
- choose:
- alias: "Dryer is running. No need to fold clothes yet"
conditions:
- condition: trigger
id: tumble_dryer_on
- condition: state
entity_id: input_boolean.fold_clothes
state: "on"
sequence:
- action: logbook.log
data_template:
name: Fold Clothes - Load started
entity_id: automation.fold_clothes
message: Dryer turned on. No need to fold clothes yet. Turning off input_boolean in case it got left on
- action: homeassistant.turn_off
target:
entity_id: input_boolean.fold_clothes
- alias: "Dryer finished while door was shut"
conditions:
- condition: trigger
id: tumble_dryer_off
- condition: state
entity_id: binary_sensor.tumble_dryer_door_contact
state: "off"
sequence:
- action: logbook.log
data_template:
name: Fold Clothes - Load finished
entity_id: automation.fold_clothes
message: Dryer just turned off. Assuming clothes need to be folded
- action: homeassistant.turn_on
target:
entity_id: input_boolean.fold_clothes
- alias: "Door was opened while dryer was off"
conditions:
- condition: trigger
id: door_open
- condition: state
entity_id: binary_sensor.tumble_dryer
state: "off"
- condition: state
entity_id: input_boolean.fold_clothes
state: "on"
sequence:
- action: logbook.log
data_template:
name: Fold Clothes - Clothes folded
entity_id: automation.fold_clothes
message: Door was opened while dryer was off. Assuming clothes are now folded
- action: homeassistant.turn_off
target:
entity_id: input_boolean.fold_clothes
mode: single