Google-Nest Offical Device Access Console Finally Released!

thanks for the info. Hopefully the api will be fixed or else I can use google home to control the temp when away.

Hey Miguel. That works, but as there’s a delay between the event and the snapshot the person it notified about could already be gone. According to the person event documentation, there seems to be a a link from the event that could be used to fetch the actual shot that triggered the event, but I don’t see how I can access that.

Yes you are correct about that. The integration is not currently using that. The current integration just takes snapshots from the stream rather than using nests image service.

I have a few thoughts

  1. investigate the stream lag and see if it can be reduced
  2. even with lag solved, it may help if you receive pubsub events late or if home assistant was off for a few minutes
  3. not clear to me how we would make it work. It might be that we create a new separate service just for nest and pass the extra session token info along in the event / trigger.

Would one of you who is doing this be up for sharing your automations with the community? I think it could also make a really nice blueprint of one doesn’t exist already.

No worries to share, this is my automation:

alias: Notify Doorbell
description: Send notification when doorbell is pressed
trigger:
  - platform: device
    device_id: 873c97cf65cdddc3ce18c6efdbc6493a
    domain: nest
    type: doorbell_chime
condition: []
action:
  - service: camera.snapshot
    data:
      filename: /config/www/entrance.jpg
    entity_id: camera.entrance
  - service: notify.hangouts_stian
    data:
      message: Doorbell ringing!
  - delay: '00:00:01'
  - service: notify.hangouts_stian
    data:
      message: Image capture from doorbell
      data:
        image_file: /config/www/entrance.jpg
mode: single

I split the notification in two to let the capture of image complete before sending the image. Since I do not want delay for the first notification I found it better to split it up. Only thing I have done outside of this is to check the “preload stream” on the camera. Not sure if this is important.

2 Likes

Thank you, that is super awesome, I’ll try this out.

I’m just looking at this, and because it uses the device platform, I’m not convinced these are made available to Node Red as any sort of trigger. I’ll continue to investigate. It may be a case of using an automation to turn an input_boolean on and off. Not ideal, but would allow the use of Node Red trigger.

Edit: This is relevant - 0.113: Automations & Scripts, and even more performance! - #33 by frenck

Just to underline the benefit of capturing the actual trigger camera from Nest is this. Just now, 30 minutes ago, a delivery came at the door. Flowers. He just ran up to the door, rang the bell, dropped the flowers on the doorstep and left. From HA the picture is of him leaving, but the Nest app shows the person.

In normal circumstances this is not a problem. The ones ringing the doorbell usually waits outside for you to open, but it illustrates a point. :slight_smile:

1 Like

Looks like thermostat changes won’t change in home assistant. I mean, if i change temp on the thermostat itself, on home assistant i have no change…
Anyone else?

Hi Folks,

I’m still looking for a solution to the issue several other individuals brought up regarding only getting one or two devices to integrate even though many more are installed within the home.

We have two Gen3 thermostats installed in our home. I see the option to select them when I add Nest as an integration, I’m able to go through the full integration sequence, but in the end wind up with only 1 device and 3 entities which is my Upstairs Thermostat. My Downstairs Thermostat isn’t ever integrated into HomeAssistant even though I selected it.

Does anyone have a step by step debug process for this issue? I’ve started from scratch, rebooted HA, reloaded the Nest integrations, and still only end up with the one Upstairs Device.

Utilizing the current Nest native Home Assistant integration.

Thanks,

Running Supervisor 2020.12.06 on a Raspberry Pi 4 w/128gb external drive. Home Assistant 2020.12.0 up to date.

Does anybody know if the rtsp feed url changes with the token refresh or is it static? I’d like to work out a way to add the nest cam to motioneye so I can store the video. My understanding is that motioneye doesn’t support rtsps but I’m wondering if maybe converting the stream with ffmpeg might work. That, of course, would require a static rstps url. Anybody else thought about this or have a recommended solution to expose just the url?

I just tried mine from the thermostat and HA updated in less than 2 seconds.

