mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 10:30:14 -04:00
227 lines
6.3 KiB
YAML
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
|