Google Nest Device Access Console now available

I don’t have any thermostats in auto eco mode at the moment, but I do believe that the current_eco_mode channel does change when the thermostat enters auto eco. I seem to recall that the eco modes I saw were off (i.e., normal mode), manual_eco (i.e., when you set it to eco), and eco (i.e., when the thermostat automatically goes into eco mode…I may have the name wrong on this one).

My experience was that I could not set auto eco model (e.g., through itemname.sendCommand("ECO")), but the item state would change. In other words, I could read the auto state, but not write it. If I wanted to force the thermostat back into normal mode through OH, I had to send the "MANUAL_ECO" (note all caps) command first, and then the "OFF" command.

Hope that helps.

From what I can tell, the current eco mode only reports “off” and “manual_eco”. When auto eco occurs, the mode remains as “off”.

Can anyone else confirm this?

Hi @wborn, it seems like the homebridge-nest plugin (while used with a google account) has access to Nest protect devices (smoke, carbon monoxide and even the motion sensor!), and also to the home/away part of the (old) structure. Is there any possibility to add these to the openHAB Nest (SDM) binding in a future version?

1 Like

Hi all,

Firstly a big thanks to all the contributors for this binding!

I’ve got SDM to work with my nest devices. Need a bit of help if possible…essentially, I’ve noticed that the temperature values for my thermostat are reporting 5 decimal places e.g. 23.87507 strikes me as not being quite right.

The item is setup to as a Number, format Temperature.

Any help would be gratefully appreciated!

Many thanks!

Jeevs,

What your seeing is normal. Depends on what interface your using to view the item state with. For instance, If you display this in a label card, it will format it with one decimal place. You can always edit the item and add a formatting pattern to it via the Add Metadata link on the edit item screen using the OpenHab settings for items.

The pattern formats are described in the link below for item states (will require a bit of reading if you have not been here before) and second link to the syntax used (more reading) but both required if your interested in designing good UI’s in OpenHab:

Hope that helps and gets you pointed in the right direction…

Hi Marco,

Unfortunately Google has not yet added the Protect devices to their SDM API. You can view all the devices currently supported with SDM at the link below:

Hi Dave,

Thanks for this, I knew it would be something simple!

Right so, I’m certain that I have the right formatting pattern to apply - this works in the Basic UI as expected.

Now, I’m attempting to use the temperature value within a custom widget (new UI). So what type of metadata link should I be using? I’ve tried StateDescription but doesn’t seem to be working :frowning: or unless I’m referencing it incorrectly…

Thanks once again :slight_smile:

Jeevs, Its not really clear what your asking. Are you creating a custom widget? Regardless It sounds like you have the right place on the item metadata (State Description) which has a parameter for the formatting pattern. The documentation has some examples here and a link that I provided above to the java formatter class syntax. https://next.openhab.org/docs/configuration/items.html#state-presentation. These examples have brackets [ ] around them, you don’t use them when specifying the pattern.

1 Like

Amazing, thanks for all the help, got it working! :slight_smile: my issue was I was still using ‘.state’ rather than, ‘.displayState’

Hi @dschoepel , @wborn and @duiffie

I am using the Homebridge Nest plugin, and it is indeed supporting Nest Protect.

It does not work using SDM setup, but instead it is simulating a Nest client. Therefore, everything available is the Nest app including Protect can be fetched and updated as in the app itself.

You are correct on being able to see the Protect devices. Since the plugin uses the connection/session credentials from the Nest App, its able to pull that information… Unlike the OpenHab binding, it is not using the SDM API to access these devices directly - hence it is a “bridge” between the nest app and getting these devices to be accessible in HomeKit.

Perhaps there is an opportunity to code a Bridge in OpenHab that uses this approach as an alternative to SDM. Only downside seems to be with being sure you don’t reset your logged in Nest App connection which would require you to update the access token used by the bridge.

Well, it will take effort and skills to build it, but one suggestion could be that the current binding is expanded to also support a Nest client approach. That could be configurable from openHAB UI or Things file.

I have been using the Homekit Nest for approx.1 year, and it is stable. However, the cookie needs to be replaced now and then.

The guy behind this has also made a hardware easy to use solution called Starling Home Hub. I think you simply login to Nest from this box and derived from that gets the tokens needed. This can also be used for auto refresh of these.

One concern though is that it is probably not supported by Google, but I do not know if this has any consequences.

1 Like

Curious if your using the Homekit binding in OpenHab? If not may be a roundabout way to get at the Nest devices in OpenHab.

The workaround I’m currently using: installed both homebridge-nest and homebridge-mqttthing plugins and created some dummy mqttthing items in Homebridge. Then I sync the states of the nest- and mqtt items with homekit-automations for each item. This does work, but is a bit complicated in the sense of troubleshooting. My experience with the homebridge-nest plugin itself is that it’s indeed very stable, using it for almost 2 years now.

I am using

Separate instance Homebridge Nest to and from
Home Assistant Homekit Controller to and from
MQTT to and from
openHAB

and then I have all the values and 2-way sync options inside openHAB.

A bit cumbersome setup, but actually working fine and stable.

Edit: Using Pi-hole I have now learned that the Homebridge Nest seems to create a lot of internet traffic.

Hi Bob,

I ran into an issue where I thought I had to delete all my Nest SDM things and rebuild (I actually didn’t - just needed to refresh my authorization tokens :frowning:)
I’ve rebuilt and now I get the same error you did:

Exception in oauth communication, grant type authorization_code: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header

Do you recall what you did to overcome this?

Thanks,
Randy

UPDATE: Please disregard - I re-entered the info for a third time and it worked!

Hi,

the problem for me was that I was following an outdated guide, as stated in my post: Google Nest Device Access Console now available - #269 by BobMiles
Did you do something differently before?

It’s the order I entered the information. I had to complete the SDM Config Params first, Save, then complete the Pub/Sub portion, Save.

Thanks,
Randy

Could use some help with getting Channels showing up.
Using 3.1 stable on a new Openhabian installation on Pi. My nest thermostat account has been migrated from Nest to Google and using the SDM config of the binding. No problems with the SDM project ID, GCP Client OAuth and secret. No problems generating OTP authentication codes.

The status of the new Nest Thing is ONLINE “Using periodic refresh”. I am not using SubPub.

However, the Channels tab on the Thing is empty and the attempted creation of an Item hangs on looking for Channels.
Update:
I am following dschoepel instructions (https://github.com/dschoepel/NestOnOpenhab/wiki/Step-5.0---Authorize-an-Account#step-50---authorize-an-account).

I get to 5.2 “Get an Access Token”
The curl commands runs but errors out with:
“error”: “redirect_uri_mismatch”
“error_description”: “Bad Request”

My JSON file has
“redirect_uris”:[“urn:ietf:wg:oauth:2.0:oob”,“http://localhost”]
I have tried using “http://localhost” as the URI in the curl statment but still getting the error.

Resolved: had to use the usn:ietf:wg:oath:2.0:oob

Hi, great news that the binding is updated to SDM. The configuration went ok and I was able to discover my doorbell and add it as a thing. But I didn’t receive the last timestamp of the chime.

When I look at my subscriptions on Google Cloud Platform? it is empty. Do I need to make subscriptions? And if yes, is there an instruction for this?

Thank you already!

1 Like