How to shut off the AC when the outside temperature is lower than inside?

This time of year it is really hot during the day and it cools down quickly in the evening. I’m trying to find an app that will shut off the AC once the outside temperature is lower than the inside. I can’t find anything.

What do you currently use to control the AC? And what’s its brand and model?

If it’s just a switch, you can use the “whole house fan” smart app in the Climate Control section in the marketplace section of the SmartThings mobile app.

If it’s an actual thermostat, it’s going to depend on which thermostat.

I the one I use is “Thermostat mode autoset” Turn off the AC when below a set temp, turn off the heat above a set temp. Also turn off it the doors are left open.

Granted, this one doesn’t do a comparison, but you can set the threshold to the AC setpoint and it should be close enough.

Or, you could code it. easy enough in CoRE or groovy.

If you use a nest, and nest manager app, there is a built in automation you can enable to do this. It is called External Temperature.

1 Like

One I just threw together. I am not sure about fine tuning, but it seems to work in the simulator.


  • HVAC Unnecessary
  • Copyright 2016 Glenn Brockett
  • Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.

name: “HVAC Unnecessary”,
namespace: “ac7ss”,
author: “Glenn Brockett”,
description: “Turn off the AC when thermostat set point is warmer than outside temperature”,
category: “Green Living”,
iconUrl: “”,
iconX2Url: “”,
iconX3Url: “”)

preferences {
section(“Settings”) {
input “OutsideTemp”, “capability.temperatureMeasurement”, title: “Outside Thermometer:”, required: true
input “Thermostat”, “capability.thermostat”, title: “Thermostat:”, required: true

def installed() {
log.debug “Installed with settings: ${settings}”



def updated() {
log.debug “Updated with settings: ${settings}”



def initialize() {
subscribe(OutsideTemp, “temperature”, myHandler);
subscribe(Thermostat, “coolingSetpoint”, myHandler);


def myHandler(evt){
def CSP = Thermostat.latestValue(“coolingSetpoint”) as float
def HSP = Thermostat.latestValue(“heatingSetpoint”) as float
def OT = OutsideTemp.latestValue(“temperature”) as float
log.debug " Run CSP ${CSP} HSP ${HSP} CT ${CT} "
if ((CSP > OT)&&
(HST < OT)){
}else {

This would also turn off the heating if it was warmer outside than inside.