home-assistant/automations/ac_peak_ends.yaml

47 lines
1.8 KiB
YAML
Raw Permalink Normal View History

# ac_peak_ends — end of the on-peak window, return the house to comfort (both seasons)
#
# id / entity : ac_peak_ends -> automation.ac_peak_ends_return_to_74
# triggers : 19:00 (id: summer) and 21:00 (id: winter), local time
# purpose : Return the AC to 74F after the on-peak window ends.
#
# Self-selecting by season (peak *ends* at 19:00 summer, 21:00 winter). A trigger
# only acts when trigger.id == the current season.
#
# Summer returns to 74 every day (comfort), matching the original behavior.
# Winter is COOLING-ONLY: it only returns to 74 when the thermostat is already in
# `cool`, so it never disturbs the gas furnace.
#
# Setpoints come from the `params` map (shared shape with ac_peak_setback).
#
# v3 (2026-07-09): unified summer+winter, season params map, winter cooling-only.
id: ac_peak_ends
alias: AC - Peak ends, return to 74
description: >-
v3 (2026-07-09). Returns the AC to 74F after the on-peak window: summer 7pm,
winter 9pm. Summer returns daily; winter is cooling-only (never touches gas
heat). Managed in git; see AUTOMATIONS.md.
mode: single
triggers:
- trigger: time
at: "19:00:00"
id: summer
- trigger: time
at: "21:00:00"
id: winter
conditions: []
actions:
- variables:
season: "{{ 'summer' if now().month in [6,7,8,9] else 'winter' }}"
cooling: "{{ is_state('climate.t6_pro_z_wave_programmable_thermostat_with_smartstart','cool') }}"
params: "{{ {'summer': {'hold': 82, 'ret': 74}, 'winter': {'hold': 82, 'ret': 74}} }}"
applies: "{{ trigger.id == season }}"
- if:
- condition: template
value_template: "{{ applies and (season == 'summer' or cooling) }}"
then:
- action: climate.set_temperature
target:
entity_id: climate.t6_pro_z_wave_programmable_thermostat_with_smartstart
data:
temperature: "{{ params[season]['ret'] }}"