[RELEASE] Google SDM API - Nest integration

@jonathan.lorber Thanks a lot this worked out. You were right, this indeed is the easy way of doing it.
@dkilgore90 It would be nice to add the above instruction to your first post for folks like me.

2 Likes

Heads up -- tonight's changes re-worked the Oauth2 workflow to reduce the copy/paste, and manual link construction is no longer required. The README has been updated to document the new workflow.

I don't think this should break any existing installations -- but no warranty or refunds! :wink:

8 Likes

Just had to play with it a little to test it out. FWIW, you have to go back and add Hubitat to the allowed Redirect URI's in order for the authorization to work from the app.
The specific site URI you need is: https://cloud.hubitat.com/oauth/stateredirect

Click on the credentials in your Google Project then the edit pencil under Oauth 2 Client ID's

Add Authorized URI

image

Before I did that, I was getting a 400 error. Afterwards, it discovered my devices.

Another quirk, I had to click done after entering the Project ID and Json. Then I was able to come back into the app and click authorize. So, it was not showing the authorize button until after I clicked done (even though I had filled out the fields. I tried to tab out and clicking on white space. Neither worked)

3 Likes

Forcing the user to click done was intentional -- since we redirect away from HE to do the auth, I wanted to ensure that both the app installation and settings were saved before moving on.

3 Likes

I sort of got that from the read me. (Maybe the wording in the app needs to match the read me? Thinking of users for an app that I had install links with a big red circle around the link and "click here" - but I still had some miss it LOL - Not kidding, I had a call where the guy asked, "It says click here, what should I do??? I literally asked him if he tried clicking there.... :man_facepalming:)

1 Like

Noted -- I'll update the app display wording to that effect.

Just trying to do it from a beginner user perspective...... (which is not difficult for me on the new platform)

Definitely not complaining.... This is awesome!!!

@dkilgore90

With the new update, I was able to get it working just fine. I really love the newer flow you created, it's so much simpler than before. The instructions I think is good, at least it was pretty easy for me to follow.

I just have the Nest Thermostat which is the only Nest device I have currently. Obviously this is very early I know into developing this integration, suggestions I came up with so far:

  • Setting 1 or 2 decimal points for temperatures or having option for it
  • Option to set Home and Away mode on Thermostat (not sure if API supports this yet or not).

So far it seems to work as intended when testing it out so really great job on this integration. This was the final device I didn't have integrated to Hubitat since Google pulled "Works with Nest" dev program.

2 Likes

This on hpm?

@dkilgore90, I second the idea of setting only 1 decimal point. P.S. - Great job and again, thanks for all of your hard work!

I support the idea of fewer decimals as well. My vote is for 1 decimal.

Hi, great work!

Is there any way of having the Nest Thermostat update it's heating or cooling setpoint automatically, from within HE devices? if the temperature is changed from within the following platforms; Nest app, HE Dashboard, Sharptools,io etc. The thermostat doesn't update within HE - Devices, you have to hit the refresh button every time for the changes to be reflected.

I am using Thermostat scheduler to set the temperature using modes (day, away etc) which works perfectly. It will reflect the changes in the Nest app but not Sharptools, or HE. Since Sharptools pulls the device directly from HE via API. Once you hit the refresh button, the changes appear within Sharptools and HE dashboards.

1 Like

It should if the pubsub subscription is set properly. When I change the temp on the nest hub, it shows up almost instantly on the device page without a refresh.

2 Likes

It should automatically show the changes in HE.

I had the same issue -- at first. I realized I missed this step in the instructions:

Go to the Cloud Pub/Sub API page, and enable the Pub/Sub API for your Google Cloud Platform (GCP) project.

1 Like

Perfect thanks guys!

I ended up starting again from scratch. The first time round, Google never prompted me to enable cloud Pub/Sub when I clicked the auth link within the Google SDM API app. Second time around all good, the thermostat now automatically refreshes within HE and reflects within Sharptools :smile:

3 Likes

New updates! Primarily focused around camera-ish devices (includes doorbell, display).

  • Still images are captured as events are received -- a new event overwrites the previous image.
  • image attribute can be displayed in Local dashboards
  • motion-sensor capability -- active on event received, inactive after configurable timeout

  • Doorbell presses/chimes "push" button 1 on the device in HE

  • Thermostat temp values rounded to 1 decimal precision.

Trying to wrap my head around the camera streams. I believe this is going to require a companion app of sorts -- hosted on rpi or other device -- to stream the rtsps from Nest and provide a transcoded mjpeg to play in a HE dashboard?

Lastly, app and drivers are now versioned -- each time a new version is released, it will be tagged in GitHub, and CHANGES.md will summarize the updates. The comment header of the file should also reflect its current version (if I can keep it all straight). I'm aware HPM is on the wish-list -- haven't gotten to it yet :wink:

6 Likes

Note: After installing the new drivers, you may want to Refresh your camera-ish devices to discover attributes such as imgWidth and imgHeight which are not provided in events.

1 Like

I think you need to add a "Donate" button to your GitHub. :slight_smile: Really nice stuff going on here.

6 Likes

Agreed! Excellent work!

@dkilgore90 One nice feature that I hacked into your camera driver is the ability to select the motion event. The Nest will trigger on chime, person, motion, and sound. I made it 4 buttons, each capturing the 4 different types, and then using inputs to toggle them on/off in the driver, the app only triggers the motion event on the ones you want.

For me, I want person and chime at the front door, chime only at the rear. Sound goes off all the time, so it's of no use to me.

Thanks again for this!

4 Likes

That sounds awesome! Feel free to submit a PR -- or I may take a whack at a similar feature.