40 KiB
title | description | ha_category | ha_iot_class | ha_release | ha_config_flow | ha_codeowners | ha_domain | ha_quality_scale | ha_dhcp | ha_platforms | ha_integration_type | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nest | Instructions on how to integrate Nest into Home Assistant. |
|
Cloud Push | 0.7 | true |
|
nest | platinum | true |
|
integration |
The nest
integration allows you to integrate your Google Nest devices in Home Assistant. This integration uses the Smart Device Management API and Google's Cloud Pubsub to efficiently listen for changes in device state or other events. See Supported Devices for all devices supported by the SDM API.
There is currently support for the following device types within Home Assistant:
Cameras and Doorbells use Automation and Device Triggers for events and a Media Source for capturing media images on supported devices. Other device types like Smoke and CO Alarms or Security systems are not currently supported by the SDM API.
You are in control of the information and capabilities exposed to Home Assistant. You can authorize a single device, multiple devices, or different levels of functionality such as motion events, live streams, for any particular device. The integration is flexible enough to adapt based on what you allow.
The Nest Smart Device Management (SDM) API requires a US$5 fee.
Device Access Registration
For the first phase, you will turn on the API and create the necessary credentials to have Home Assistant talk to the Nest API.
{% details "Create and configure Cloud Project [Cloud Console]" %}
By the end of this section you will have a Cloud Project with the necessary APIs enabled
-
Go to the Google Cloud Console.
-
If this is your first time here, you likely need to create a new Google Cloud project. Click Create Project then New Project.
-
Give your Cloud Project a name then click Create.
-
Go to APIs & Services > Library where you can enable APIs.
-
From the API Library search for Smart Device management and click Enable.
-
From the API Library search for Cloud Pub/Sub API in the Cloud Console and click Enable.
You now have a cloud project ready for the next section to configure authentication with OAuth.
{% enddetails %}
{% details "Configure OAuth Consent screen [Cloud Console]" %}
By the end of this section you will have configured the OAuth Consent Screen, needed for giving Home Assistant access to your cloud project.
-
Go to the Google API Console.
-
Click OAuth consent screen and configure it.
-
Select External (the only choice if you are not a G-Suite user) then click Create. While you are here, you may click the Let us know what you think to give Google's OAuth team any feedback about your experience configuring credentials for self-hosted software. They make regular improvements to this flow and appear to value feedback.
-
The App Information screen needs you to enter an App name and User support email, then enter your email again under Developer contact email. These are only shown while you later go through the OAuth flow to authorize Home Assistant to access your account. Click Save and Continue. Omit unnecessary information (e.g. logo) to avoid additional review by Google.
-
On the Scopes step click Save and Continue.
-
On the Test Users step, you need to add your Google Account (e.g., your @gmail.com address) to the list. Click Save on your test account then Save and Continue to finish the consent flow.
-
Navigate back to the OAuth consent screen and click Publish App to set the Publishing status is In Production.
-
The warning says your app will be available to any user with a Google Account which refers to the fields you entered on the App Information screen if someone finds the URL. This does not expose your Google Account or Nest data.
-
Make sure the status is not Testing, or you will get logged out every 7 days.
{% enddetails %}
{% details "Configure OAuth client_id and client_secret [Cloud Console]" %}
By the end of this section you will have the client_id
and client_secret
which are needed for later steps.
The steps below use Web Application Auth with My Home Assistant to handle Google's strict URL validation rules like requiring SSL and a publicly resolvable redirect URL. Desktop Auth has been deprecated by Google to improve security, and it can no longer be used with Home Assistant.
-
Navigate to the Credentials page and click Create Credentials.
-
Enter Web Application for the Application type.
-
Pick a name for your credential.
-
Add Authorized redirect URIs end enter
https://my.home-assistant.io/redirect/oauth
-
You should now be presented with an OAuth client created message. Take note of Your Client ID and Your Client Secret as these are needed in later steps.
{% enddetails %}
{% details "Create a Device Access project_id [Device Access Console]" %}
Now that you have authentication configured, you will create a Nest Device Access Project which requires a US$5 fee.
Once completed, you will have a device access project_id
needed for later steps.
-
Go to the Device Access Registration page. Click on the button Go to the Device Access Console.
-
Check the box to "Accept the Terms of Service" and click Continue to Payment where you need to pay a fee (currently US$5).
It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices. -
Now the Device Access Console should be visible. Click on Create project.
-
Next you will be asked for an OAuth client ID which you created in the previous step and click Next.
-
Take note of the Project ID as you will it later. At this point you have the
project_id
,client_id
andclient_secret
configuration options needed for Home Assistant.
{% enddetails %}
Configuration
You now should have everything needed to configure Nest in Home Assistant. Edit your configuration.yaml
file and populate a nest
entry in the format of the example configuration below.
# Example configuration.yaml entry
nest:
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
# "Project ID" in the Device Access Console (not Cloud Project ID!)
project_id: PROJECT_ID
Then make sure to restart Home Assistant under Server Controls. {% my server_controls badge %}
{% configuration %} client_id: description: Your Device Access or Nest developer client ID. required: true type: string client_secret: description: Your Device Access or Nest developer client secret. required: true type: string project_id: description: Your Device Access Project ID. This enables the SDM API. required: false type: string subscriber_id: description: Recommended to leave blank, and let the integration manage this for you. If you want to use your subscription, enter the full path for the Pub/sub Subscription name. type: string required: false {% endconfiguration %}
Device Setup
Once configuration.yaml
has a valid nest
entry, you need to add Nest to your Home Assistant instance via the user interface by using this My button:
{% my config_flow_start badge domain=page.ha_domain %}
{% details "Manual configuration steps" %}
- Browse to your Home Assistant instance.
- In the sidebar click on {% my config icon %}.
- From the configuration menu select: {% my integrations %}.
- In the bottom right, click on the {% my config_flow_start icon domain=page.ha_domain %} button.
- From the list, search and select "Nest" and follow the instructions.
{% enddetails %}
The Nest integration setup will walk you through the steps of authorizing your Home Assistant to access your account and Nest devices.
{% details "OAuth and Device Authorization steps" %}
In this section you will authorize Home Assistant to access your account by generating an Authentication Token.
-
Choose OAuth for Web since you created Web Application credentials above in the Google Cloud Console. Note that OAuth for Auth has been deprecated by Google and will break by October 2022.
-
A new tab opens, allowing you to choose a Google account. This should be the same developer account you configured above.
-
The Google Nest permissions screen will allow you to choose which devices to configure and lets you select devices from multiple homes. You likely want to enable everything, however, you can leave out any feature you do not wish to use with Home Assistant.
-
You will get redirected to another account selection page.
-
You may see a warning screen that says Google hasn't verified this app since you just set up an un-verified developer workflow. Click Continue to proceed.
-
Then you will be asked to grant access to additional permissions. Click Allow.
-
Confirm you want to allow persistent access to Home Assistant.
-
You will now see a page hosted by My Home Assistant asking if you would like to Link account to Home Assistant? Click Link Account to continue.
-
The next step is to enter the Cloud Project ID to enable a subscription to receive updates from devices. This is not the same as the Device Access Project ID above! Visit the Cloud Console and copy the Project ID.
-
If all went well, you are ready to go!
{% enddetails %}
Climate
All Google Nest Thermostat models are exposed as a climate
entity that use the Thermostat Traits in the SDM API. State changes to the thermostat are reported to Home Assistant through the Cloud Pubsub subscriber.
Given a thermostat named Upstairs
then the climate entity is created with a name such as climate.upstairs
This feature is enabled by the following permissions:
- Allow Home Assistant to access and control your thermostat
Sensor
All Google Nest Thermostat models have traits exposed from the SDM API. The initial values of the sensors are fetched on startup, then updated regularly using the Cloud Pubsub subscriber. The following traits are supported with sensors:
Given a thermostat named Upstairs
then sensors are created with names such as sensor.upstairs_temperature
or sensor.upstairs_humidity
.
This feature is enabled by the following permissions:
- Allow Home Assistant to access and control your thermostat
Camera
Home Assistant supports all SDM API features. However, every Camera or Doorbell device has a different set of built-in capabilities. A Camera device has one of the following live stream types:
- RTSP: These devices have an HLS stream served by the Home Assistant Core. These cameras support server-side
camera
services like stream recording or image preview. See Low Latency HLS as a great option to enable to reduce stream latency. - WebRTC: These devices support direct browser to camera communication and a super low latency stream. A Picture Glance Card can show the live stream in the grid with the Camera View set to
live
(not recommended for battery-powered cameras).camera
services like stream recording are not supported.
This feature is enabled by the following permissions:
- Allow Home Assistant to see and display your camera’s livestream
- Other permissions in the Nest or Google Home apps.
All cameras have motion and person triggers, however only some support capturing snapshots for events. The table below summarizes the Supported SDM API features for each device.
Device | Live Stream | Triggers / Events | Media Source for Triggers / Events |
---|---|---|---|
Nest Cam (indoor, wired) Nest Cam (outdoor, battery) |
WebRTC | Motion Person |
N/A |
Nest Cam Indoor Nest Cam IQ Indoor Nest Cam IQ Outdoor Nest Cam Outdoor |
RTSP Recording |
Motion Person Sound |
Snapshot (jpg) |
Nest Cam with floodlight | WebRTC | Motion Person |
N/A |
Nest Doorbell (battery) | WebRTC | Motion Person Chime |
Clip Preview (mp4, gif) |
Nest Doorbell (wired) | RTSP Recording |
Motion Person Sound Chime |
Snapshot (jpg) |
Nest Hub Max | RTSP Recording |
Motion Person Sound * SDM API known issue |
Snapshot (jpg) |
Given a camera named Front Yard
then the camera is created with a name such as camera.front_yard
.
Automation and Device Triggers
The Nest integration provides device triggers to enable automation in Home Assistant. You should review the Automating Home Assistant getting started guide on automations or the Automation documentation for full details.
{% my automations badge %}
{% details "Example Device Trigger / Event payload %}
This is an example of what the nest_event
payload looks like for a Device Trigger that you can use to power automations.
{
"event_type": "nest_event",
"data": {
"device_id": "EXAMPLE_DEVICE_ID",
"type": "doorbell_chime",
"timestamp": "2022-01-26T04:56:54.031000+00:00",
"nest_event_id": "EXAMPLE_EVENT_ID",
"zones": ["Zone 1"],
},
}
device_id
: The Home Assistant device identifier for the cameranest_event_id
: is an opaque identifier that can be used with the Media Source Attachments described below for supported cameras.zones
: Zones triggering the event if available. Zones are configured in the Google Home App, though not supported by all cameras. Events in the area outside of a named zone will be an empty zone name.
{% enddetails %}
Continue reading below to Media Source Attachments to see how to use media with notification actions.
This feature is enabled by the following permissions:
- Allow Home Assistant to know when there's a camera event
- Allow Home Assistant to know when there's a doorbell event
- Other permissions in the Nest or Google Home apps.
Media Source
The Nest Media Source platform allows you to browse clips for recent camera events. Home Assistant is not intended to be a Network Video Recorder (NVR) platform, however, basic support for capturing recent events is supported.
The table above describes which devices support event image snapshots or 10-frame mp4 video clips for recent events.
Media Attachments
The Media Source APIs can be used in Companion App Attachments for Notifications as actions for Device Triggers above like Doorbell Pressed. You will need to be familiar with both the Media Sources supported for your camera, as well as the media capabilities of the companion apps.
-
/api/nest/event_media/DEVICE_ID/EVENT_ID
: Media for the event, which supports image snapshots (jpg) or clip previews (mp4) depending on the camera type. -
/api/nest/event_media/DEVICE_ID/EVENT_ID/thumbnail
: A thumbnail preview of the media, which supports image snapshots (jpg) or clip previews (gif) depending on the camera type.
You can use the event payload fields device_id
and event_id
in an automation to send a notification from an actions as shown in the examples below.
{% details "Example Action: Clip Preview (mp4) attachment for iOS %}
Example for cameras that support Clip Previews used with iOS which can render video in notifications.
{% raw %}
service: notify.mobile_app_iphone
data:
message: Doorbell Pressed
title: Someone pressed the doorbell
data:
image: >-
/api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail
video: >-
/api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}
mode: single
{% endraw %}
{% enddetails %}
{% details "Example Action: Clip Preview thumbnail (gif) for Android or iOS %}
Example for cameras that support Clip Previews, but transcoded to an animated gif (Android does not render video notifications).
{% raw %}
service: notify.mobile_app_android
data:
message: Doorbell Pressed
title: Someone pressed the doorbell
data:
image: >-
/api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail
{% endraw %}
{% enddetails %}
{% details "Example Action: Snapshot (jpg) attachment for Android or iOS %}
Example for cameras that support Snaphot (jpg) on either Android or iOS.
{% raw %}
service: notify.mobile_app
data:
message: Doorbell Pressed
title: Someone pressed the doorbell
data:
image: >-
/api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail
{% endraw %}
{% enddetails %}
This feature is enabled by the following permissions:
- Based on the events you've selected to share from this device, allow Home Assistant to access camera video clips
- Based on the events you've selected to share from this device, allow Home Assistant to access camera snapshots
- Other permissions in the Nest or Google Home apps.
Troubleshooting
-
You can manage devices and permissions granted to Home Assistant in the Nest Partner Connections Manager. Restart Home Assistant to make new devices available. See the SDM API Troubleshooting documentation for more details.
-
Error 400: invalid_request plus a message about not complying with Google's OAuth Policy for keeping accounts secure is shown when using App Auth or Desktop Auth or OOB Auth which has been deprecated by Google. You need to create new Web App credentials following the instructions on this page and update your Home Assistant to use them.
-
Error 400: redirect_uri_mismatch means that your OAuth Client ID is not configured to match the My Home Assistant callback URL. Home Assistant's redirect URL behavior may have changed since you initially set this up!
{% details "Details about resolving redirect_uri_mismatch" %}
-
This should show the redirect URI
https://my.home-assistant.io/redirect/oauth
in the error message. If the error message has a different URL, then you are running an older version of Home Assistant need to upgrade or manually disabled My Home Assistant (see below). -
Go back to the API Console and select your OAuth 2.0 Client ID.
-
Add the URL
https://my.home-assistant.io/redirect/oauth
to the list of Authorized redirect URIs and click Save and start the flow over.
{% enddetails %}
{% details "I have manually disabled My Home Assistant" %}
Google applies strict Redirect URI validation rules to keep your login credentials secure. In practice, this means that you must access Home Assistant over SSL and a public top-level domain. See the documentation on Securing and note that you don't actually need to enable remote access.
If you don't have My Home Assistant on your installation,
you can use <HOME_ASSISTANT_URL>/auth/external/callback
as the redirect URI
instead.
The <HOME_ASSISTANT_URL>
must be the same as used during the configuration/
authentication process.
{% enddetails %}
- Reauthentication required often: If you are getting logged out every 7 days, this means an OAuth Consent Screen misconfiugration or your authentication token was revoked by Google for some other reason.
{% details "Details about reauthentication issues" %}
- This most likely reason is the OAuth Consent Screen is set to Testing by default which expires the token after 7 days.
- Follow the steps above to set it to Production to resolve this and reauthorize your integration one more time to get a new token.
- You may also see this as the error message invalid_grant: Token has been expired or revoked.
- See Google Identity: Refresh token expiration for more reasons on why your token may have expired.
{% enddetails %}
-
Check Settings -> System -> Logs to see if there are any error messages or misconfigurations then see the error messages below.
-
Thermostat does not appear or is unavailable happens due to a bug where the SDM API does return the devices. A common fix get the API to work again is to:
{% details "How to restart thermostat" %}
- Restart the Thermostat device. See How to restart or reset a Nest thermostat for more details.
- In the official Nest app or on https://home.nest.com: Move the Thermostat to a different or fake/temporary room.
- Reload the integration in Home Assistant: Navigate to Configuration then Devices & Services, click
...
next to Nest and choose Reload.
{% enddetails %}
-
No devices or entities are created if the SDM API is not returning any devices for the authorized account. Double-check that GCP is configured correctly to Enable the API and authorize at least one device in the OAuth setup flow. If you have trouble here, then you may want to walk through the Google instructions and issue commands directly against the API until you successfully get back the devices.
-
Error 403: access_denied means that you need to visit the OAuth Consent Screen and add your Google Account as a Test User.
-
Error: invalid_client no application name means the OAuth Consent Screen has not been fully configured for the project. Enter the required fields (App Name, Support Email, Developer Email) and leave everything else as default.
-
Subscriber error means that
configuration.yaml
has an incorrectsubscriber_id
or the subscription is misconfiugred. It is recommended to delete this from the configuration, then delete and re-add the integration to let it create a subscription for you. -
Not receiving updates typically means a problem with the subscriber configuration. Make sure to check the logs for any error messages. Changes for things like sensors or thermostat temperature set points should be instantly published to a topic and received by the Home Assistant subscriber when everything is configured correctly.
-
You can see stats about your subscriber in the Cloud Console which includes counts of messages published by your devices, and how many have been acknowledged by your Home Assistant subscriber. You can also
View Messages
to see examples of published. Many old unacknowledged messages indicate the subscriber is not receiving the messages and working properly or not connected at all. -
To aid in diagnosing subscriber problems or camera stream issues it may help to turn up verbose logging by adding some or all of these to your
configuration.yaml
depending on where you are having trouble:
logger:
default: info
logs:
homeassistant.components.nest: debug
homeassistant.components.nest.climate_sdm: debug
homeassistant.components.nest.camera_sdm: debug
homeassistant.components.nest.sensor_sdm: debug
homeassistant.helpers.config_entry_flow: debug
homeassistant.helpers.config_entry_oauth2_flow: debug
google_nest_sdm: debug
google_nest_sdm.device: debug
google_nest_sdm.device_manager: debug
google_nest_sdm.google_nest_subscriber: debug
google_nest_sdm.event: debug
- It is recommended to let Home Assistant create the Pub/Sub subscription for you. However, if you would like more control you can enter a
susbcriber_id
in the configuration. See Subscribe to Events for more instructions on how to manually create a subscription and use the full subscription name in the Home Assistant configuration e.g.projects/gcp-project-name/subscriptions/subscription-id
Works With Nest API
The Legacy Works with Nest API is not accepting new signups.
{% details "Legacy Works with Nest Configuration Steps" %}
The Nest integration is the main integration to integrate all Nest related platforms. To connect Nest, you will have to sign up for a developer account and get a client_id
and client_secret
.
There is currently support for the following device types within Home Assistant:
Setting up developer account
- Visit Nest Developers, and sign in. Create an account if you don't have one already.
- Fill in account details:
- The "Company Information" can be anything. We recommend using your name.
- Submit changes
- Click "Products" at top of page.
- Click "Create New Product"
- Fill in details:
- Product name must be unique. We recommend [email] - Home Assistant.
- The description, users, URLs can all be anything you want.
- Leave the "Redirect URI" Field blank
- For permissions check every box and if it's an option select the read/write option. Note: there are important permissions under the "Other Permissions" category. If you are only adding a thermostat, do not just select the permissions under "Thermostat". You still need to check the boxes under "Other Permissions" in order to give you access to features like away mode, ETA, structure read/write, and postal code.
- The description requires a specific format to be accepted.
- Use "[Home Assistant] [Edit] [For Home Automation]" as the description as it is not super important.
- Click "Create Product"
- Once the new product page opens the "Product ID" and "Product Secret" are located on the right side. These will be used as
client_id
andclient_secret
below. - Add the Nest integration to your
configuration.yaml
and restart Home Assistant. Then, go toSettings > Devices & Services
and selectCONFIGURE
next toNest
. Click the link in the configurator pop up to log into your Nest account and complete the OAuth. Copy the resulting PIN code into the pop up.
Connecting to the Nest Developer API requires outbound port 9553 on your firewall. The configuration will fail if this is not accessible.
Configuration
# Example configuration.yaml entry
nest:
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
# Example configuration.yaml entry to show only devices at your vacation and primary homes
nest:
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
structure:
- Vacation
- Primary
{% configuration %} client_id: description: Your Nest developer client ID. required: true type: string client_secret: description: Your Nest developer client secret. required: true type: string structure: description: The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account. required: false type: list {% endconfiguration %}
Service set_away_mode
You can use the service nest/set_away_mode
to set the structure(s) to "Home" or "Away".
Service data attribute | Optional | Description |
---|---|---|
away_mode |
no | String, must be away or home . |
structure |
yes | String, will default to all configured Nest structures if not specified. |
Examples:
# Example script to set away, no structure specified so will execute for all
script:
nest_set_away:
sequence:
- service: nest.set_away_mode
data:
away_mode: away
# Example script to set home, structure specified
script:
nest_set_home:
sequence:
- service: nest.set_away_mode
data:
away_mode: home
structure:
- Apartment
Service set_eta
You can use the service nest/set_eta
to set or update the estimated time of arrival window. Calling this service will automatically set the structure(s) to "Away". Structures must have an associated Nest thermostat in order to use ETA function.
Service data attribute | Optional | Description |
---|---|---|
eta |
no | Time period, estimated time of arrival from now. |
eta_window |
yes | Time period, estimated time of arrival window. Default is 1 minute. |
trip_id |
yes | String, unique ID for the trip. Default is auto-generated using a timestamp. Using an existing trip_id will update that trip's ETA. |
structure |
yes | String, will default to all configured Nest structures if not specified. |
Examples:
# Example script to set ETA, no structure specified so will execute for all
script:
nest_set_eta:
sequence:
- service: nest.set_eta
data:
eta: 00:10:30
trip_id: Leave Work
# Example script to update ETA and specify window, structure specified
script:
nest_update_eta:
sequence:
- service: nest.set_eta
data:
eta: 00:11:00
eta_window: 00:05
trip_id: Leave Work
structure:
- Apartment
Service cancel_eta
You can use the service nest/cancel_eta
to cancel an existing estimated time of arrival window. Structures must have an associated Nest thermostat in order to use ETA function.
Service data attribute | Optional | Description |
---|---|---|
trip_id |
no | String, unique ID for the trip. Using an existing trip_id will update that trip's ETA. |
structure |
yes | String, will default to all configured Nest structures if not specified. |
Examples:
# Example script to cancel ETA, no structure specified so will execute for all
script:
nest_cancel_eta:
sequence:
- service: nest.cancel_eta
data:
trip_id: Leave Work
# Example script to cancel ETA, structure specified
script:
nest_cancel_eta:
sequence:
- service: nest.cancel_eta
data:
trip_id: Leave Work
structure:
- Apartment
Troubleshooting
- If you're getting rickrolled by the Legacy API instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option.
Platforms
You must have the Nest component configured to use the platforms below.
Binary Sensor
The nest
binary sensor platform lets you monitor various states of your Nest devices.
You must have the Nest component configured to use these sensors. The binary sensors will be setup if the nest
integration is configured and the required configuration for the nest binary sensor
is set.
Configuration
To enable binary sensors and customize which sensors are setup, you can extend the Nest component configuration in your configuration.yaml
file with the following settings:
# Example configuration.yaml entry
nest:
binary_sensors:
monitored_conditions:
- 'fan'
- 'target'
By default all binary sensors for your available Nest devices will be monitored. Leave monitored_conditions
blank to disable all binary sensors for the Nest component.
{% configuration %} monitored_conditions: description: States to monitor. required: false type: list {% endconfiguration %}
The following conditions are available by device:
- Nest Home:
- away
- Nest Thermostat:
- online
- fan
- is_using_emergency_heat
- is_locked
- has_leaf
- Nest Protect:
- online
- Nest Camera:
- online
- motion_detected
- person_detected
- sound_detected
Camera
The nest
platform allows you to watch still frames from a video stream (not live stream) of your Nest camera in Home Assistant.
The Legacy API integration allows you to watch still frames from a video stream (not live stream). The Legacy API also supports the camera.turn_on
and camera.turn_off
services.
Nest Camera supports the camera.turn_on
and camera.turn_off
services since the 0.75 release.
Climate
The nest
climate platform lets you control a thermostat from Nest.
Sensor
The nest
sensor platform lets you monitor sensors connected to your Nest devices.
The sensors will be setup if the nest
integration is configured and the required configuration for the nest sensor
is set.
Configuration
To enable sensors and customize which sensors are setup, you can extend the Nest component configuration in your configuration.yaml
file with the following settings:
# Example configuration.yaml entry
nest:
sensors:
monitored_conditions:
- 'temperature'
- 'target'
By default all sensors for your available Nest devices will be monitored. Leave monitored_conditions
blank to disable all sensors for the Nest component.
{% configuration %} monitored_conditions: description: States to monitor. required: false type: list {% endconfiguration %}
The following conditions are available by device:
- Nest Home:
eta
: Estimated time of arrival.security_state
:ok
ordeter
. Security State. Only available when Nest Camera exists.
- Nest Thermostat:
humidity
preset_mode
temperature
target
hvac_state
: The currently active state of the HVAC system,heat
,cool
oroff
(previouslyheating
,cooling
oroff
).
- Nest Protect:
co_status
:Ok
,Warning
orEmergency
smoke_status
:Ok
,Warning
orEmergency
battery_health
:Ok
orReplace
color_status
:gray
,green
,yellow
orred
. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app.
- Nest Camera: none
Security State
This feature is not designed to transform your Home Assistant into a security system, neither Home Assistant nor Nest are liable for damages, or consequential damages of any character arising as a result of use this feature.
This feature does not depend on the Nest Secure alarm system and is not a reflection of the status of that system, nor does it react to state changes in that system.
This feature uses a new Nest Security API.
You may need to change your "Product" permission setting to include Security State Read
.
After this permission change, you may need to re-authorize your client.
If a Nest Cam detects the presence of a person (see person_detected
in binary_sensor.nest while the structure is in away
mode (see away
in binary_sensor.nest, the structure enters deter
mode.
A deter
state is re-evaluated after several minutes and relaxed to ok
if no further person_detected
events have occurred.
The security_state
automatically switches to ok
when the structure state is home
.
{% enddetails %}