Files
zorruno-homeassistant/packages/heat_pump_master_bedroom_schedules.yaml
T
2026-07-21 13:40:06 +12:00

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