219 lines
7.0 KiB
YAML
219 lines
7.0 KiB
YAML
##########################################################################################
|
|
# heat_pump_master_bedroom_schedules.yaml
|
|
##########################################################################################
|
|
|
|
##########################################################################################
|
|
# HELPERS
|
|
##########################################################################################
|
|
|
|
input_boolean:
|
|
master_bedroom_night_power_mode:
|
|
name: Night Power Mode
|
|
icon: mdi:weather-night
|
|
|
|
master_bedroom_9pm_on:
|
|
name: 9pm On
|
|
icon: mdi:clock-start
|
|
|
|
master_bedroom_midnight_off:
|
|
name: Midnight Off
|
|
icon: mdi:clock-end
|
|
|
|
master_bedroom_boost_restore_off:
|
|
name: Master Bedroom Boost Restore Off
|
|
icon: mdi:power
|
|
|
|
##########################################################################################
|
|
# TIMERS
|
|
##########################################################################################
|
|
|
|
timer:
|
|
master_bedroom_boost_timer:
|
|
name: Master Bedroom Boost Timer
|
|
duration: "00:00:00"
|
|
|
|
##########################################################################################
|
|
# SCRIPTS
|
|
##########################################################################################
|
|
|
|
script:
|
|
master_bedroom_boost_1hr:
|
|
alias: Master Bedroom Boost 1hr
|
|
mode: restart
|
|
sequence:
|
|
# Remember if the heat pump was OFF when boost started
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.master_bedroom_boost_restore_off
|
|
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: climate.master_bedroom
|
|
state: "off"
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.master_bedroom_boost_restore_off
|
|
|
|
# Start boost (this will turn it on if it was off)
|
|
- service: climate.turn_on
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
|
|
- service: climate.set_preset_mode
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
data:
|
|
preset_mode: "boost"
|
|
|
|
- service: timer.start
|
|
target:
|
|
entity_id: timer.master_bedroom_boost_timer
|
|
data:
|
|
duration: "01:00:00"
|
|
|
|
##########################################################################################
|
|
# AUTOMATIONS
|
|
##########################################################################################
|
|
|
|
automation:
|
|
##########################################################################################
|
|
# CANCEL LOGIC
|
|
##########################################################################################
|
|
|
|
- alias: MB Cancel Others When Night Power Enabled
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.master_bedroom_night_power_mode
|
|
to: "on"
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id:
|
|
- input_boolean.master_bedroom_9pm_on
|
|
- input_boolean.master_bedroom_midnight_off
|
|
|
|
- alias: MB Cancel Night Power If 9pm On Enabled
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.master_bedroom_9pm_on
|
|
to: "on"
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.master_bedroom_night_power_mode
|
|
|
|
- alias: MB Cancel Night Power If Midnight Off Enabled
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.master_bedroom_midnight_off
|
|
to: "on"
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.master_bedroom_night_power_mode
|
|
|
|
##########################################################################################
|
|
# 9PM LOGIC
|
|
##########################################################################################
|
|
|
|
- alias: MB 9PM Start Logic
|
|
trigger:
|
|
- platform: time
|
|
at: "21:00:00"
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_night_power_mode
|
|
state: "on"
|
|
sequence:
|
|
- service: climate.turn_on
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
|
|
- service: climate.set_preset_mode
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
data:
|
|
preset_mode: "boost"
|
|
|
|
- service: timer.start
|
|
target:
|
|
entity_id: timer.master_bedroom_boost_timer
|
|
data:
|
|
duration: "00:30:00"
|
|
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_9pm_on
|
|
state: "on"
|
|
sequence:
|
|
- service: climate.turn_on
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
|
|
##########################################################################################
|
|
# MIDNIGHT LOGIC
|
|
##########################################################################################
|
|
|
|
- alias: MB Midnight Off Logic
|
|
trigger:
|
|
- platform: time
|
|
at: "00:00:00"
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_midnight_off
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_night_power_mode
|
|
state: "on"
|
|
sequence:
|
|
- service: climate.turn_off
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
|
|
##########################################################################################
|
|
# BOOST TIMER FINISHED
|
|
##########################################################################################
|
|
|
|
- alias: MB Boost Timer Finished
|
|
trigger:
|
|
- platform: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.master_bedroom_boost_timer
|
|
action:
|
|
- choose:
|
|
# If boost started while the heat pump was OFF, ensure it ends OFF
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_boost_restore_off
|
|
state: "on"
|
|
sequence:
|
|
- service: climate.turn_off
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
|
|
# Otherwise, revert to Normal (preset_mode none) and keep running
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.master_bedroom_boost_restore_off
|
|
state: "off"
|
|
sequence:
|
|
- service: climate.set_preset_mode
|
|
target:
|
|
entity_id: climate.master_bedroom
|
|
data:
|
|
preset_mode: "none"
|
|
|
|
# Always clear the helper
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.master_bedroom_boost_restore_off
|