Home Assistant devices not loading in Google Home

Hi everyone,
I recently updated my HA with the new frontend login, current version 0.81.2.
I have duckdns under SSL by Let’sEncrypt, RPI is always updated and upgraded, ports 8123 and 443 are forwarded.
Everything worked fine during the update, I can access my HA with the new frontend but now I cannot see all my devices in Google Home.
I followed the https://www.home-assistant.io/components/google_assistant/ guide step-by-step (“Migrate to release 0.80 and above”), properly modified the Google Project settings and my configuration(.yaml):

Enables the Google Assistant component

google_assistant:
project_id: !secret ga_pid
api_key: !secret ga_akey
exposed_domains:
- SWITCH
- SCRIPT
- LIGHT
- SENSOR
- GROUP
- AUTOMATION

The “[test] xxx” project is available in Google Home, I click on it, I successfully set the HA credentials and link HA with GA (“Accounts now linked”) but when the page refreshes no devices have been added to GA and the “[test] xxx” project still remains in the available component list.

I tried everything for days, this is very frustrating. Any ideas?
Many thanks
SoL

Well after days of strugglings I found the solution by myself.
I found many other users having the same issue in different topics, I hope this can help.

  1. While setting up your actions (https://console.actions.google.com/) and apis (https://console.cloud.google.com/apis/), you must verify that both share the same project name.
    This could help you a lot.

  2. While linking your “[test] project” in Google Home, use the “Legacy API Password” method instead of “Home Assistant local” to sign in in Home Assistant. This point was the clue for me.

Hope it helps
SoL

I dont understand, where do i get the legacy api paasword? and where shall i use it?

I have the same problem: The “[test] xxx” project is available in Google Assistant, I click on it, I successfully set the HA credentials and link HA with GA (“Accounts now linked”) but when the page refreshes no devices have been added to GA and the “[test] xxx” project still remains in the available component unlinked list.

I have verified that my action and Homegraph API has the same project name. I have also tried the legacy API login with no luck.

Any suggestions?

1 Like

I have no progress yet, will try the legacy though havent got the time yet this week.

Sunonline, may i ask you to share what you added/changed when you use the legacy api because i dont fully understand!

Really appreciate it.

Add the the authentication provider type legacy_api_password in configuration.yaml. https://www.home-assistant.io/docs/authentication/providers/#legacy-api-password

The password is stored in secrets.yaml
http_password: xxxxxxxx

Configuration.yaml

homeassistant:
  name: !secret homeassistant_name
  latitude: !secret home_latitude
  longitude: !secret home_longitude
  elevation: !secret home_elevation
  unit_system: metric
  time_zone: Asia/Bangkok  
  customize: !include config/customize.yaml
  customize_glob: !include config/customize_glob.yaml
  auth_providers:
    - type: homeassistant
    - type: legacy_api_password  #<=== to http, api_password
    - type: trusted_networks
http:
  base_url: !secret base_url  
  api_password: !secret api_password   # <== your api_password to login to HA
  ssl_certificate: !secret ssl_certificate
  ssl_key: !secret ssl_key
  trusted_networks:
   - !secret trusted_1
   - !secret trusted_2   
   - !secret trusted_3

google_assistant:
  project_id: !secret google_project_id
  api_key: !secret google_homegraph_api_key
  expose_by_default: false
  entity_config:
    group.timer_light:
      name: Auto Outdoor Light
      aliases:
        - outdoor light
        - auto outdoor light
      expose: true     
      room: Office      
    switch.test_light_1:
      name: Test Light 1
      aliases:
        - test light 1
        - light number 1
        - gratia light 1
        - first light
      expose: true
      room: Office
    switch.test_light_2:
      name: Test Light 2
      aliases:
        - test light 2
        - light number 2
        - gratia light 2
        - second light
      expose: true
      room: Office      
    switch.test_light_3:
      name: Test Light 3
      aliases:
        - test light 3
        - light number 3
        - gratia light 3
        - third light
      expose: true
      room: Office    

*** Unlink your [test] name in google home app first, when make any changing or setting in google console.
Here is how it looks like in google console

Did this work for anyone else? I tried to make the change to auth_providers to the legacy password that @Sunonline suggested but I still have the same issue. Says it links but nothing actually happens. I’m on 0.81.6 if that makes a difference.

1 Like

That the above setting of my configuration.yaml / however when I click link [test]name. This will launch to my home-assistant login page. I use my username and password to link with google assistant component. not the api_password.

Thanks, I was just now able to get mine working with my username and password as well. The change that I made was changing the exposed domain from LIGHT to light. The capital letters (which are found in the home assistant guide) seem to cause an issue. Once I switched to lower case it worked fine.

Hurray!
Changing the exposed domain names to lower case also got mine to work.

Nah it didnt solve it for me either…

You can post your google assistant yaml here. So we can help you check.

It was a simple solve, it was the domains that had to be in lower case letters…

I had this problem on 0.84.6 and found one additional fix described here: https://github.com/home-assistant/home-assistant/issues/11611#issuecomment-359762528

The following configuration used to work to hide all devices except those listed in exposed_domains:

google_assistant:
  project_id: [snip]
  api_key: !secret [snip]
  expose_by_default: false # this must now be true
  exposed_domains:
    - switch
    - light
    - input_boolean
    - scene

Changing expose_by_default to true fixed this issue while behaving the same.