|
|
|
@ -6,6 +6,7 @@
|
|
|
|
# Climate Control - Seasonal HVAC automations and sensors.
|
|
|
|
# Climate Control - Seasonal HVAC automations and sensors.
|
|
|
|
# Thermostat helpers for upstairs/downstairs comfort.
|
|
|
|
# Thermostat helpers for upstairs/downstairs comfort.
|
|
|
|
# -------------------------------------------------------------------
|
|
|
|
# -------------------------------------------------------------------
|
|
|
|
|
|
|
|
# Related Issue: 1571
|
|
|
|
######################################################################
|
|
|
|
######################################################################
|
|
|
|
# Contact: @CCOSTAN | Entity reference details below
|
|
|
|
# Contact: @CCOSTAN | Entity reference details below
|
|
|
|
# Entity reference and attribute summaries:
|
|
|
|
# Entity reference and attribute summaries:
|
|
|
|
@ -142,6 +143,28 @@ script:
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
preset_mode: 'eco'
|
|
|
|
preset_mode: 'eco'
|
|
|
|
|
|
|
|
- conditions:
|
|
|
|
|
|
|
|
- condition: and
|
|
|
|
|
|
|
|
conditions:
|
|
|
|
|
|
|
|
- condition: state
|
|
|
|
|
|
|
|
entity_id: group.family
|
|
|
|
|
|
|
|
state: 'home'
|
|
|
|
|
|
|
|
- condition: template
|
|
|
|
|
|
|
|
value_template: >-
|
|
|
|
|
|
|
|
{{ states('sensor.pirateweather_temperature') in ['unknown','unavailable','none',''] }}
|
|
|
|
|
|
|
|
sequence:
|
|
|
|
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
topic: "CLIMATE"
|
|
|
|
|
|
|
|
message: "Outside temp unavailable; allowing downstairs cool mode (defaulting to 80F)."
|
|
|
|
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
|
|
|
|
- service: climate.set_temperature
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
temperature: 80
|
|
|
|
- conditions:
|
|
|
|
- conditions:
|
|
|
|
- condition: and
|
|
|
|
- condition: and
|
|
|
|
conditions:
|
|
|
|
conditions:
|
|
|
|
@ -184,9 +207,8 @@ script:
|
|
|
|
- condition: state
|
|
|
|
- condition: state
|
|
|
|
entity_id: group.family
|
|
|
|
entity_id: group.family
|
|
|
|
state: 'home'
|
|
|
|
state: 'home'
|
|
|
|
- condition: numeric_state
|
|
|
|
- condition: template
|
|
|
|
entity_id: sensor.pirateweather_temperature
|
|
|
|
value_template: "{{ states('sensor.pirateweather_temperature')|float(-999) >= 75 }}"
|
|
|
|
above: 75
|
|
|
|
|
|
|
|
sequence:
|
|
|
|
sequence:
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
@ -346,10 +368,21 @@ automation:
|
|
|
|
entity_id: binary_sensor.powerwall_grid_status
|
|
|
|
entity_id: binary_sensor.powerwall_grid_status
|
|
|
|
state: 'on'
|
|
|
|
state: 'on'
|
|
|
|
action:
|
|
|
|
action:
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
- choose:
|
|
|
|
data:
|
|
|
|
- conditions:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
- condition: numeric_state
|
|
|
|
hvac_mode: cool
|
|
|
|
entity_id: sensor.pirateweather_temperature
|
|
|
|
|
|
|
|
below: 75
|
|
|
|
|
|
|
|
sequence:
|
|
|
|
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
topic: "CLIMATE"
|
|
|
|
|
|
|
|
message: "Skipping downstairs cool mode (outside temp <75F)."
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
|
|
|
|
|
|
|
|
# Set thermostats to eco mode when everyone is away
|
|
|
|
# Set thermostats to eco mode when everyone is away
|
|
|
|
@ -372,10 +405,21 @@ automation:
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
preset_mode: 'eco'
|
|
|
|
preset_mode: 'eco'
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
- choose:
|
|
|
|
data:
|
|
|
|
- conditions:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
- condition: numeric_state
|
|
|
|
hvac_mode: cool
|
|
|
|
entity_id: sensor.pirateweather_temperature
|
|
|
|
|
|
|
|
below: 75
|
|
|
|
|
|
|
|
sequence:
|
|
|
|
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
topic: "CLIMATE"
|
|
|
|
|
|
|
|
message: "Skipping downstairs cool mode (outside temp <75F)."
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
- service: climate.set_temperature
|
|
|
|
- service: climate.set_temperature
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
entity_id: climate.upstairs
|
|
|
|
entity_id: climate.upstairs
|
|
|
|
@ -406,11 +450,24 @@ automation:
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
preset_mode: 'none'
|
|
|
|
preset_mode: 'none'
|
|
|
|
|
|
|
|
- choose:
|
|
|
|
|
|
|
|
- conditions:
|
|
|
|
|
|
|
|
- condition: numeric_state
|
|
|
|
|
|
|
|
entity_id: sensor.pirateweather_temperature
|
|
|
|
|
|
|
|
below: 75
|
|
|
|
|
|
|
|
sequence:
|
|
|
|
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
topic: "CLIMATE"
|
|
|
|
|
|
|
|
message: "Skipping downstairs cool mode (outside temp <75F)."
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
data:
|
|
|
|
data:
|
|
|
|
entity_id:
|
|
|
|
entity_id: climate.upstairs
|
|
|
|
- climate.downstairs
|
|
|
|
|
|
|
|
- climate.upstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
hvac_mode: cool
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
- service: climate.set_temperature
|
|
|
|
- service: climate.set_temperature
|
|
|
|
@ -462,18 +519,29 @@ automation:
|
|
|
|
entity_id: binary_sensor.powerwall_grid_status
|
|
|
|
entity_id: binary_sensor.powerwall_grid_status
|
|
|
|
state: 'on'
|
|
|
|
state: 'on'
|
|
|
|
action:
|
|
|
|
action:
|
|
|
|
- service: climate.set_preset_mode
|
|
|
|
- choose:
|
|
|
|
data:
|
|
|
|
- conditions:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
- condition: numeric_state
|
|
|
|
preset_mode: 'none'
|
|
|
|
entity_id: sensor.pirateweather_temperature
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
below: 75
|
|
|
|
data:
|
|
|
|
sequence:
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
- service: script.send_to_logbook
|
|
|
|
hvac_mode: cool
|
|
|
|
data:
|
|
|
|
- service: climate.set_temperature
|
|
|
|
topic: "CLIMATE"
|
|
|
|
data:
|
|
|
|
message: "Skipping downstairs cool mode (outside temp <75F)."
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
default:
|
|
|
|
temperature: 77
|
|
|
|
- service: climate.set_preset_mode
|
|
|
|
- delay: "00:20:00"
|
|
|
|
data:
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
- delay: "02:00:00" # stops it from being triggered again too soon.
|
|
|
|
preset_mode: 'none'
|
|
|
|
|
|
|
|
- service: climate.set_hvac_mode
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
hvac_mode: cool
|
|
|
|
|
|
|
|
- service: climate.set_temperature
|
|
|
|
|
|
|
|
data:
|
|
|
|
|
|
|
|
entity_id: climate.downstairs
|
|
|
|
|
|
|
|
temperature: 77
|
|
|
|
|
|
|
|
- delay: "00:20:00"
|
|
|
|
|
|
|
|
- service: script.set_downstairs_target_temp_based_on_conditions
|
|
|
|
|
|
|
|
- delay: "02:00:00" # stops it from being triggered again too soon.
|
|
|
|
|