mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-10 11:00:14 -04:00
initial push
This commit is contained in:
@@ -0,0 +1,297 @@
|
||||
alias: Automatic Fan Speeds
|
||||
id: automation_fan_speeds
|
||||
mode: parallel
|
||||
max: 4
|
||||
|
||||
trigger:
|
||||
- platform: homeassistant
|
||||
event: start
|
||||
id: start
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.nursery_multisensor_air_temperature
|
||||
id: nursery_off
|
||||
below: input_number.nursery_fan_low_temp
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.nursery_multisensor_air_temperature
|
||||
id: nursery_low
|
||||
above: input_number.nursery_fan_low_temp
|
||||
below: input_number.nursery_fan_medium_temp
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.nursery_multisensor_air_temperature
|
||||
id: nursery_mid
|
||||
above: input_number.nursery_fan_medium_temp
|
||||
below: input_number.nursery_fan_high_temp
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.nursery_multisensor_air_temperature
|
||||
id: nursery_high
|
||||
above: input_number.nursery_fan_high_temp
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.master_bedroom_multisensor_air_temperature
|
||||
below: input_number.master_bedroom_fan_low_temp
|
||||
id: mbr_off
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.master_bedroom_multisensor_air_temperature
|
||||
above: input_number.master_bedroom_fan_low_temp
|
||||
below: input_number.master_bedroom_fan_medium_temp
|
||||
id: mbr_low
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.master_bedroom_multisensor_air_temperature
|
||||
above: input_number.master_bedroom_fan_medium_temp
|
||||
below: input_number.master_bedroom_fan_high_temp
|
||||
id: mbr_med
|
||||
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.master_bedroom_multisensor_air_temperature
|
||||
above: input_number.master_bedroom_fan_high_temp
|
||||
id: mbr_high
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.nursery_occupied
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.master_bedroom_occupied
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.nursery_asleep
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.master_bedroom_asleep
|
||||
|
||||
# Chose not to use conditions so fan speeds will be updated regardless of trigger
|
||||
|
||||
condition:
|
||||
- alias: "Only turn the fans on if it's warm enough outside"
|
||||
condition: template
|
||||
value_template: "{{ (states('sensor.lacrosse_tx141thbv2_0_54_temperature') | float(default=0) > 60.0) or is_state('group.ceiling_fans','on') }}"
|
||||
|
||||
action:
|
||||
- alias: "Calculate fan speeds"
|
||||
variables:
|
||||
nursery_fan_speed: "{{((states('sensor.nursery_multisensor_air_temperature') | float(default=0) - states('input_number.nursery_fan_min_temp') | float(default=0))/(states('input_number.nursery_fan_high_temp') | float(default=1) - states('input_number.nursery_fan_min_temp') | float(default=0)) * 100)|int(default=0) }}"
|
||||
master_bedroom_fan_speed: "{{((states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0) - states('input_number.master_bedroom_fan_min_temp') | float(default=0))/(states('input_number.master_bedroom_fan_high_temp') | float(default=1) - states('input_number.master_bedroom_fan_min_temp') | float(default=0)) * 100)|int(default=0) }}"
|
||||
|
||||
- service: logbook.log
|
||||
data_template:
|
||||
name: Automatic Fan Speeds
|
||||
entity_id: automation.automatic_fan_speeds
|
||||
message: >
|
||||
Outdoor Air Temp: {{states('sensor.lacrosse_tx141thbv2_0_54_temperature') | float(default=0)}}
|
||||
Nursery Air Temp: {{states('sensor.nursery_multisensor_air_temperature') | float(default=0)}}
|
||||
Nursery Min Temp: {{states('input_number.nursery_fan_min_temp') | float(default=0)}}
|
||||
Nursery High Temp: {{states('input_number.nursery_fan_high_temp') | float(default=0)}}
|
||||
Nursery Calculated: {{ nursery_fan_speed }}
|
||||
Master Bedroom Air Temp: {{states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0)}}
|
||||
Master Bedroom Min Temp: {{states('input_number.master_bedroom_fan_min_temp') | float(default=0)}}
|
||||
Master Bedroom High Temp: {{states('input_number.master_bedroom_fan_high_temp') | float(default=0)}}
|
||||
Master Bedroom Calculated: {{ master_bedroom_fan_speed }}
|
||||
|
||||
- alias: "Set Nursery fan speed"
|
||||
choose:
|
||||
- conditions:
|
||||
- alias: "It is too cold outside to start the nursery fan"
|
||||
condition: numeric_state
|
||||
entity_id: sensor.nursery_multisensor_air_temperature
|
||||
below: input_number.nursery_fan_min_temp
|
||||
- alias: "Nursery fan on"
|
||||
condition: state
|
||||
entity_id: fan.nursery
|
||||
state: "on"
|
||||
sequence:
|
||||
- alias: "Turn nursery fan off because it is too cold outside"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
- conditions:
|
||||
- alias: "Nusery not occupied and window is closed"
|
||||
condition: state
|
||||
entity_id: input_boolean.nursery_occupied
|
||||
state: "off"
|
||||
- alias: "Nusery not asleep"
|
||||
condition: state
|
||||
entity_id: input_boolean.nursery_asleep
|
||||
state: "off"
|
||||
- alias: "Nursery fan on"
|
||||
condition: state
|
||||
entity_id: fan.nursery
|
||||
state: "on"
|
||||
- alias: "Nursery window is closed"
|
||||
condition: state
|
||||
entity_id: binary_sensor.nursery_window_contact
|
||||
state: "off"
|
||||
sequence:
|
||||
- alias: "Turn nursery fan off because room isn't occupied"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
- conditions:
|
||||
- alias: "Nursery below low"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.nursery_multisensor_air_temperature') | float(default=0) <= states('input_number.nursery_fan_min_temp') | float(default=0)}}"
|
||||
|
||||
- alias: "Nursery fan on"
|
||||
condition: state
|
||||
entity_id: fan.nursery
|
||||
state: "on"
|
||||
sequence:
|
||||
- alias: "Turn nursery fan off because the room is too cool"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
- conditions:
|
||||
- alias: "Nursery is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.nursery_occupied
|
||||
state: "on"
|
||||
- alias: "Nusery above high"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.nursery_multisensor_air_temperature') | float(default=0) > states('input_number.nursery_fan_high_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn nursery fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
data:
|
||||
percentage: 100
|
||||
|
||||
- conditions:
|
||||
- alias: "Nursery is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.nursery_occupied
|
||||
state: "on"
|
||||
- alias: "Nusery above medium"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.nursery_multisensor_air_temperature') | float(default=0) > states('input_number.nursery_fan_medium_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn nursery fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
data:
|
||||
percentage: 66
|
||||
|
||||
- conditions:
|
||||
- alias: "Nursery is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.nursery_occupied
|
||||
state: "on"
|
||||
- alias: "Nusery above low"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.nursery_multisensor_air_temperature') | float(default=0) > states('input_number.nursery_fan_low_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn nursery fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.nursery
|
||||
data:
|
||||
percentage: 33
|
||||
|
||||
- alias: "Set Master Bedroom fan speed"
|
||||
choose:
|
||||
- conditions:
|
||||
- alias: "It is too cold outside, so turn off the master bedroom fan"
|
||||
condition: numeric_state
|
||||
entity_id: sensor.master_bedroom_multisensor_air_temperature
|
||||
below: input_number.master_bedroom_fan_min_temp
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan off because it is too cold outside"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
- conditions:
|
||||
- alias: "Master Bedroom not occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.master_bedroom_occupied
|
||||
state: "off"
|
||||
- alias: "Master Bedroom not asleep"
|
||||
condition: state
|
||||
entity_id: input_boolean.master_bedroom_asleep
|
||||
state: "off"
|
||||
- alias: "Master Bedroom fan on"
|
||||
condition: state
|
||||
entity_id: fan.master_bedroom
|
||||
state: "on"
|
||||
- alias: "Master bedroom window is closed"
|
||||
condition: state
|
||||
entity_id: binary_sensor.master_bedroom_window_contact
|
||||
state: "off"
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan off because room isn't occupied"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
|
||||
- conditions:
|
||||
- alias: "Master Bedroom below low"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0) <= states('input_number.master_bedroom_fan_min_temp') | float(default=0)}}"
|
||||
|
||||
- alias: "Master Bedroom fan on"
|
||||
condition: state
|
||||
entity_id: fan.master_bedroom
|
||||
state: "on"
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan off because the room is too cool"
|
||||
service: fan.turn_off
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
|
||||
- conditions:
|
||||
- alias: "Master Bedroom is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.master_bedroom_occupied
|
||||
state: "on"
|
||||
- alias: "Master Bedroom above high"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0) > states('input_number.master_bedroom_fan_high_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
data:
|
||||
percentage: 100
|
||||
|
||||
- conditions:
|
||||
- alias: "Master Bedroom is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.master_bedroom_occupied
|
||||
state: "on"
|
||||
- alias: "Master Bedroom above medium"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0) > states('input_number.master_bedroom_fan_medium_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
data:
|
||||
percentage: 66
|
||||
|
||||
- conditions:
|
||||
- alias: "Master Bedroom is occupied"
|
||||
condition: state
|
||||
entity_id: input_boolean.master_bedroom_occupied
|
||||
state: "on"
|
||||
- alias: "Master Bedroom above low"
|
||||
condition: template
|
||||
value_template: "{{states('sensor.master_bedroom_multisensor_air_temperature') | float(default=0) > states('input_number.master_bedroom_fan_low_temp') | float(default=0)}}"
|
||||
|
||||
sequence:
|
||||
- alias: "Turn master bedroom fan on to percentage speed"
|
||||
service: fan.set_percentage
|
||||
target:
|
||||
entity_id: fan.master_bedroom
|
||||
data:
|
||||
percentage: 33
|
||||
Reference in New Issue
Block a user