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