Thanks for sharing your doorbell automation. I’m curious if you’ve played with the camera_person event yet? It may be better to capture the image based on the person detection rather than the doorbell, you’d assumingly get them as they’re facing the door instead of walking away.

Mmmm… What is that thermostat layout? Looks cool

When I try to [+ add integration] > Nest: and it send me to google, when I click my email address it just goes to a screen that says, “Something went wrong, Please contact the developer of this app if the issue persists.”

Oh well, wishful thinking.

With a little inspiration from @corvy I setup the doorbell camera automations in node-red. I may add to it later (thinking angry barking dog noises from the echo at the front door if nobody is home LOL), but for now it turns on the lights after sunset if it detects a person or doorbell press, and all times of day it captures the image and sends a notification via pushover with the notification.

I used the events:all to listen for nest events. I had to put a rate limiter on the camera_person event because it will throw an event every few seconds while the person is standing there. I also added a 1s delay after the lights turn on to give the camera time to switch out of night mode. I may have to play with that delay to find a good compromise between speed and reliability.

[{"id":"9f22b203.c30a2","type":"server-events","z":"3fa541fa.62813e","name":"Nest Event","server":"94fdcfdf.a00b","event_type":"nest_event","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":80,"y":780,"wires":[["4ebb95f.43b6f6c"]]},{"id":"4ebb95f.43b6f6c","type":"switch","z":"3fa541fa.62813e","name":"","property":"payload.event.type","propertyType":"msg","rules":[{"t":"eq","v":"camera_person","vt":"str"},{"t":"eq","v":"doorbell_chime","vt":"str"},{"t":"eq","v":"camera_motion","vt":"str"},{"t":"eq","v":"camera_sound","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":230,"y":780,"wires":[["27fe7089.c08ce"],["d5594a34.4d6748"],[],[]]},{"id":"27fe7089.c08ce","type":"delay","z":"3fa541fa.62813e","name":"Drop duplicates","pauseType":"rate","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":400,"y":720,"wires":[["fa349860.c1d0b8"]]},{"id":"71137031.8cde5","type":"api-call-service","z":"3fa541fa.62813e","name":"Capture Image","server":"94fdcfdf.a00b","version":1,"debugenabled":false,"service_domain":"camera","service":"snapshot","entityId":"camera.front_door_2","data":"{\"filename\":\"/config/www/entrance.jpg\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":740,"wires":[["b21fc2d0.38ab6"]]},{"id":"b21fc2d0.38ab6","type":"unsafe-function","z":"3fa541fa.62813e","name":"Format Pushover Message","func":"msg.topic = \"Someone is at the door\"\nmsg.image = \"/config/www/entrance.jpg\"\nmsg.payload = \"Someone is at the front door\"\nmsg.priority = 0\nmsg.sound = \"pianobar\"\nreturn msg;","outputs":1,"noerr":0,"x":1200,"y":740,"wires":[["4cec103e.caf6"]]},{"id":"4cec103e.caf6","type":"pushover api","z":"3fa541fa.62813e","keys":"6701c359.a8a66c","title":"","name":"Notify","x":1410,"y":740,"wires":[]},{"id":"fa349860.c1d0b8","type":"time-range-switch","z":"3fa541fa.62813e","name":"Sunset/Sunrise","lat":"46.22274","lon":"-64.50104","startTime":"sunset","endTime":"sunrise","startOffset":"-20","endOffset":"20","x":600,"y":720,"wires":[["79bc3324.d3eacc"],["71137031.8cde5"]]},{"id":"79bc3324.d3eacc","type":"api-current-state","z":"3fa541fa.62813e","name":"Light Off?","server":"94fdcfdf.a00b","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.outside_lights_front_door","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":780,"y":700,"wires":[["19bc1494.e2c02b"],[]]},{"id":"19bc1494.e2c02b","type":"api-call-service","z":"3fa541fa.62813e","name":"Turn on lights","server":"94fdcfdf.a00b","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.outside_lights_front_door, light.outside_lights_front_walkway, light.outside_lights_garage","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":700,"wires":[["a63e52ed.30053"]]},{"id":"d5594a34.4d6748","type":"time-range-switch","z":"3fa541fa.62813e","name":"Sunset/Sunrise","lat":"46.22274","lon":"-64.50104","startTime":"sunset","endTime":"sunrise","startOffset":"-20","endOffset":"20","x":600,"y":820,"wires":[["c9b5234f.a62d"],["3feccc1b.5a6b14"]]},{"id":"c9b5234f.a62d","type":"api-current-state","z":"3fa541fa.62813e","name":"Light Off?","server":"94fdcfdf.a00b","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.outside_lights_front_door","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":780,"y":800,"wires":[["fb14ddcf.f661"],[]]},{"id":"fb14ddcf.f661","type":"api-call-service","z":"3fa541fa.62813e","name":"Turn on lights","server":"94fdcfdf.a00b","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.outside_lights_front_door, light.outside_lights_front_walkway, light.outside_lights_garage","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":800,"wires":[["21161455.b3ef5c"]]},{"id":"3feccc1b.5a6b14","type":"api-call-service","z":"3fa541fa.62813e","name":"Capture Image","server":"94fdcfdf.a00b","version":1,"debugenabled":false,"service_domain":"camera","service":"snapshot","entityId":"camera.front_door_2","data":"{\"filename\":\"/config/www/entrance.jpg\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":840,"wires":[["8155128b.d96d4"]]},{"id":"8155128b.d96d4","type":"unsafe-function","z":"3fa541fa.62813e","name":"Format Pushover Message","func":"msg.topic = \"Someone rang the doorbell\"\nmsg.image = \"/config/www/entrance.jpg\"\nmsg.payload = \"Someone rang the doorbell\"\nmsg.priority = 0\nmsg.sound = \"pianobar\"\nreturn msg;","outputs":1,"noerr":0,"x":1200,"y":840,"wires":[["a6e2d231.0fc4e"]]},{"id":"a6e2d231.0fc4e","type":"pushover api","z":"3fa541fa.62813e","keys":"6701c359.a8a66c","title":"","name":"Notify","x":1410,"y":840,"wires":[]},{"id":"a63e52ed.30053","type":"delay","z":"3fa541fa.62813e","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1140,"y":700,"wires":[["71137031.8cde5"]]},{"id":"21161455.b3ef5c","type":"delay","z":"3fa541fa.62813e","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1140,"y":800,"wires":[["3feccc1b.5a6b14"]]},{"id":"94fdcfdf.a00b","type":"server","name":"Home Assistant","addon":true},{"id":"6701c359.a8a66c","type":"pushover-keys","name":""}]
4 Likes

That’s just a little bit of my creative handiwork!
see My Nest Thermostat card config using thermostat-dark-card

Figured this might help others searching for it, here’s an automation to turn on a light when a person is detected from my nest cam!

- alias: "Nest: testing"
  trigger:
    - platform: event
      event_type: nest_event
      event_data:
        type: "camera_person"
  action:
    - service: homeassistant.toggle
      entity_id: light.loft_lamp

finally got the integration to work and cleaned up the remnants of badnest in my config and lovelace. One thing I don’t see, and not sure if it’s just not supported yet, or if there’s a way to get the info to come through, I have one of the Nest temperature sensors in a different room, and wanted to bring that data back to plot through a history graph, but don’t see a sensor or a state in the climate for it.

Anyone find it, and or know how to integrate it?

Additional temperature sensors are not supported by the nest sdm api unfortunately.

I can test this in parallell and see what works best. I just added this automation:

alias: Notify Doorbell Person Detection
description: Send notification when doorbell detects person
trigger:
  - platform: device
    device_id: 873c97cf65cdddc3ce18c6efdbc6493a
    domain: nest
    type: camera_person
condition: []
action:
  - service: camera.snapshot
    data:
      filename: /config/www/inngangsparti.jpg
    entity_id: camera.inngangsparti
  - service: notify.hangouts_stian
    data:
      message: Doorbell detected a person!
  - delay: '00:00:01'
  - service: notify.hangouts_stian
    data:
      message: Image from doorbell
      data:
        image_file: /config/www/inngangsparti.jpg

Lets see what works better :slight_smile: