To use Google Assistant, your server has to be **externally accessible with a hostname and SSL certificate**. If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propagate, otherwise Google may not be able to reach your server.
You will need to create a service account Create Service account key which allows you to update devices without unlinking and relinking an account (see below). If you don't provide the service account, the google_assistant.request_sync service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, “Ok Google, sync my devices”. Once you have set up this component, you will need to call this service (or command) each time you add a new device.
* Client ID: https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID. (Find your "YOUR_PROJECT_ID" by clicking on the three little dots (more) icon in the upper right corner of the console, selecting Project settings, your Project ID will be listed on the GENERAL tab of the Settings page.)
* Client Secret: Anything you like, Hal doesn't need this field.
* Click Add... --> Set up or add --> Set up device --> and click Have something already setup?. You should have [test] your app name listed under ‘Add new'. Selecting that should lead you to a browser to login your Home Assistant instance, then redirect back to a screen where you can set rooms and nicknames for your devices if you wish.
If you want to support actively reporting of state to Google's server (configuration option report_state) and support google_assistant.request_sync, you need to generate a service account.
* In the GCP Console, go to the "Create Service account" key page.
* From the Service account list, select "New service account".
* In the "Service account name" field, enter a name.
* In the "Service account ID" field, enter an ID.
* From the Role list, select "Service Accounts > Service Account Token Creator".
If you want to allow other household users to control the devices:
* Open the project you created in the Actions on Google console.
* Click Test on the top of the page, then click Simulator located to the page left, then click the three little dots (more) icon in the upper right corner of the console.
* Click Manage user access. This redirects you to the Google Cloud Platform IAM permissions page.
* Click ADD at the top of the page.
* Enter the email address of the user you want to add.
* Click Select a role and choose Project <Viewer.
* Click SAVE
* Copy and share the link with the new user.
* When the new user opens the link with their own Google account, it will enable your draft test app under their account.
* Have the new user go to their Google Assistant app to add [test] your app name to their account.