New nest component - loss of functionality?

With the upgrade to 0.34 and I assume to provide the camera functionality it appears some sensor functions of the nest thermostat are no longer available.

Looking at:

and

It appears the sensor platform lost:

  • ‘last_ip’
    • ‘local_ip’
    • ‘last_connection’
    • ‘weather_condition’
    • ‘weather_temperature’
    • ‘weather_humidity’
    • ‘wind_speed’
    • ‘wind_direction’

and the binary sensor platform lost:

    • ‘hvac_ac_state’
    • ‘hvac_aux_heater_state’
    • ‘hvac_heat_x2_state’
    • ‘hvac_heat_x3_state’
    • ‘hvac_alt_heat_state’
    • ‘hvac_alt_heat_x2_state’

Is the nest platform using a new api or what has changed. I would look up the options myself as I did on the previous api but Im not sure where to look. As someone who found a number of the nest sensors useful I hate to see them go.

@technicalpickles

There were a number of breaking changes involving the Nest; the release notes have been updated with a link but there’s a lot of renaming, a different method of authentication and different sensors as a result.

Yeah, Im aware of that. The new component pages show that a lot of options are no longer available. Im wondering if the component pages are not showing all the options or if the components really lost all the options I listed above in the change.

You could try seeing if any of them are still there by creating a value template sensor using

value_template: '{{ value_json.missing }}'

And replacing ‘missing’ with the actual attribute.

They did go away, unfortunately, and I know it sucks.

I don’t know where the Nest API that was being used came from, but it was largely undocumented and was different than the official API on https://developers.nest.com/ . My suspicion is that it was an API for powering the mobile apps at some point. It did not support Nest Cam operations though like getting a snapshot.

I don’t have a Nest thermostat to test against, and it wasn’t documented, so it’s hard for me to know what some of those sensors did. I did my best to figure out things that are comparable in the new API. Even some of those things, they are different data types.

If there’s specific sensors you are using and missing, I can see what I can do to find the replacement and get the documentation updated. Here’s what I can think of now:

  • weather_*, wind_*: totally gone now. Should be able to use one of the weather sensor components instead
  • hvac_ac_state: you can use the state of the climate entity, or operation_mode
  • hvac_*heat*_state: I don’t know what these are, but I suspect binary_sensor's is_using_emergency_heat would be comparable
  • *_ip: not available at all. You can check if something is online though. You could use a device_tracker to find the IP perhaps
  • last_connection: nothing comparable I can find. I’m not sure how this would be used, or when it considers a connection last.

https://developers.nest.com/documentation/api-reference is the reference for what data is available. For some reason, it doesn’t show all the nested data until you click into it.

I was also wondering about the missing sensors with the nest component, One thing I’ve been hoping would be implemented is the ability set the humidity level. It would be very useful to have a script that compares the outside temp to the inside temp and adjust the humidity setting accordingly as to prevent condensation on windows. Any chance it might be considered to use a combination of the two API’s until Nest decides to include the desired features into the official API? Maybe a “legacy_nest” component if keeping the code separate is desired.

Here is what I am seeing as far as the api reference. Looks like the weather and IP options are completely gone now. Also tracking a nest battery level also appears to be gone. Some have changed names (or weren’t used before i.e. camera sensors).

There are two items in bold in the API reference column that could bring back old sensor options.

@Kbeesnees is there an option on the nest to set a humidity target. Im not home but looking at the app its not readily apparent that you can set a humidity target. I do not see anything in the API for a humidity target.

@silvrr The option is only available in the nest app if you have a wire in the base for the humidifier and I believe you have to tell the nest that it is a humidifier.
Its been a while since I looked into the wiring but I believe the same position on the nest base can be used for a humidifier or dehumidifier. I’ve only setup a humidifier.
If you have it wired and configured, and go into the apps setting while on the nest control screen, there is an option that says “Equipment” under the “Fan” option in mine. Once there, there should be a “Humidifier” option. It is buried in the section where you can review on it is wired in the app. I’ll log on in a minute with my phone to post a screen shot.


