Nest
The Nest component is the main component 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
.
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.
- 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. - Once Home Assistant is started, a configurator will pop up asking you to log into your Nest account and copy a PIN code into Home Assistant.
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 variables:
- client_id (Required): Your Nest developer client ID.
- client_secret (Required): Your Nest developer client secret.
- structure (Optional): The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account.
Services
Currently there is a single nest.set_mode
service available to switch between
“away” and “home” modes. This service requires a home_mode
param and has an
optional structure
param.
# Example script to set away, no structure specified so will execute for all
set_nest_away:
sequence:
- service: nest.set_mode
data:
home_mode: away
# Example script to set home, structure specified
set_nest_home:
sequence:
- service: nest.set_mode
data:
home_mode: home
structure:
- Building