[RELEASE] Google SDM API - Nest integration

Hmm... somehow the addChildDevice call during the refresh called after a reboot is succeeding -- rather than failing with the expected IllegalArgumentException due to a duplicate deviceNetworkId (parsed directly from the Google data, to reuse their unique ID).

Probably an easy fix to avoid this -- to reverse the order to retrieve, then add if not exist -- instead of add, then retrieve if the add fails :slight_smile: .

Out of curiosity -- what App version are you running (listed in the comment section at the top of the App code), and what HE platform version are you running (though you imply this behavior has persisted for several releases)?

It seems you may have overridden the "label" that is populated for the Device (the App attempts to pull the customName from the device in Google -- with a fallback to the Room name in google), not clear if that is playing in here. I'll do some testing to see if I can reproduce.

version: 1.1.2

Yes, this has been going on across multiple upgrades. Currently on 2.3.9, but thinking back this all started when an upgrade within 2.3.7 went sideways and I needed to do a harder soft reset. My backups were corrupted and with the help of HE support, I got a restore able backup with zero apps included. I did completely reset, uninstall, reinstall the SDM app afterwards though. I was getting phantom requests from Google to the app ID that no longer worked. That's all fixed though.

Yes. The device name is Downstairs, just like it is named within Google, but I did override the device label. I'm leaving the house for a few hours but I can reset my Label and test a reboot.

Side thoughts. My second HE at another house doesn't have this issue, so I'm fairly confident it is related to, or stemming from, the soft reset/restore I did a while back. I also found that my credentials json file had the complete text pasted in the line twice. But removing the second pasting and re-authenticating didn't have any change after a reboot.

I've been noticing the my Nest devices keep going out of date (stop getting updates). I can fix the issue when it happens by going into the SDM app and hit "Discover".

Is there something that I can do to keep it working? I don't see any errors in the logs -- just a lack of events. Note: I do have debug logging enabled as well (both app and drivers)

I haven't tracked how long the devices will get updates for after fixing this problem.. I'll try to keep track of when it stops working. But, wanted to report it and see if anyone else has had similar problems

Google SDM API v1.1.2 (app)
Google Nest Thermostat v1.0.1 (driver)
1 Like

Just checking if you have had a chance to take a deeper look into this. I have added an extra step when I update my hub to do in and delete the duplicate object, but it would be great if I didn't have to.

FYI, to anyone with an older configured Google account integration: If your device, such as thermostat, is not syncing back and forth unless you click Refresh on the device page, ensure that in your Google Project that you have ENABLEd Pub/Sub.

I had my Nest/Google set up before the big changes in the API, so I couldn't understand why things stopped working suddenly. I kept re-authing to no avail. Only after a detailed step through of the installation instructions with appropriate modifications for an existing install, did I find a (seemingly) new step to enable Pub/Sub.

Now my Nest as a dummy/virtual thermostat works flawlessly. If it worked this well last summer, I wouldn't have replaced my Nest with a Honeywell z-wave pro! :smiley: Still, no regrets. I love the local control of the Honeywell.

2 Likes

Where do you see this?

Go to the Device Access Console

Then click on your project.

1 Like

It's been 24 hours that the rtsps streams from my nest doorbell are giving me a 404 error.
I'm wondering if their servers are down, or if anything changed?
Anybody else?
Mine are from this server: rtsps://stream-eu1-bravo.dropcam.com:443

Thanks!

edit: 3 hours after posting this, it works again. Guess it was a server-side issue with the API.

1 Like

I see the latest discussion here was from 2020.
I am trying to connect my Nest thermostats to Hubitat.
They are Display v3.4.
When I try to authorize from the app, I get this:

Nest doorbell motion detection status has stopped updating. The app is working as I'm getting the events from the button push. I've enable sub in the developer console.

Anyone any ideas I use this to trigger the lights on my driveway

I tried to start everything over from scratch, but I still get the Access blocked: error.
Can anyone help me?
Thanks.

Finally got pass the Access Blocked issue.
When I run the app and click the Discover button, nothing happens.
What am I missing?

When you click the Auth Link button and it takes you through the Google authentication does rlit correctly refer to your project name and the devices you have show toggle options?

Yes, when I click on the Authorize button in the app, it comes with a "Google Next Permissions" screen. It shows both of my thermostats and I click on the sliders next to each to permit access.
It then comes up with this screen:


I click ""Continue" and I get this:

image

It returns me to the app and I click the "Discover" button and nothing shows up.

Here is what the debug log shows;

2024-11-01 01:14:57.698 PMwarnDevice-list response code: 403, body: { "error": { "code": 403, "message": "Smart Device Management API has not been used in project 695059902992 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/smartdevicemanagement.googleapis.com/overview?project=695059902992 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.rpc.Help", "links": [ { "description": "Google developers console API activation", "url": "https://console.developers.google.com/apis/api/smartdevicemanagement.googleapis.com/overview?project=695059902992" } ] }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "SERVICE_DISABLED", "domain": "googleapis.com", "metadata": { "service": "smartdevicemanagement.googleapis.com", "consumer": "projects/695059902992" } } ] }}

Disregard. I finally got it to show the two thermostats. I realized I hadn't enabled the Smart Device Management API. Duh.

1 Like

@dkilgore90 any ideas or troubleshooting steps for the motion detection no longer working from Nest Hello Doorbell bud?

I’m getting a weird error when trying to set the temp in HE. I tried to reinstall, repair in HPM. Still this issue. I can change other parameters like mode but changing temp doesn’t work.

Log is below:

app:672024-11-08 03:03:01.570 PMerrorgroovy.lang.MissingMethodException: No signature of method: user_app_dkilgore90_Google_SDM_API_138.fahrenheitToCelsius() is applicable for argument types: (java.lang.String) values: [72.0] on line 828 (method deviceSetTemperatureSetpoint)

app:672024-11-08 03:03:01.199 PMerrorgroovy.lang.MissingMethodException: No signature of method: user_app_dkilgore90_Google_SDM_API_138.fahrenheitToCelsius() is applicable for argument types: (java.lang.String) values: [71.0] on line 828 (method deviceSetTemperatureSetpoint)

@dkilgore90 any news on this my guy or do we assume this project is now abandoned?

I haven't had any issues with mine reporting. What does device page show?