homebridge-nest-cam2
View your Nest cams in HomeKit using Homebridge with this plugin.
Notes
- This is a continuation of the previous homebridge-nest-cam plugin.
- This plugin does not use the old access token authentication method as it is no longer supported.
FAQ
Q: Why is there no audio?
A: Audio is not supported at this time. For more info, please read this issue.
Q: How do I enable motion detection alerts?
A: Open the camera feed and press the settings gear in the top left. Select notifications and enable "Notifications on this device".
Q: Why is the stream slow/lagging/skipping?
A: Your device running Homebridge must encode the stream into a format that iOS can recognize. This requires significant processing power for devices such as a Raspberry Pi. For more info, please read this issue.
Other asked questions can be found here.
Installation
- Install ffmpeg
- Install this plugin using: npm install -g homebridge-nest-cam2
- Add google authentication to
config.json
- Run Homebridge
Raspberry Pi
You may want to use OMX for transcoding as the CPU on the board can be slow. If so, make sure the ffmpeg installed on your Pi has h264_omx
support and set the ffmpegCodec
option below to h264_omx
. You can always compile ffmpeg from source using these instructions.
Mac OS
You may want to use VideoToolbox hardware acceleration for transcoding. If so, make sure the ffmpeg installed on your Mac has videotoolbox
support and set ffmpegCodec
option below to h264_videotoolbox
.
Docker
The Homebridge Docker container requires an extra environment variable to install ffmpeg: PACKAGES=ffmpeg
. The Docker container also requires the libx264
codec as it uses the ffmpeg inside the container and not the ffmpeg on the device running the container.
Setting up the Config.json
Setting up a Google Account with homebridge-nest is a pain, but only needs to be done once, as long as you do not log out of your Google Account.
googleAuth
Google Accounts are configured using the "googleAuth"
object in config.json
, which contains three fields, "issueToken"
, "cookies"
and "apiKey"
, and looks like this:
{
"platform": "Nest-cam",
"ffmpegCodec": "libx264",
"options": {
"motionDetection": true,
"streamingSwitch": true
},
"googleAuth": {
"issueToken": "https://accounts.google.com/o/oauth2/iframerpc?action=issueToken...",
"cookies": "SMSV=ADHTe...",
"apiKey": "AIzaS..."
}
}
The values of "issueToken"
, "cookies"
and "apiKey"
are specific to your Google Account. To get them, follow these steps (only needs to be done once, as long as you stay logged into your Google Account).
- Open a Chrome browser tab in Incognito Mode (or clear your cache).
- Open Developer Tools (View/Developer/Developer Tools).
- Click on 'Network' tab. Make sure 'Preserve Log' is checked.
- In the 'Filter' box, enter
issueToken
- Go to
home.nest.com
, and click 'Sign in with Google'. Log into your account. - One network call (beginning with
iframerpc
) will appear in the Dev Tools window. Click on it. - In the Headers tab, under General, copy the entire
Request URL
(beginning with https://accounts.google.com
, ending with nest.com
). This is your "issueToken"
in config.json
. - In the 'Filter' box, enter
oauth2/iframe
- Several network calls will appear in the Dev Tools window. Click on the last
iframe
call. - In the Headers tab, under Request Headers, copy the entire
cookie
(include the whole string which is several lines long and has many field/value pairs - do not include the cookie:
name). This is your "cookies"
in config.json
. - In the 'Filter' box, enter
issue_jwt
- Click on the last
issue_jwt
call. - In the Headers tab, under Request Headers, copy the entire
x-goog-api-key
(do not include the x-goog-api-key:
name). This is your "apiKey"
in config.json
. - Do not log out of
home.nest.com
, as this will invalidate your credentials. Just close the browser tab.
options
Extra options can be enabled/disabled depending on which switches and sensors you would like to see in the Home app. Here is the current list of available options:
- motionDetection: enable/disable the motion sensor
- streamingSwitch: enable/disable the ability to turn the camera on or off
Join the Discord
Unfortunately, there is no way for me to test every subscription, camera type, and feature. If you would like to help me test new features and enhancements, or if you have general questions or need support, join the official Homebridge Discord Server.
Credits
This plugin was derived from homebridge-nest-cam with the new google authentication from homebridge-nest.
Nest Hello doorbell resolution by schmittx.
This plugin was converted to typescript using both homebridge-ring and homebridge-examples.
Donate to Support homebridge-nest-cam2
This plugin was made with you in mind. If you'd like to show your appreciation for its continued development, please consider making a small donation.