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?

Hi
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:


hvac_modes:
  - 'off'
  - heat
min_temp: 10
max_temp: 32
preset_modes:
  - 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:


hvac_modes:
  - 'off'
  - heat
min_temp: 10
max_temp: 32
preset_modes:
  - 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:
image

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
sequence:
  - 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
data:
  preset_mode: none
target:
  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.