Eco Temperatures Transition Guide

To automatically save energy when the structure is empty, users can set Eco Temperatures with the Nest Learning Thermostat™ or the Nest app. When the structure is occupied, users can continue to save energy by manually switching the thermostat to Eco Temperatures.

How Eco Temperatures work with Home & Away

  • The term "Auto-Away" is deprecated and replaced by Away.
  • When the home is set to Away (either automatically or manually), thermostats change to Eco Temperatures automatically.
  • If Home/Away Assist is enabled, the home automatically transitions from Home to Away based on occupancy.
  • Away-based constraints are lifted. Thermostats can now be controlled while the home is in Away mode.
Eco Temperatures

Eco Temperatures Requirements

  • Nest app: v5.8 or later
  • Nest Thermostat firmware: v5.6 or later

How Eco Temperatures affect users

The introduction of Eco Temperatures means that users can save energy at home without having to "trick" the Nest Thermostat into "believing" that no one is home. In other words, users can tell their Nest Thermostat to save energy, regardless of whether or not they are at home.

The introduction of Eco Temperatures has some implications for Auto-Away and Home/Away Assist.

Eco Temperatures while at home

  • To save energy while at home, users no longer need to manually set the thermostat to Away mode.
  • Instead, users who are at home can set the thermostat to Eco Temperatures.
  • Users can set Eco Temperatures with the Nest Thermostat or the Nest app.

Example 1

You're out of the house on a hot day. You'll be heading home soon and want to turn on the AC to make sure it's cool when you arrive. You can turn off Eco Temperatures and thus turn on your thermostat without setting your house to HOME – which would also turn on the lights and unlock the door. Home & Away is based on occupancy only, so the products in the home will be doing the right thing based on the right context.

Example 2

You're at home. It's comfortable inside and outside. You want to leave the windows open and make sure your thermostat won't turn on the AC. You don't want to set Away because that won't just adjust your thermostat, it will also turn off the lights and close the shades. Now you can set your thermostat to Eco Temperatures without misdirecting the other products in the home.

How Eco Temperatures affect developers

We're decoupling occupancy within the structure from the behavior and temperatures of the Nest Thermostat. This means that energy-saving behavior is not dependent on occupancy.

Along with the energy-saving mode called Eco Temperatures, we are introducing a corresponding HVAC mode to trigger energy-saving behavior.

HVAC mode allows you to participate in coordinated energy-saving events. For example, your products can listen for the Nest Thermostat's hvac_mode changing to "eco". Then your products can respond by entering a corresponding energy-saving mode. The "eco" setting is returned as an hvac_mode when the thermostat has been upgraded to v5.6. After a thermostat is upgraded to version 5.6 and when hvac_mode = "eco", the ‘eco’ string passes through the API. This happens regardless of the permissions version.

You may have already implemented use cases like these based on structure Home & Away settings. Previously, your product might have listened for Auto-Away in the Nest Thermostat and used it to trigger an energy-saving mode.

If you're providing thermostat controls for a user, Home & Away are still important shortcuts for users to adjust their entire home. Additionally, users can set Eco Temperatures while they're at home. This means you'll want to consider both Home & Away and Eco Temperatures, not just one or the other.

If you have access to hvac_mode, you can see the "eco" value. The relevant permissions are Thermostat read and Thermostat read/write.

New behaviors and relationships

See the before-and-after behaviors and values in the data model.

Security use case v5.5 and earlier v5.6 and later
Example: Turn lights on when occupants leave Synonymous with occupancy Synonymous with occupancy
Security field to determine occupancy /structures/*/away /structures/*/away
Security/occupancy values home, away, auto-away home, away
Energy savings use case v5.5 and earlier v5.6 and later
Example: Turn down water heater when energy saving is desired Directly coupled with occupancy Indirectly coupled with occupancy
Energy savings status field /structures/*/away /structures/*/away
Energy savings status values home, away, auto-away home, away
Energy savings control field /structures/*/away indirectly controlled the thermostat If Home/Away Assist is enabled, or if user sets away, devices/thermostats/*/hvac_mode is set to eco
For more precise status, check both hvac_mode and away
Energy savings control values away eco

Removed restrictions

The following restrictions were valid in v5.5 and earlier, and are removed starting in v5.6:

  • IF: structures/*/away == ‘away’ THEN: devices/thermostats/*/hvac_mode cannot be set
  • IF: structures/*/away == ‘away’ THEN: devices/thermostats/*/fan_timer_active cannot be set
  • IF: structures/*/away == 'home' THEN: structures/*/eta fields cannot be set
  • IF: devices/thermostats/*/is_using_emergency_heat == ‘true’ THEN: structures/*/away cannot be set


  • A single structure can have multiple thermostats with different software versions.
  • Your users will have a mix of software versions installed in their devices. Updates will be rolled out over time. This transition period might last for several months.
  • Your product must gracefully handle all device software versions, both v5.5-and-earlier and v5.6-and-later.

How to support multiple device software versions

We can assume that your users have a mix of Nest app software versions installed. No matter how you're accessing the data model (REST, REST streaming, multiplex), some of the responses will have data that looks like the old data model, and others will return the new data model.

Your code will have to say "IF 5.6 or greater, show Eco in the menus that are available to the end user. ELSE don't show that.”

In short, your code will have to handle this concept of a software version in ways that it hasn't before. You can use the thermostat's software_version field to determine the software version.

An alternate solution is to fail gracefully. In your product, you can allow the user to select Eco Temperatures and send that request to our API. If the value is not supported, our API will reject the setting with an error.