Skip to content

Commit 64d9e6c

Browse files
committed
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.
1 parent aa18331 commit 64d9e6c

3 files changed

Lines changed: 56 additions & 97 deletions

File tree

config/packages/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
4949
| [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` |
5050
| [finance.yaml](finance.yaml) | Yahoo Finance sensor bundle for portfolio glances and Lovelace cards. | `sensor.tsla`, `sensor.aapl`, `sensor.amzn`, `sensor.msft` |
5151

52+
### Nest climate control
53+
- Logic lives in [climate.yaml](climate.yaml) and centralizes downstairs/upstairs Nest schedules, grid-aware guardrails, humidity pulses, and presence/weather-based targets.
54+
- Shared script keeps targets consistent: away → eco, home + >92°F → 78°F, home default → 80°F. Grid-down conditions pause non-essential cool-downs.
55+
![Nest Climate Control](../www/custom_ui/floorplan/images/branding/Nest_Climate_Control.png)
56+
5257
### Blog & video deep dives
5358
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:
5459

@@ -75,6 +80,7 @@ These are the devices that power the packages above. Affiliate links never chang
7580
| Phyn Plus water shutoff | [phynplus.yaml](phynplus.yaml) | Leak events trigger valve closes + critical push notifications. | [![Buy](https://img.shields.io/badge/Buy-Phyn%20Plus-orange?logo=amazon)](https://amzn.to/2Zy3sbJ) |
7681
| Rachio sprinkler controller | [rachio.yaml](rachio.yaml) | Rain skips and seasonal watering adjustments happen automatically. | [![Buy](https://img.shields.io/badge/Buy-Rachio-orange?logo=amazon)](https://amzn.to/2eoPKBW) |
7782
| Tesla Powerwall 2 | [powerwall.yaml](powerwall.yaml) | Grid outages kick off load-shed scripts and status pings. | [![Buy](https://img.shields.io/badge/Buy-Powerwall-orange?logo=tesla)](https://amzn.to/3UM4BZ5) |
83+
| Google Nest thermostat | [climate.yaml](climate.yaml) | Presence/weather/grid-aware cooling targets, humidity pulses, and eco recovery. | [![Buy](https://img.shields.io/badge/Buy-Nest%20Thermostat-orange?logo=google)](https://amzn.to/4olpINw) |
7884
| Dreame/Neato vacuum | [vacuum.yaml](vacuum.yaml) | Scheduled cleaning, maintenance reminders, and voice callouts. | [![Buy](https://img.shields.io/badge/Buy-Vacuum-orange?logo=amazon)](https://amzn.to/4f7NpFP) |
7985
| NodeMCU motion/contact sensor | [alarm.yaml](alarm.yaml), [office_motion.yaml](office_motion.yaml) | ESP8266 nodes feed the alarm matrix and room-aware lighting. | [![Buy](https://img.shields.io/badge/Buy-Motion%20Node-orange?logo=amazon)](https://amzn.to/2oUgj5i) |
8086
| Roku streaming device | [roku.yaml](roku.yaml) | Media presence drives lighting, announcements, and scenes. | [![Buy](https://img.shields.io/badge/Buy-Roku-orange?logo=roku)](https://amzn.to/2Ctp8cr) |

config/packages/climate.yaml

Lines changed: 50 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,52 @@ script:
118118
target:
119119
entity_id: sensor.upstairs_ac_runtime_since_last_filter_change
120120

121+
set_downstairs_target_temp_based_on_conditions:
122+
alias: Set Downstairs Target Temperature Based on Conditions
123+
mode: single
124+
sequence:
125+
- choose:
126+
- conditions:
127+
- condition: state
128+
entity_id: group.family
129+
state: 'not_home'
130+
sequence:
131+
- service: climate.set_preset_mode
132+
data:
133+
entity_id: climate.downstairs
134+
preset_mode: 'eco'
135+
- conditions:
136+
- condition: and
137+
conditions:
138+
- condition: state
139+
entity_id: group.family
140+
state: 'home'
141+
- condition: numeric_state
142+
entity_id: sensor.pirateweather_temperature
143+
above: 92
144+
sequence:
145+
- service: climate.set_hvac_mode
146+
data:
147+
entity_id: climate.downstairs
148+
hvac_mode: cool
149+
- service: climate.set_temperature
150+
data:
151+
entity_id: climate.downstairs
152+
temperature: 78
153+
- conditions:
154+
- condition: state
155+
entity_id: group.family
156+
state: 'home'
157+
sequence:
158+
- service: climate.set_hvac_mode
159+
data:
160+
entity_id: climate.downstairs
161+
hvac_mode: cool
162+
- service: climate.set_temperature
163+
data:
164+
entity_id: climate.downstairs
165+
temperature: 80
166+
121167
##############################################################################
122168
### AUTOMATIONS - Thermostat schedules, guardrails, and presence/weather logic
123169
### Some shutoff automations are also in the ALARM.yaml package when windows/doors are left open.
@@ -253,39 +299,7 @@ automation:
253299
data:
254300
entity_id: climate.downstairs
255301
hvac_mode: cool
256-
- choose:
257-
- conditions:
258-
- condition: and
259-
conditions:
260-
- condition: numeric_state
261-
entity_id: sensor.pirateweather_temperature
262-
above: 92
263-
- condition: state
264-
entity_id: group.family
265-
state: 'home'
266-
sequence:
267-
- service: climate.set_temperature
268-
data:
269-
entity_id: climate.downstairs
270-
temperature: 78
271-
- conditions:
272-
- condition: state
273-
entity_id: group.family
274-
state: 'home'
275-
sequence:
276-
- service: climate.set_temperature
277-
data:
278-
entity_id: climate.downstairs
279-
temperature: 80
280-
- conditions:
281-
- condition: state
282-
entity_id: group.family
283-
state: 'not_home'
284-
sequence:
285-
- service: climate.set_preset_mode
286-
data:
287-
entity_id: climate.downstairs
288-
preset_mode: 'eco'
302+
- service: script.set_downstairs_target_temp_based_on_conditions
289303

290304
# Set thermostats to eco mode when everyone is away
291305
- alias: 'Set Thermostats to Eco When Away'
@@ -314,7 +328,7 @@ automation:
314328
- service: climate.set_temperature
315329
data:
316330
entity_id: climate.upstairs
317-
temperature: 84
331+
temperature: 83
318332

319333
# Automation: Set Thermostats Back to Cool Mode
320334
- alias: 'Set Thermostats to Cool When Home'
@@ -347,28 +361,7 @@ automation:
347361
- climate.downstairs
348362
- climate.upstairs
349363
hvac_mode: cool
350-
- choose:
351-
- conditions:
352-
- condition: numeric_state
353-
entity_id: sensor.pirateweather_temperature
354-
above: 92
355-
- condition: state
356-
entity_id: group.family
357-
state: 'home'
358-
sequence:
359-
- service: climate.set_temperature
360-
data:
361-
entity_id: climate.downstairs
362-
temperature: 78
363-
- conditions:
364-
- condition: state
365-
entity_id: group.family
366-
state: 'home'
367-
sequence:
368-
- service: climate.set_temperature
369-
data:
370-
entity_id: climate.downstairs
371-
temperature: 80
364+
- service: script.set_downstairs_target_temp_based_on_conditions
372365
- service: climate.set_temperature
373366
data:
374367
entity_id: climate.upstairs
@@ -431,46 +424,6 @@ automation:
431424
entity_id: climate.downstairs
432425
temperature: 77
433426
- delay: "00:20:00"
434-
- choose:
435-
- conditions:
436-
- condition: state
437-
entity_id: group.family
438-
state: 'not_home'
439-
sequence:
440-
- service: climate.set_preset_mode
441-
data:
442-
entity_id: climate.downstairs
443-
preset_mode: 'eco'
444-
- conditions:
445-
- condition: and
446-
conditions:
447-
- condition: state
448-
entity_id: group.family
449-
state: 'home'
450-
- condition: numeric_state
451-
entity_id: sensor.pirateweather_temperature
452-
above: 92
453-
sequence:
454-
- service: climate.set_hvac_mode
455-
data:
456-
entity_id: climate.downstairs
457-
hvac_mode: cool
458-
- service: climate.set_temperature
459-
data:
460-
entity_id: climate.downstairs
461-
temperature: 78
462-
- conditions:
463-
- condition: state
464-
entity_id: group.family
465-
state: 'home'
466-
sequence:
467-
- service: climate.set_hvac_mode
468-
data:
469-
entity_id: climate.downstairs
470-
hvac_mode: cool
471-
- service: climate.set_temperature
472-
data:
473-
entity_id: climate.downstairs
474-
temperature: 80
427+
- service: script.set_downstairs_target_temp_based_on_conditions
475428
- delay: "02:00:00" # stops it from being triggered again too soon.
476429

5.46 MB
Loading

0 commit comments

Comments
 (0)