Here are the screencaps from my nest app. Nest doesn’t auto adjust the target humidity in the winter (Midwest USA) and when the temp drops outside and you don’t lower the inside relative humidity condensation form on windows, eventually causing mold and rot. Moisture good, condensation bad. Would be cool if I could get HA to auto control this for me.

battery_level has become battery_health. The new API refers to it differently, and has a different unit (was voltage, is now ‘ok’ or ‘replace’).

Battery level used to be available on the thermostat. It provided a voltage output for the thermostat battery. the battery_health only applies to the nest protect.

Sorry for dropping this in here but has anyone else issues with setting them temperature itself for it it shows NaN and I cannot move the slider

self.device.target = temp
  File "/var/root/.homeassistant/deps/nest/nest.py", line 475, in target
    self._set('devices/thermostats', data)
  File "/var/root/.homeassistant/deps/nest/nest.py", line 196, in _set
    response = self._nest_api._put(path=path, data=data)
  File "/var/root/.homeassistant/deps/nest/nest.py", line 1480, in _put
    return self._request('PUT', path, data=data)
  File "/var/root/.homeassistant/deps/nest/nest.py", line 1472, in _request
    raise APIError(response)
nest.nest.APIError: Temperature C value is too low: 0.0

In fact it seem to be due to the state that is fetched:

Setting min and max temp manually fixes the issue for a few seconds

{ "away_mode": "off", "current_temperature": 22, "friendly_name": "Home", "max_temp": null, "min_temp": null, "operation_list": [ "off", "heat", "eco" ], "operation_mode": "heat", "temperature": 18, "unit_of_measurement": "°C" }

@nbittmann Yes, this is happening to me as well. Although I understand the need for HA to use the official Nest API, I’m wondering about the amount of testing this received prior to release. I haven’t had a chance to upgrade from 0.34 to 0.34.2 yet though so I’m not sure if that issue was addressed and it is why I haven’t mentioned it anywhere. Are you on the most recent release 0.34.2? I also wasn’t too concerned with that though due to how active this community is. Its only a matter of time if it hasn’t happened already.

Yes I’m on 0.34.2 just updated today and broke a few things :slight_smile: I’m not too concerned as well since I use it through many channels and it’s not making my life harder however a fix would be good.

I probably post it on GitHub later when I’m back home

Nest really doesn’t like deep integration. Every official product on the market that “works with nest” has superficial integration / control at best. They basically expose the manual thermostat control or consume / set away state.

When setting up a developer account / app to get the new APIs official options you can read the terms and they basically exclude everything you would want to do with it, such as providing external automated control of temp, recording history longer than about a month or coordinating units.

I am just glad there is any integration with home-assistant.

I asked a question on twitter to the Nest guys regarding recording my own data for more than 10 days and was given a ‘we’re not looking in your direction’ response: https://twitter.com/joerocklin/status/639795406650667008

So hopefully Home Assistant still falls under that category. It would be really interesting to know how many folks at Nest might be using Home Assistant.

It would be really nice to have access to the hvac_state, though I think it would have to go into a standard sensor field instead of a binary sensor as it has three string states: https://developers.nest.com/documentation/api-reference/overview#hvacstate

Maybe tomorrow I can take a look at what it would take to get that added - though I’ve not done any development on Home Assistant up to this point so it might take me a bit to get oriented.

@Kbeesnees Someone opened that on github already as a quick fix go into your nest account and lock the thermostat to a range e.g. I did from 9 to 32 degrees so it does not restrict me restart HASS afterwards and it works again

@Kbeesnees or anyone else wanting to automate your target humidity setting on your Nest, I was able to do this using the unofficial Nest API. Details here: Nest Automatic Humidity Control

1 Like