Add script for dynamic downstairs temperature control in climate.yaml, consolidating existing automation logic into a single sequence. Update README.md to reflect new Nest climate control features and improve device descriptions.

This commit is contained in:
Carlo Costanzo
2025-11-26 14:53:47 -05:00
parent aa18331b51
commit 64d9e6c6ac
3 changed files with 56 additions and 97 deletions

View File

@@ -118,6 +118,52 @@ script:
target:
entity_id: sensor.upstairs_ac_runtime_since_last_filter_change
set_downstairs_target_temp_based_on_conditions:
alias: Set Downstairs Target Temperature Based on Conditions
mode: single
sequence:
- choose:
- conditions:
- condition: state
entity_id: group.family
state: 'not_home'
sequence:
- service: climate.set_preset_mode
data:
entity_id: climate.downstairs
preset_mode: 'eco'
- conditions:
- condition: and
conditions:
- condition: state
entity_id: group.family
state: 'home'
- condition: numeric_state
entity_id: sensor.pirateweather_temperature
above: 92
sequence:
- service: climate.set_hvac_mode
data:
entity_id: climate.downstairs
hvac_mode: cool
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 78
- conditions:
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_hvac_mode
data:
entity_id: climate.downstairs
hvac_mode: cool
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 80
##############################################################################
### AUTOMATIONS - Thermostat schedules, guardrails, and presence/weather logic
### Some shutoff automations are also in the ALARM.yaml package when windows/doors are left open.
@@ -253,39 +299,7 @@ automation:
data:
entity_id: climate.downstairs
hvac_mode: cool
- choose:
- conditions:
- condition: and
conditions:
- condition: numeric_state
entity_id: sensor.pirateweather_temperature
above: 92
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 78
- conditions:
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 80
- conditions:
- condition: state
entity_id: group.family
state: 'not_home'
sequence:
- service: climate.set_preset_mode
data:
entity_id: climate.downstairs
preset_mode: 'eco'
- service: script.set_downstairs_target_temp_based_on_conditions
# Set thermostats to eco mode when everyone is away
- alias: 'Set Thermostats to Eco When Away'
@@ -314,7 +328,7 @@ automation:
- service: climate.set_temperature
data:
entity_id: climate.upstairs
temperature: 84
temperature: 83
# Automation: Set Thermostats Back to Cool Mode
- alias: 'Set Thermostats to Cool When Home'
@@ -347,28 +361,7 @@ automation:
- climate.downstairs
- climate.upstairs
hvac_mode: cool
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.pirateweather_temperature
above: 92
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 78
- conditions:
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 80
- service: script.set_downstairs_target_temp_based_on_conditions
- service: climate.set_temperature
data:
entity_id: climate.upstairs
@@ -431,46 +424,6 @@ automation:
entity_id: climate.downstairs
temperature: 77
- delay: "00:20:00"
- choose:
- conditions:
- condition: state
entity_id: group.family
state: 'not_home'
sequence:
- service: climate.set_preset_mode
data:
entity_id: climate.downstairs
preset_mode: 'eco'
- conditions:
- condition: and
conditions:
- condition: state
entity_id: group.family
state: 'home'
- condition: numeric_state
entity_id: sensor.pirateweather_temperature
above: 92
sequence:
- service: climate.set_hvac_mode
data:
entity_id: climate.downstairs
hvac_mode: cool
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 78
- conditions:
- condition: state
entity_id: group.family
state: 'home'
sequence:
- service: climate.set_hvac_mode
data:
entity_id: climate.downstairs
hvac_mode: cool
- service: climate.set_temperature
data:
entity_id: climate.downstairs
temperature: 80
- service: script.set_downstairs_target_temp_based_on_conditions
- delay: "02:00:00" # stops it from being triggered again too soon.