Google Nest integration stopped detecting 'eco' preset triggered by 'Away'

When I select ‘start eco’ on my Nest thermostat it activates the ‘eco’ preset and drops the target temperature to a low set point (9°C in my case). This is reflected in my HA instance via the Google Nest integration: the climate card shows the target at 9° (sometimes 9.1 or so for some reason, but whatever) and the HVAC action changes from Heating to Idle. All good.

The Nest system also supports “Home” and “Away” settings. ‘Away’ has the same effect on thermostats as ‘start eco’. I’m fairly sure that the Nest integration in my HA was responding to this exactly as it does when ‘eco’ is started directly, but now it’s only detecting the HVAC action change from Heating → Idle when it’s triggered by ‘Away’ - the preset in HA doesn’t change to ‘eco’, and the setpoint stays where it was.

This is a real pain for me, I was relying on being able to detect the preset and setpoint. It seems to have been a behaviour change very recently, perhaps in the last few days. As far as I can tell it’s not the result of anything I’ve done. Has anyone else noticed it?

Verify your sensor . Mine is as in the screen shot

Nest thermostat state in HA after ‘eco’ started directly by selecting ‘Start Eco’ in the Nest UI:

  - 'off'
  - heat
min_temp: 10
max_temp: 32
  - none
  - eco
current_temperature: 18.2
temperature: 9.1
hvac_action: idle
preset_mode: eco
friendly_name: Nest Thermostat
supported_features: 17

Nest thermostat state in HA after ‘eco’ started by selecting ‘Away’ in Nest UI:

  - 'off'
  - heat
min_temp: 10
max_temp: 32
  - none
  - eco
current_temperature: 18.2
temperature: 20
hvac_action: idle
preset_mode: none
friendly_name: Nest Thermostat
supported_features: 17

Nest’s own UI in both cases:

It seems that the integration is only updating hvac_action (chagning from heating → idle) when Eco is started by Nest’s “Away” state, and failing to update the preset mode and target temperature. When Eco is started directly, the integration updates all three attributes correctly.

I have just started noticing this same issue. Wonder if this an issue with the integration or due a change Google made with their API

It is working on my side . I have an automatism that force eco mode when I am away and a manual script as well

alias: forcage mode eco
  - device_id: xxxxxxxxxxx
    domain: climate
    entity_id: climate.thermostat_nest
    type: set_preset_mode
    preset_mode: eco
mode: single

Thanks for confirming - I was beginning to wonder if it was just me! I have no idea whether it’s the integration or the API, I wouldn’t even know how to check.

Yes, when I set Eco from Home Assistant everything works as exected here too, the same as when I use “Start Eco” from the Nest UI:

service: climate.set_preset_mode
  preset_mode: none
  entity_id: climate.nest_thermostat

hvac_modes:                       hvac_modes:
  - 'off'                           - 'off'
  - heat                            - heat
min_temp: 10                      min_temp: 10
max_temp: 32                      max_temp: 32
preset_modes:                     preset_modes:
  - none                            - none
  - eco                             - eco
current_temperature: 17.8         current_temperature: 17.8
temperature: 20                ⮕ temperature: 9.1
hvac_action: heating           ⮕ hvac_action: idle
preset_mode: none              ⮕ preset_mode: eco
friendly_name: Nest Thermostat    friendly_name: Nest Thermostat
supported_features: 17            supported_features: 17

But that’s not the way it behaves for me when I use the Nest UI to set “Away”. In that case - and only in that case - the integration doesn’t follow the change to Eco or the reduction in target temperature.

I can work around the issue by using Start Eco explicitly, but I’d prefer to be able to use the Nest UI’s Home and Away feature because it is more convenient. Also the fact that the integration is no longer recognising the changes to preset_mode and temperature when triggered this way is presumably a symptom of a problem somewhere.

Interesting if it’s not behaving the same way for you, when there are now two of us reporting the problem. Perhaps we have different versions of the Nest thermostat or its software? Mine is the European 3rd Generation model, and Technical Info under Settings reports:
Model Display-3.4
Software 5.9.5-2
Updated 16 Nov 2021 07:58

I suppose that solution works for me , since I was planning on using my own presence sensors to set home/away mode. However this does mean that I’m going to basically be ignoring Nest motion/presence, which seems like a shame

I’m using my own automations for some Nest thermostat control, but I haven’t yet added presence detection into that. My plans to do so involved detection of the Eco setting, but that’s now unreliable.

@Blackmyre So it’s a bit of an annoying work around, but in theory we could use this. I’m setting it up right now, but it’s exactly how I’m leveraging my newer Alexa device mmWave presence detection sensors.

Good luck, I hope you get a satisfactory solution. My Home Assistant isn’t externally accessible so it won’t work for me. I have now implemented occupancy detection though, so I’m using an Automation to set and clear the Eco preset when that changes from that and no longer using Nest’s Home/Away mode.

Thanks! Think I’m getting all the data I need now. Just stuck on the last piece which is triggering Google Assistant to enter “Away Mode”

Also I stumbled across our issue on GitHub. Looks like it is a Google/Nest issue

Good to see someone’s investigating it.

Woah! No idea what changed, but I upgraded to 2023.3.1 and it seems to be working again. I had an input boolean for home/away and it looks like it’s updating correctly again!

I’ve now tried upgrading to HA 2023.3.1 but that doesn’t seem to have changed the behaviour for me. Switching the Nest UI from HOME to AWAY causes my climate.nest_thermostat to switch hvac_action from heating to idle but it doesn’t pick up the change in preset_mode to eco, nor the drop in temperature.

Hi. I can not anymore change to eco mode from home assistant using climate.set_preset_mode → eco.
When I use this service nothing happen. I was able to do it before I update my HA to the newest version. If I change manually to eco mode on thermostat home assistant is updating state.

I’m having the same issue with my Nest Thermostat as Sylwester, it’s probably started within the last day or two. climate.set_preset_mode has no effect, however climate.set_temperature is working. Also, setting Eco mode on or off via the thermostat itself or the Nest app will be reflected in HA, so the link between HA and the Nest API appears to be working. So it appears to be an issue specifically with climate.set_preset_mode. I haven’t had the opportunity to enable the Nest debugging logging yet; I will report back with any findings.

Same issue here.
I installed a brandnew nest and the integration in HA.

Setting to eco in HA (manualy or via automation) does not have any effect.
Manualy change to/from eco is seen by climate.set_preset_mode, but not when automaticaly changed to/from eco when leaving/entering home.

Same issue, cannot change preset mode to None or Eco - enabled the debug and have seen the following, no changes or updates, stopped responding on 31st March 2023.

2023-04-01 14:14:43.344 DEBUG (MainThread) [google_nest_sdm.auth] request[post json]={‘command’: ‘sdm.devices.commands.ThermostatEco.SetMode’, ‘params’: {‘mode’: ‘OFF’}}

I created a work around in HA that uses the Google Home integration to route the mode change to there which is working fine, suggests to me something changed on the Google end that HA isn’t now doing? All the other functions appear to be working directly from HA.

Another one here - just got home to find the heating has been on all day while no-one was home. Automations fired as normal but the climate.set_preset_mode → eco instruction was evidently ignored by the Nest Thermostat. Attempting to set it to eco manually (from Developer Tools | Services) also failed silently, the instruction seemingly just ignored. Something somewhere is clearly broken :frowning:


I have the same problem