mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2025-12-03 03:21:47 +00:00
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:
@@ -49,6 +49,11 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
|
||||
| [hass_agent_homepc.yaml](hass_agent_homepc.yaml) | Mirrors PC lock/unlock state from HASS.Agent to the office lamp for instant desk presence cues. | `sensor.carlo_homepc_carlo_homepc_sessionstate`, `switch.office_lamp_switch` |
|
||||
| [finance.yaml](finance.yaml) | Yahoo Finance sensor bundle for portfolio glances and Lovelace cards. | `sensor.tsla`, `sensor.aapl`, `sensor.amzn`, `sensor.msft` |
|
||||
|
||||
### Nest climate control
|
||||
- Logic lives in [climate.yaml](climate.yaml) and centralizes downstairs/upstairs Nest schedules, grid-aware guardrails, humidity pulses, and presence/weather-based targets.
|
||||
- Shared script keeps targets consistent: away → eco, home + >92°F → 78°F, home default → 80°F. Grid-down conditions pause non-essential cool-downs.
|
||||

|
||||
|
||||
### Blog & video deep dives
|
||||
When a package has a dedicated blog post or video, I link it right inside the YAML comments. Here are the same references for quick browsing:
|
||||
|
||||
@@ -75,6 +80,7 @@ These are the devices that power the packages above. Affiliate links never chang
|
||||
| Phyn Plus water shutoff | [phynplus.yaml](phynplus.yaml) | Leak events trigger valve closes + critical push notifications. | [](https://amzn.to/2Zy3sbJ) |
|
||||
| Rachio sprinkler controller | [rachio.yaml](rachio.yaml) | Rain skips and seasonal watering adjustments happen automatically. | [](https://amzn.to/2eoPKBW) |
|
||||
| Tesla Powerwall 2 | [powerwall.yaml](powerwall.yaml) | Grid outages kick off load-shed scripts and status pings. | [](https://amzn.to/3UM4BZ5) |
|
||||
| Google Nest thermostat | [climate.yaml](climate.yaml) | Presence/weather/grid-aware cooling targets, humidity pulses, and eco recovery. | [](https://amzn.to/4olpINw) |
|
||||
| Dreame/Neato vacuum | [vacuum.yaml](vacuum.yaml) | Scheduled cleaning, maintenance reminders, and voice callouts. | [](https://amzn.to/4f7NpFP) |
|
||||
| NodeMCU motion/contact sensor | [alarm.yaml](alarm.yaml), [office_motion.yaml](office_motion.yaml) | ESP8266 nodes feed the alarm matrix and room-aware lighting. | [](https://amzn.to/2oUgj5i) |
|
||||
| Roku streaming device | [roku.yaml](roku.yaml) | Media presence drives lighting, announcements, and scenes. | [](https://amzn.to/2Ctp8cr) |
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.5 MiB |
Reference in New Issue
Block a user