Nest Home/away mode

Hi,

I am using Nest home/away modes within ST via @Dianoga device type. So when I leave the house my Nests go into away mode and when I come home, they go into Home mode. This is great as I let the house get up to 76 degrees all day when I am not home saving me on cooling costs.

The problem is when I get home At 5pm, the house is very warm. I would like to start cooling the house at around 4:30pm. If I try using Nest’s built in scheduling, it gets ignored because the thermostats are in Away mode. I tried IFTTT, but that doesn’t seem to take them out of Away mode either. Is there a way within ST to schedule home or away Nest modes based on time?

Make sure you have turned on Nest Sense. There is a time-to-temp where it will learn how long it takes to get to a temp. There is also an “early on” that will turn it on so it is the actual temp when the schedule starts.

However, if this is putting you in “Away” and not “Auto Away”, then it will not kick in at the next scheduled time.

We use auto away. It doesn’t stay on long after we are gone and allows for the schedule to kick in.

Thanks. I have both of them turned on. Auto away seems to take an hour or so(might even be 2) to kick in and if you add that up, it’s a lot over the course of the month.

Ask Nest support. They are pretty good at getting back to you. I’ve also posted another thread on here asking if the newly released API supports putting Nest in Auto Away mode instead of Away. LINK

If they only support Away, they have basically eliminated everything that makes their thermostats smart.

If we can set home and away in ST, we should be able to do what we need to do within in ST. I see your point though.

Agreed. But I’m also one to go with simplicity. The Nest can do it all by itself (and just let ST know what is happening). That eliminates the complexity and lets the Nest do what it is best at.

Now, if Auto Away is not an option, then the motion sensors in my house are not very useful for this purpose, are they? :smile:

The one thing that bothers me about the auto away is you have to walk by the thermostat to disengage it. I wish nest would utilize geofencing like the Honeywell Lyric will.

Oh, I completely agree. I’m hoping that the Honeywell will push Nest to iterate more quickly. Competition is a god thing for all of us!

You can also get a bunch of Protects to help out with the presence issue. :slight_smile:

I’m not a fan of the Protect. I have simplisafe and if my smoke and CO detectors go off my local fire department is called. Yesterday my co worker had to run home because his Protect was beeping like crazy saying there was a fire and it turned out to be a faulty unit.

I actually found a shared smartapp that allows you to schedule Nests into specific modes at a certain time. Too bad, not on specific dates. Does ST allow for date flexibility as well? or only time scheduling?

Nope. Hard dates as well as relative ones are doable. There is a limit on how many scheduled things you can have pending simultaneously from one app (I think it is 4).

Thanks. Tried this code but doesn’t seem to work. Anyone have any ideas?

preferences {
	section("Choose your Thermostat(s)") {
		input "thermostat1", "capability.thermostat", multiple: true, required: true
	}
    section("Change mode to...") {
    	input "newMode", "enum", metadata:[values:["Away", "Home"]], required: true, multiple: false
	}
	section("Time and Days") {
		input "days", "enum", title: "Only on certain days of the week", multiple: true, required: false,
				options: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
        input name: "startTime", title: "Time?", type: "time"
	}
}

    
def installed() {
	log.debug "Installed with settings: ${settings}"
	schedule(startTime, "scheduleCheck")
}

def updated(settings) {
	unschedule()
	schedule(startTime, "scheduleCheck")
}

def scheduleCheck() {
	
    defaultState()

	log.trace "scheduledThermostatModeChange"

	def today = new Date().format("EEEE")

	debug "today: ${today}, days: ${days}"

	if(newMode == "Away") {
    	thermostat1?.away()
	}

	else {
    	thermostat1?.present()
	}

}