Get Started

You can build Smart Home apps that let users control IoT devices through the Google Assistant. Building Smart Home apps lets you connect, query, and control devices through your existing cloud infrastructure.

Smart Home apps rely on Home Graph, a database that stores and provides contextual data about the home and its devices. For example, Home Graph can store the concept of a living room that contains multiple types of devices (a light, television, and speaker) from different manufacturers. This information is passed to the Google Assistant in order to execute user requests based on the appropriate context.

Get the end-to-end sample for Smart Home apps by downloading or cloning from Github.

Get the sample

Syncing devices

User set up their devices with the Google Assistant app to authenticate to your cloud services and the Assistant receives an OAuth token. At this point, the Assistant sends an action.devices.SYNC intent to your fulfillment to retrieve the initial list of user devices and capabilities from your cloud infrastructure.

Figure 1 - blue represents Google infrastructure; yellow Partner infrastructure

You can send a request to the Google Assistant with the action.intent.REQUEST_SYNC intent, which sends the action.devices.SYNC intent to your fulfillment to sync the list of devices and capabilities again.

Figure 2

Executing commands

When users ask the Assistant to send commands to devices, your fulfillment receives a action.devices.EXECUTE intent with a payload that describes the action and the devices to act upon.

Figure 3

Querying device status

Querying of device status, either to answer a user question like "What lights are on in the kitchen?" or to handle relative brightness commands like "Turn up my lights" happens with the Assistant sending an action.devices.QUERY intent to your fulfillment.

Figure 4