Google Nest Device Access Console now available

Just received an email about device access for google nest, ie the way to connect to nest now if you have migrated to a google account.

Would be amazing if someone could find a way to use this with the nest binding so those of us stuck on the legacy plans with google could migrate to the new cheaper plans when using a google login.

8 Likes

I’m looking forward to seeing how this plays out as well, as I just received the e-mail myself 2 hours ago. I signed up as I missed out on the legacy option before google cut things over (as I didn’t have a Home Automation platform even in mind at that point), although signed up to be notified a month or two back.

Hoping people chime in with updates so I can start controlling my Nest schedules and/or rules via openHAB. :slight_smile:

It looks pretty promising:

https://developers.google.com/nest/device-access/traits/device/thermostat-temperature-setpoint

Seems as if you can set the setpoint, mode etc with POST commands.

Looks like we can start building a new binding :smiley:

1 Like

Do you know what I think is a bit shocking they are charging a one off fee for indivdual access I know it’s only $5 but still I expected free I can’t start till payday now

1 Like

I haven’t paid and signed up yet but will do if it means I can migrate my google account on nest and use openhab, as I’m still paying the old rate for nest - ouch! $5 is worth that move.

Hoping OpenHAB can create a DAC commercial account then a new binding for all of us!
Excited! :smiley: :smiley: :smiley:

The previous Nest binding utilized a personal sandbox so I’d imagine it would be easiest to create the future binding in a similar manner. Plus it would negate any Google oversight in the creation of the binding.

I went ahead and paid my 5 dollars. I am planning on testing out the integrations as it looks like it just relies on OAuth2.

I bought a nest thermostat without realizing that they cancelled works with nest. Will this work the same as works with nest so we could set it up now?

Watching this thread :slight_smile:

Looks like they are making some progress over at the Home Assistant Community:

+1 For this.

I’ve had a small play with the api, I would be happy to help develop this binding (I don’t have much free time) if there’s a shortage.

1 Like

@McFly appears to have gotten it working.

I’m posting here in the hopes of consolidating discussion in this relatively new thread instead of the year-old “Deprecating on…” thread. :wink:

3 Likes

Thanks to “linked” me to this discussion, had no time today to work on it hope to find free time next days, if someone more skilled in programming than me want to contribute here I can share my tests

1 Like

A little update for who are unable to wait :rofl:

Making the poll request the system returns:

{
  "devices": [
    {
      "name": "enterprises/RESERVED INFO",
      "type": "sdm.devices.types.THERMOSTAT",
      "assignee": "enterprisesRESERVED INFO",
      "traits": {
        "sdm.devices.traits.Info": {
          "customName": ""
        },
        "sdm.devices.traits.Humidity": {
          "ambientHumidityPercent": 63
        },
        "sdm.devices.traits.Connectivity": {
          "status": "ONLINE"
        },
        "sdm.devices.traits.Fan": {},
        "sdm.devices.traits.ThermostatMode": {
          "mode": "HEAT",
          "availableModes": [
            "HEAT",
            "OFF"
          ]
        },
        "sdm.devices.traits.ThermostatEco": {
          "availableModes": [
            "OFF",
            "MANUAL_ECO"
          ],
          "mode": "OFF",
          "heatCelsius": 15.4444,
          "coolCelsius": 24.44443
        },
        "sdm.devices.traits.ThermostatHvac": {
          "status": "OFF"
        },
        "sdm.devices.traits.Settings": {
          "temperatureScale": "CELSIUS"
        },
        "sdm.devices.traits.ThermostatTemperatureSetpoint": {
          "heatCelsius": 17.02672
        },
        "sdm.devices.traits.Temperature": {
          "ambientTemperatureCelsius": 21.45999
        }
      },
      "parentRelations": [
        {
          "parent": "enterprises/RESERVED INFO",
          "displayName": "NEST NAME"
        }
      ]
    }
  ]
}

It lacks of the away/at home info as per previous method with cookie…
Need to investigate, any help is appreciated.

This is the rule I implemented to renew the acces token, by default it expires in 60minutes, so I’m updating it every 30minutes

rule "NestTokenRenew"
when
	System started or
	Time cron "0 0/30 * * * ?"		// 3600 seconds for token to expire
then
    val String NestNewToken = executeCommandLine("C:/Curl/curl.exe -s -L -X POST \"https://www.googleapis.com/oauth2/v4/token?client_id=RESERVED INFO&client_secret=RESERVED INFO&refresh_token=RESERVED INFO&grant_type=refresh_token\"", 120*1000)
	//logInfo("Nest", "Nest New Token reply to request : {}", NestNewToken)
	NestNewToken = transform("JSONPATH", "$.access_token", NestNewToken)
	//logInfo("Nest", "Nest New Token : {}", NestNewToken)
	NestToken.postUpdate(NestNewToken)
	NestToken.persist
end

Seems to work from yesterday without issues

Is anybody already working on a binding? If nobody is I might also put some effort into it.

I’m still using the old API with the binding but it’s probably just a matter of time before Google will add the old API to their graveyard now that they have their replacement. :dizzy_face:

13 Likes

It doesn’t seems so. So it would be great if you could start working on a binding. I am so looking forward to it…

I’d be happy to test with my nest doorbell.