Thermostat based on outdoor temperature

If you have a big drafty home with no insulation, you know that while the thermostat may say that it is at the correct temperature, but it is in the center of the house and all the other rooms may be up to 10 degrees hotter or colder.

This blueprint uses data from OpenWeather to find out what the high temperature for the day is and adjust your internal temperature based on that data.

blueprint:
  name: Climate Thermostat Schedule
  description: Set climate based on time of day and Daily high temperature
  domain: automation
  input:
    thermostat_selection:
      name: Select Thermostat
      description: Which Thermostat will you be controlling
      selector: 
        entity:
          domain: climate
    set_time:
      name: Set Time
      description: This is the time the automation will trigger
      selector: 
        time:
    below_65_heat:
      name: below 65 heat
      description: set heater when below 65 outside
      default: '70'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    below_65_cool:
      name: below 65 cool
      description: set A/C when below 65 outside
      default: '78'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    65_80_heat:
      name: 65-80 heat
      description: set heater when between 65 and 80 outside
      default: '70'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    65_80_cool:
      name: 65-80 cool
      description: set A/C when between 65 and 80 outside
      default: '78'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    80_95_heat:
      name: 80-95 heat
      description: set heater when between 80 and 95 outside
      default: '70'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    80_95_cool:
      name: 80-95 cool
      description: set A/C when between 80 and 95 outside
      default: '78'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    above_95_heat:
      name: above 95 heat
      description: set heater when above 95 outside
      default: '70'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
    above_95_cool:
      name: above 95 cool 
      description: set A/C when above 95 outside
      default: '78'
      selector:
        number:      
          min: '59'
          max: '95' 
          step: '1'
          mode: slider
variables:
#  thermostat_selection: !input thermostat_selection
  set_time: !input set_time
  below_65_heat: !input 'below_65_heat'
  below_65_cool: !input 'below_65_cool'
  65_80_heat: !input '65_80_heat'
  65_80_cool: !input '65_80_cool'
  80_95_heat: !input '80_95_heat'
  80_95_cool: !input '80_95_cool'
  above_95_heat: !input 'above_95_heat'
  above_95_cool: !input 'above_95_cool'
  
trigger:
  platform: time
  at: !input set_time
action:
  choose:
  - conditions:
    - condition: numeric_state
      entity_id: sensor.openweathermap_forecast_temperature
      below: '65.0'
    sequence:
    - service: climate.set_hvac_mode
      data:
        hvac_mode: heat_cool
      target:
        entity_id: !input thermostat_selection
    - service: climate.set_temperature
      data:
        target_temp_high: !input 'below_65_cool'
        target_temp_low: !input 'below_65_heat'
      target:
        entity_id: !input thermostat_selection

  - conditions:
    - condition: numeric_state
      entity_id: sensor.openweathermap_forecast_temperature
      above: '65.0'
      below: '80.0'
    sequence:
    - service: climate.set_hvac_mode
      data:
        hvac_mode: heat_cool
      target:
        entity_id: !input thermostat_selection
    - service: climate.set_temperature
      data:
        target_temp_high: !input '65_80_cool'
        target_temp_low: !input '65_80_heat'
      target:
        entity_id: !input thermostat_selection
  - conditions:
    - condition: numeric_state
      entity_id: sensor.openweathermap_forecast_temperature
      above: '80.0'
      below: '95.0'
    sequence:
    - service: climate.set_hvac_mode
      data:
        hvac_mode: heat_cool
      target:
        entity_id: !input thermostat_selection
    - service: climate.set_temperature
      data:
        target_temp_high: !input '80_95_cool'
        target_temp_low: !input '80_95_heat'
      target:
        entity_id: !input thermostat_selection
  - conditions:
    - condition: numeric_state
      entity_id: sensor.openweathermap_forecast_temperature
      above: '95.0'
    sequence:
    - service: climate.set_hvac_mode
      data:
        hvac_mode: heat_cool
      target:
        entity_id: !input thermostat_selection
    - service: climate.set_temperature
      data:
        target_temp_high: !input 'above_95_cool'
        target_temp_low: !input 'above_95_heat'
      target:
        entity_id: !input thermostat_selection
mode: single
4 Likes

You should tag this as a climate blueprint , it will be easier to find.

Thanks, thought I had it tagged

just set this up, will give feedback tomorrow. Thanks for sharing.