Google-Nest Offical Device Access Console Finally Released!

Good summary I was going to write a similar entery

I agree, Accuracy would be my priority.

Could the plugin/integration cache the accurate image in memory somehow, based on the event trigger? I saw your suggestion to save it. Maybe “saving” in memory would be an acceptable middle ground.

Thanks for the write-up, sorry to not being able to help on the decision process.

Thank you!
I followed it:

and now it works!

2 Likes

Anyone know if the Device Triggers are logged in InfluxDB or usable in node-red?

Yes you can use it in Node Red with the below simple flow as an example:

[{"id":"dd8c6bab.3191c","type":"server-events","z":"f1e1b905.e9a56","name":"","server":"497693ef.d5e6bc","event_type":"nest_event","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":280,"y":3800,"wires":[["e4b73103.aa5ed8"]]},{"id":"e4b73103.aa5ed8","type":"switch","z":"f1e1b905.e9a56","name":"Which Event","property":"payload.event.type","propertyType":"msg","rules":[{"t":"eq","v":"doorbell_chime","vt":"str"},{"t":"eq","v":"camera_motion","vt":"str"},{"t":"eq","v":"camera_person","vt":"str"},{"t":"eq","v":"camera_sound","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":490,"y":3800,"wires":[["3111756f.561c22"],["3111756f.561c22"],["3111756f.561c22"],["3111756f.561c22"]]},{"id":"497693ef.d5e6bc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

I am not familiar with InfluxDB so I cannot vouch for that.

1 Like

Does anyone know if it’s possible to turn a camera on or off via API yet? Digging through the documentation it looks like there is an event called StopRtspStream, but it sounds like it just kills the stream and not the camera itself


The API does not (currently) offer the capability to turn the cameras on and off.

1 Like

I followed this process and it’s working for 1 of my 2 thermostats. Now I’m trying to get the other thermostat discovered.

1 Like

Thank you very much for writing this.
It’s one of the few guides I’ve ever read / followed in which the steps described were exact.
Thanks again!

2 Likes

@hacwa you’re welcome

1 Like

I can’t get the snapshot service to work, the images is always 0kb jpgs. I tried to read this thread to understand wether or not it’s supposed to work and I believe it should, or have I missed something? I have two Nest Cam Outdoor and the automation is setup using Node-Red.

[{"id":"53d323cf.29f42c","type":"tab","label":"Cameras","disabled":false,"info":""},{"id":"759f1c28.b98244","type":"server-events","z":"53d323cf.29f42c","name":"Camera Events","server":"cd70618b.8d56f","event_type":"nest_event","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":100,"y":100,"wires":[["72d9f157.ae1b2"]]},{"id":"72d9f157.ae1b2","type":"switch","z":"53d323cf.29f42c","name":"Determine Camera","property":"payload.event.device_id","propertyType":"msg","rules":[{"t":"eq","v":"fff15cb8178e0d7dd442bcddf1b5e39c","vt":"str"},{"t":"eq","v":"faffcd52b91a0f6fb51f0a832853b722","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":100,"wires":[["ca2325e4.2ec3d8"],["fa4ef5a3.3ed338"]]},{"id":"a21b3129.e118e","type":"api-current-state","z":"53d323cf.29f42c","name":"Is Home","server":"cd70618b.8d56f","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.is_home","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":820,"y":160,"wires":[[],["68977dac.46a374"]]},{"id":"6e1d181a.f38778","type":"api-call-service","z":"53d323cf.29f42c","name":"Person: Send Push Notifications","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"notify","service":"notify","entityId":"","data":"{\"message\":\"En person har upptÀckts pÄ baksidan\",\"title\":\"NÄgon pÄ baksidan\",\"data\":{\"image\":\"\"}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1570,"y":160,"wires":[[]]},{"id":"6fcc3815.bb3e88","type":"api-call-service","z":"53d323cf.29f42c","name":"Send Push Notifications","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"notify","service":"notify","entityId":"","data":"{\"message\":\"En person har upptÀckts pÄ framsidan\",\"title\":\"NÄgon pÄ framsidan\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1330,"y":40,"wires":[[]]},{"id":"a214ca79.f3aaf8","type":"api-call-service","z":"53d323cf.29f42c","name":"Get Snapshot","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"camera","service":"snapshot","entityId":"camera.framsida","data":"{ \"filename\": msg.filename }","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1280,"y":160,"wires":[["6e1d181a.f38778"]]},{"id":"a1f16241.dba01","type":"function","z":"53d323cf.29f42c","name":"Set Filename","func":"var date = new Date();\nvar dateString = date.toISOString();\n\nmsg.filename = `/config/www/cameras/framsida_${ dateString }.jpg`;\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":830,"y":40,"wires":[["eb8799ff.30cca8"]]},{"id":"68977dac.46a374","type":"function","z":"53d323cf.29f42c","name":"Set Filename","func":"var date = new Date();\nvar dateString = date.toISOString();\n\nmsg.filename = `/config/www/cameras/baksida_${ dateString }.jpg`;\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1050,"y":160,"wires":[["a214ca79.f3aaf8"]]},{"id":"eb8799ff.30cca8","type":"api-call-service","z":"53d323cf.29f42c","name":"Get Snapshot","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"camera","service":"snapshot","entityId":"camera.framsida","data":"{ \"filename\": msg.filename }","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1060,"y":40,"wires":[["6fcc3815.bb3e88"]]},{"id":"fa4ef5a3.3ed338","type":"switch","z":"53d323cf.29f42c","name":"Determine Event","property":"payload.event.type","propertyType":"msg","rules":[{"t":"eq","v":"camera_person","vt":"str"},{"t":"eq","v":"camera_sound","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":160,"wires":[["a21b3129.e118e"],["a8959828.fcec38"]]},{"id":"ca2325e4.2ec3d8","type":"switch","z":"53d323cf.29f42c","name":"Determine Event","property":"payload.event.type","propertyType":"msg","rules":[{"t":"eq","v":"camera_person","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":600,"y":40,"wires":[["a1f16241.dba01"]]},{"id":"c5a9cef5.c416","type":"api-call-service","z":"53d323cf.29f42c","name":"Sound: Send Push Notifications","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"notify","service":"notify","entityId":"","data":"{\"message\":\"Ett ljud har upptÀckts pÄ baksidan och ingen Àr hemma\",\"title\":\"Ljud pÄ baksidan\",\"data\":{\"image\":\"\"}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1570,"y":260,"wires":[[]]},{"id":"a8959828.fcec38","type":"api-current-state","z":"53d323cf.29f42c","name":"Is Home","server":"cd70618b.8d56f","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.is_home","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":820,"y":260,"wires":[[],["cfe695d5.21e2c8"]]},{"id":"cfe695d5.21e2c8","type":"function","z":"53d323cf.29f42c","name":"Set Filename","func":"var date = new Date();\nvar dateString = date.toISOString();\n\nmsg.filename = `/config/www/cameras/baksida_${ dateString }.jpg`;\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1050,"y":260,"wires":[["e1e3e3f.449c22"]]},{"id":"e1e3e3f.449c22","type":"api-call-service","z":"53d323cf.29f42c","name":"Get Snapshot","server":"cd70618b.8d56f","version":1,"debugenabled":false,"service_domain":"camera","service":"snapshot","entityId":"camera.framsida","data":"{ \"filename\": msg.filename }","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1280,"y":260,"wires":[["c5a9cef5.c416"]]},{"id":"cd70618b.8d56f","type":"server","name":"Home Assistant","addon":true}]

Is anybody else having false positives for the Person Detection event?
It’s not frequent but when I check the history of of when it occurred in HA against the Nest app there’s no person event.

I wonder if the API accidentally taps into when the camera is about to send a person event but the image recognition pulls on the reigns and says wait a minute that’s not a person, that’s a truck, but the API has already fired the event.

Yeah, I’m also seeing this. In the camera I have a region configured, I was thinking maybe the api didn’t respect the fence and reported people passing by.

1 Like

Oh that’s a possibility.
I guess what we’re saying is that clearly something is triggering it and we’re not totally convinced it’s the code’s fault.
At least in HA.

I wish you could enable AI boundary boxes or whatever Tensor Flow shows where you can see a box around a person it’s detecting at least so we could say forensically oh yea it’s a person on my sidewalk.

The Nest Integration was working great for me for a week, until about an hour ago. Now I am getting an authorization error:

2020-12-23 19:59:47 ERROR (MainThread) [homeassistant.components.nest] Subscriber error: Access token failure: 400, message=‘Bad Request’, url=URL(‘https://www.googleapis.com/oauth2/v4/token’)
2020-12-23 19:59:47 WARNING (MainThread) [homeassistant.config_entries] Config entry for nest not ready yet. Retrying in 80 seconds

I suspect this is related to a failure of refreshing the authorization token. I suspect that is related to the HA integration not explicitly requesting OFFLINE access when getting permissions granted by the user. I guess now begins a joyless trace into the void.

Yes, can confirm that is a problem refreshing the auth token.

Maybe there are additional creds options we need to call out


I apologize that I am asking for help but I’ve struggled with this for the last few hours. I followed the incredible directions above for implementing Nest with Home Assistant but no matter what I do after authorizing HA with Google Nest my integrations show no devices or entities. Like so:

Any help would be appreciated.
HA Ver.: 2020.12.1
Mac OS Catalina Install

I and others had the same as you. All I can say to help is try again as something is setup incorrectly. I used the directions in message 286 above. I printed them out reread them and verified that I did each step correctly and the it worked. If I guess the problem I would say is either the wrong line was copied into the subscription or into the yaml file.

I honestly have no idea what I am doing wrong. I’ve gone through it carefully at least 8 times. And it keeps coming back the same way. I’m a fairly methodical person.

I have it working again since yesterday
I used the old settings from before the update
and it worksnest-