271 lines
9.1 KiB
YAML
271 lines
9.1 KiB
YAML
##########################################################################################
|
|
# Master Bedroom Heat Pump Schedules
|
|
##########################################################################################
|
|
#
|
|
# TITLE:
|
|
# Master Bedroom Heat Pump Schedules
|
|
#
|
|
# FILE:
|
|
# packages/heat_pump_master_bedroom_schedules.yaml
|
|
#
|
|
# VERSION:
|
|
# V1.1 2026-07-20
|
|
#
|
|
# VERSION HISTORY:
|
|
# V1.1 2026-07-20
|
|
# - Added structured documentation for schedules, boost, and helper behavior.
|
|
#
|
|
# V1.0
|
|
# - Initial master bedroom heat pump schedules and boost controls.
|
|
#
|
|
# PURPOSE:
|
|
# Provides optional 21:00 start and midnight stop schedules, a combined Night
|
|
# Power mode, and a manual one-hour boost for the master bedroom heat pump.
|
|
#
|
|
# DEPENDENCIES:
|
|
# - climate.master_bedroom provides the Panasonic Comfort Cloud heat pump.
|
|
# - The climate entity must support the "boost" and "none" preset modes.
|
|
# - packages/heat_pump_master_bedroom_helpers.yaml provides companion
|
|
# dashboard, setpoint, HVAC mode, profile, and sleep-timer controls.
|
|
#
|
|
# SCHEDULE MODES:
|
|
# - Night Power Mode turns the heat pump on at 21:00, applies boost for 30
|
|
# minutes, returns it to the normal preset, and turns it off at midnight.
|
|
# - 9pm On turns the heat pump on at 21:00 without changing its preset.
|
|
# - Midnight Off turns the heat pump off at midnight.
|
|
# - Enabling Night Power disables the separate 9pm On and Midnight Off modes.
|
|
# - Enabling either separate mode disables Night Power. The separate 9pm On
|
|
# and Midnight Off modes may be enabled together.
|
|
#
|
|
# MANUAL BOOST:
|
|
# - script.master_bedroom_boost_1hr applies boost for one hour.
|
|
# - If the heat pump was off when boost started, it is turned off afterward.
|
|
# - If it was already running, boost ends by restoring the normal preset and
|
|
# leaving the heat pump running.
|
|
#
|
|
# INTERNAL STATE:
|
|
# - input_boolean.master_bedroom_boost_restore_off records whether manual
|
|
# boost should restore the heat pump to off.
|
|
# - timer.master_bedroom_boost_timer controls manual and scheduled boost time.
|
|
#
|
|
# OPERATION NOTES:
|
|
# - The 21:00 and midnight schedules use exact-time triggers.
|
|
# - There is no startup catch-up if Home Assistant is offline at either time.
|
|
#
|
|
##########################################################################################
|
|
|
|
##########################################################################################
|
|
# 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
|