87 lines
2.4 KiB
YAML
87 lines
2.4 KiB
YAML
# Climate Package
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Climate State Helpers
|
|
input_select:
|
|
climate_mode:
|
|
name: Climate Control Mode
|
|
options:
|
|
- Home
|
|
- Night
|
|
- Away
|
|
- 'Off'
|
|
- Manual
|
|
- Paused
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Climate Automations
|
|
automation:
|
|
|
|
# Automations for Open Windows/Doors
|
|
- alias: Pause HVAC when Doors/Windows Open
|
|
mode: queued
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.all_doors
|
|
to: 'on'
|
|
for:
|
|
minutes: 5
|
|
- platform: state
|
|
entity_id: binary_sensor.all_windows
|
|
to: 'on'
|
|
for:
|
|
minutes: 5
|
|
condition: "{{ not is_state('input_select.climate_mode', 'Paused') }}"
|
|
action:
|
|
- service: scene.create
|
|
data:
|
|
scene_id: hvac_restore_state
|
|
snapshot_entities:
|
|
# See https://github.com/home-assistant/core/issues/69925
|
|
# - climate.thermostat
|
|
- input_select.climate_mode
|
|
- service: climate.set_hvac_mode
|
|
target:
|
|
entity_id: climate.thermostat
|
|
data:
|
|
hvac_mode: "off"
|
|
- service: input_select.select_option
|
|
target:
|
|
entity_id: input_select.climate_mode
|
|
data:
|
|
option: Paused
|
|
- service: notify.telegram_home
|
|
data:
|
|
message: HVAC Paused (Window or Door Open)
|
|
|
|
- alias: Restore HVAC when Doors/Windows Closed
|
|
mode: queued
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.all_doors
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 5
|
|
- platform: state
|
|
entity_id: binary_sensor.all_windows
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 5
|
|
condition: "{{ is_state('input_select.climate_mode', 'Paused') }}"
|
|
action:
|
|
- service: scene.turn_on
|
|
target:
|
|
entity_id: scene.hvac_restore_state
|
|
# See https://github.com/home-assistant/core/issues/69925
|
|
# Assume thermostat is always heat_cool when active
|
|
- service: climate.set_hvac_mode
|
|
target:
|
|
entity_id: climate.thermostat
|
|
data:
|
|
hvac_mode: "{{ 'off' if is_state('input_select.climate_mode', 'Off') else 'heat_cool' }}"
|
|
- service: notify.telegram_home
|
|
data:
|
|
message: HVAC Restored (Window or Door Open)
|