Welcome to the Google Home tools and updates session.
We have a lot to share that will make you more productive
and give you more insights into what’s going on with your integration.
We have a lot to cover, so let‘s dive right in.
Quality is always important, but what do we mean when we talk about it
with respect to your Google Home agent?
We want your integrations to be snappy, to do the thing they were supposed to do,
and to report back to Google accurate results.
We’re getting new, richer routines
that may be triggered by device state updates.
In order for us to be able to use the report state,
it has to be highly accurate.
Report state is like pressing a button—when you do it you expect something to happen.
Without good report state, the button doesn’t get pressed.
There are several common issues to watch out for.
First, a bad response.
Did you send a valid success response that includes the device state?
If you sent an error, was it properly formatted
using an error code that’s defined in the documentation?
For device offline, maybe the light switch was off,
maybe your device didn‘t have power.
Is this something your server or app can detect and alert the user to?
With tokens, do you support multiple Google users connecting
to a single account on your side?
You should.
Do you have issues that would cause token exchange problems?
Try out the new token validation tool within the Google Home test suite.
We also have new error documentation that covers proper error handling.
Please make sure to take a look at that for more details.
In an effort to drive up the quality of our integrations,
we’re requiring annual recertification through the test suite
to ensure that all functionality has been certified as working as intended.
The developer center becomes the one-stop place for information.
Partners and developers will have a single source of truth
about requirements as well as resources for marketing colleagues.
This should make both certification and recertification
a transparent and smooth process.
Please check out Alex‘s session for more information
on the new Google Home development center.
We are also working on the ability for you to create alerts based on the success rate
moving a certain number of standard deviations away from the mean.
We’ll share more on that when it becomes available.
Check out Yigit‘s talk where he goes through in depth
on how to use our analytics tools to debug issues found in production.
Please make sure that you have opted in to allowing communications for this event
and watch out for follow-up email and updates to our documentation.
A request that we‘ve heard from many developers
was to provide a documented set of sample queries for various devices.
Today, we’re excited to share, you can find over 200 sample queries
in three different languages for 20 device types.
And not only do we have English, but we also have French and German
sample queries documented, with more languages coming soon.
Here’s a list of device types that we have documented sample queries for,
including lights, thermostats, cameras, robot vacuums, and more.
And we‘re actively working on expanding to six additional languages.
Not only are we documenting these, but we’re also adding
explicit regression testing on each one of these queries that we document
to ensure that we identify and resolve any issues before your users see them.
Go check out the documentation today.
See the sample queries on the device type reference pages.
We’re excited to share a new tool today— the Google Home Playground.
The Google Home Playground is a zero-code tool
for testing out Google Home integrations
with devices that live in your web browser.
You can click around to create any device
that is supported in our list of supported device types
and traits in the developer documentation and see how Google interacts with them.
We expect this to help developers in the early stages
of planning and design to understand what behavior is expected
on various Google Home and Assistant surfaces.
Additionally, it should help your bug filing and we’ll talk about that later on.
To get started, open up the Google Home app on your phone
and do account linking with the following steps.
Click the plus icon at the top left corner,
select set up device works with Google,
search for the action Google Home Playground,
select the action and the home app will direct you to the signup page
and ask for authorization to complete account linking.
Once you complete account linking, the default virtual devices will show up
in the Google Home app for you to play with.
Now go to the Google Home Playground in your web browser
and click the sign in with Google button at the top right corner
to sign in with the account that matches the account you used in the Google Home app.
After you sign in, the Google Home Playground
will show your virtual devices stored in Home Graph.
The web UI contains three panels from left to right.
First, the device list shows all of your virtual devices.
You can select a certain virtual device to view its information
as well as create and remove virtual devices via this panel.
The device info panel presents the selected virtual devices information,
including basic information, supported traits, and trait attributes and states.
You can also edit information on the panel.
Finally, the log area displays the interaction
between the Google Home Playground at Home Graph.
You can expand the logs and inspect the request
in response payloads for troubleshooting.
On the device list panel, select the virtual device to view.
The device info panel would show its information
in Home Graph, categorized into four tabs.
Basic information displays non-trait-specific attributes of the device,
including the device type, ID, and names.
The trait list is the supported traits of the device.
Attributes show trait-specific attributes of the device
and, finally, states show all the device states.
Besides viewing our virtual devices information,
you can also directly edit its information stored in Home Graph
via the device info panel.
In order to modify supportive traits,
switch to the Traits tab and click the edit button.
A panel will pop up and show the available traits
to add to the device‘s current supported traits.
Use the arrow buttons in between
to add and remove supported traits of the device.
In order to modify a device’s attributes,
switch to either the basic information or attributes tab
and edit the attribute directly.
Once you’re done editing, press enter or move focus away from the input field
and the Google Home Playground will apply your attribute and update home graph.
To modify the device states,
switch to the states tab and edit the state directly.
Google Home Playground will apply the state change to Home Graph.
In order to create a new virtual device, go to the device list panel
and click the plus button at the bottom.
A panel will pop up and guide you step-by-step through the device creation.
You’ll be asked to select a device type and input device name for the new device.
Once you complete the steps, the Google Home Playground will update
the creative devices information and states as the default values in Home Graph.
In order to remove a virtual device on the device list panel again,
hover over the device and a trash can icon should appear.
Click the trash can icon.
An alert we’ll ask you to confirm the device removal.
Once you confirm to remove a device, the Google Home Playground
will remove the device also from Home Graph.
Let’s talk about the logs.
When you play with virtual devices, the Google Home Playground
automatically applies the change to Home Graph.
The interactions with Home Graph are recorded in the logs panel where you can expand
each entry and inspect the Home Graph API request in response payloads.
The logs are represented as a JSON array.
For each object in that array, you have three components,
a URI which is the URL of the Home Graph API call,
requests, which is the request body of the Home Graph API call,
see the document for format of each method,
and a response, which is the response body of the Home Graph API call.
And again take a look at the documentation to understand the format of each method.
The Google Home Playground should help you
file better bugs that are easier for us to get fixed.
Set up the devices in the Playground to match the devices
you’re having an issue with, reproduce the issue, export your Playground file,
file a bug in the public buganizer for Smart Home,
attach the Playground file
and provide repro steps along with the expected behavior
and any other relevant details. If you’re not able to reproduce the issue
in the Google Home Playground, it might be worth taking a second look at your code.
And of course please make sure that you’ve opted to allow communication for this event
and watch out for a follow-up email
and updates to our documentation, where we will provide a link to this tool.
There are a lot of great new things to talk about
with the test suite for Google Home, so let’s dive in.
We have a new version of the test suite out now.
It’s easier to use and has improved functionality.
Some key updates that we’ve made here are adding Google sign in,
no service account key required,
query and execution response support, no more text-to-speech queries.
The test suite has been updated with proper query support
where the query response must match the state
that comes into Home Graph via report state.
If you run your tests and hit a situation
where your product behaves differently from Google’s expectations
and it’s working as intended from your perspective,
we provide a comment button in the test suite.
You can just add a note and let us know why your test failed and why it’s okay.
In this particular case, we might suggest waiting to issue the report state command
until the request is completed.
Here’s an example of a case that Google Home does not support in our APIs.
We assume that our devices are bound to the three physical dimensions
and move linearly through time.
However if you happen to develop an extra dimensional object,
please simply note that in your test results.
Another feature that we’ve added to the test suite is validation
for Google account linking, which tests for best practices for token handling.
This is just built into the flow so there’s nothing extra that you need to do
to be able to access these tests.
With that we’re also adding a standalone Google account linking page that allows you
to test your token handling separately from the rest of the test suite.
We’re very excited to announce that we’ll be releasing webRTC support
very soon within the Google Home test suite.
Keep an eye out for this announcement.
Finally we are happy to tell you about another feature
that’s available today, which is the Home Graph Viewer.
The Home Graph Viewer shows what your device states currently are in Home Graph.
It leverages other functionality from the test suite
so again no service account key is required.
This is a very handy tool if you’re working on your report state implementation
and want to quickly see if the values are being updated in Home Graph.
Please make sure that you have opted into allowing communications for this event
and watch out for a follow-up email and updates to our documentation.
WebRTC is the technology that we are focusing on
for best in class camera streaming experiences.
WebRTC enables real-time communication for the smart home.
We encourage any of our camera partners and developers
to look into switching over to webRTC and to make sure that your integration is up to date
in order to be able to support webRTC when interacting with smart home APIs.
Keep an eye out for the webRTC validator tool,
which allows you to test your webRTC implementation quickly in your web browser.
This will enable to find debug and resolve issues quickly and easily.
We’re very excited to announce that we’ll be releasing web RTC support soon
within the Google Home test suite.
Keep an eye out for an announcement on this.
The test suite will be looking at the fields shown
and trying to get to the point of streaming real content during a test run.
We’d encourage any of our camera partners to look into switching over to webRTC.
Make sure that you’ve opted to allowing communications for this event
and watch out for follow-up email and updates to our documentation.
The device access program enables you access to control nest devices, programmatically.
As opposed to our works with program that lets your devices join the Google ecosystem,
device access allows you to incorporate
nest devices into your service request system.
A great way to learn and get started with device access
is to play with a web app that we created as part of the codelab.
Simply visit the link on the screen and follow the instructions
in the codelab to build and run your own device access web app.
You’ll want to create your own project in the device access console
and follow the instructions in our codelab and our documentation to create a project
and generate the necessary credentials.
Once you have it up and running, fill in the fields in the upper left.
These are the OAuth client ID and OAuth client secret as well as your project ID.
Then click sign in and run through the account linking flow.
When you’ve successfully account linked, look for the check marks on the screen.
These should be a check mark for OAuth code, access token and refresh token.
If one of the check marks is missing,
you’re going to want to validate your configuration and try linking again.
And now you can poke around the APIs without having written any code.
With this tool you can list devices and structures,
access to resource picker, do device control and subscribe for events.
As a bonus you can open up the browser console
to see requests going back and forth
and you can also check out what the code is doing
in the browser’s developer tools, go check it out.
Please make sure that you have opted into allowing communications for this event
and watch out for follow-up emails and updates to our documentation.
Thanks for watching.