Google Assistant SDK


The Google Assistant SDK integration allows Home Assistant to interact with Google Assistant. If you want to use Google Assistant (for example, from your phone or Google Home device) to interact with your Home Assistant managed devices, then you want the Google Assistant integration.

This integration allows:

  • Sending text commands to Google Assistant to control devices supported by Google Assistant but not by Home Assistant. Examples:
    • Set Nest Guard to home and guarding
    • Start vacuuming
    • Stream front door on living room TV
    • Turn off kitchen TV
    • Play rain sounds on bedroom speaker
  • Broadcast messages to Google Assistant speakers and displays without interrupting music/video playback. Examples:
    • Coffee is ready
    • Someone is at the front door
    • Smoke detected in the master bedroom
    • Water leak detected in the master bathroom

Prerequisites

You need to configure developer credentials to allow Home Assistant to access your Google Account. These credentials are the same as the ones for Nest or Google Sheets. If you have already set up credentials, you can do step 1 and then skip to step 13 on the below instructions.

Configuration

Adding Google Assistant SDK to your Home Assistant instance can be done via the user interface, by using this My button:

The integration setup will next give you instructions to enter the Application Credentials (OAuth Client ID and Client Secret) and authorize Home Assistant to access your Google Assistant API.

Troubleshooting

If you have an error with your credentials you can delete them in the Application Credentials user interface.

If commands don’t work try removing superfluous words such as “the”. E.g. “play rain sounds on bedroom speaker” instead of “play rain sounds on the bedroom speaker”.

If broadcasting doesn’t work, make sure: the speakers aren’t in do not disturb mode, the Home Assistant server is in the same network as the speakers, and IPv6 is disabled in the router.

Limitations/known issues

Multiple Google accounts are not supported.

Limitations of the underlying library are listed here (media playback, routines, and personal results are not working).

Configuration

On the configure page, you can set the language code of the interactions with Google Assistant. If not configured, the integration picks one based on Home Assistant’s configured language and country. Supported languages are listed here

Services

Service google_assistant_sdk.send_text_command

You can use the service google_assistant_sdk.send_text_command to send commands to Google Assistant.

Service data attribute Optional Description Example
command no Command to send to Google Assistant. turn off kitchen TV

Example:

service: google_assistant_sdk.send_text_command
data:
  command: turn off kitchen TV

Service notify.google_assistant_sdk

You can use the service notify.google_assistant_sdk to broadcast messages to Google Assistant speakers and displays without interrupting music/video playback.

Service data attribute Optional Description Example
message no Message to broadcast. someone is at the front door
target yes Rooms (in Google Assistant) bedroom

Example to broadcast to all speakers:

service: notify.google_assistant_sdk
data:
  message: time for dinner

Example to broadcast to speakers in selected rooms:

service: notify.google_assistant_sdk
data:
  message: time for dinner
  target:
    - bedroom
    - basement