cadence based fan management

This commit is contained in:
2025-07-06 16:45:10 -04:00
parent 93441c06e8
commit 0a2381e91b

View File

@ -0,0 +1,65 @@
blueprint:
name: Fan Cadence with Light Check
description: >
Runs a fan on a cadence every X minutes.
Turns it off after Y seconds unless any of the specified lights are on.
domain: automation
input:
fan_entity:
name: Fan Entity
selector:
entity:
domain: fan
interval_minutes:
name: Fan Activation Interval (minutes)
description: How often to turn the fan on
default: 15
selector:
number:
min: 1
max: 1440
unit_of_measurement: minutes
duration_seconds:
name: How Long to Keep Fan On (seconds)
description: How long the fan stays on before trying to turn it off
default: 60
selector:
number:
min: 5
max: 3600
unit_of_measurement: seconds
override_lights:
name: Override Lights
description: Fan will not be turned off if any of these lights are on
selector:
entity:
domain: light
multiple: true
trigger:
- platform: time_pattern
minutes: "/{{ iif(interval_minutes | int > 0, interval_minutes, 15) }}"
variables:
fan: !input fan_entity
lights: !input override_lights
condition: []
action:
- service: fan.turn_on
target:
entity_id: "{{ fan }}"
- delay:
seconds: !input duration_seconds
- condition: template
value_template: >
{{ lights | map('states') | select('eq', 'on') | list | length == 0 }}
- service: fan.turn_off
target:
entity_id: "{{ fan }}"
mode: parallel