Google Wifi Integration (Custom Component)

Having the same issues. When attempting to add the integration, it prompts for a Google Refresh Token (which you can’t get because the link to the tool is broken).

I have a google WiFi Mesh (not Nest Wifi) and would love to be able to display the relative health of the nodes, but so far have been unable to find a solution.

The HA documentation hints that Google WiFi integration is now built into HA, but there is practically no documentation and no examples to illustrate using it (Google Wifi - Home Assistant).

Google WiFi integration used to work. Now it won’t load:
image

I have several Google Wi-Fi Mesh AC-1304 devices around the house.

I get this error when booting HA:

2023-05-27 10:15:11.438 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing component custom_components.googlewifi
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 709, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/config/custom_components/googlewifi/__init__.py", line 8, in <module>
from googlewifi import GoogleHomeIgnoreDevice, GoogleWifi, GoogleWifiException
File "/usr/local/lib/python3.10/site-packages/googlewifi/__init__.py", line 8, in <module>
from ghome_foyer_api.api_pb2 import GetHomeGraphRequest
File "/usr/local/lib/python3.10/site-packages/ghome_foyer_api/api_pb2.py", line 18, in <module>
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
File "/usr/local/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py", line 220, in AddSerializedFile
file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
File "/usr/local/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py", line 771, in _ConvertFileProtoToFileDescriptor
message_desc = self._ConvertMessageDescriptor(
File "/usr/local/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py", line 913, in _ConvertMessageDescriptor
self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
File "/usr/local/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py", line 192, in _CheckConflictRegister
raise TypeError(error_msg)
TypeError: Conflict register for file "ghome_foyer_api/api.proto": google.internal.home.foyer.v1.GetAssistantRoutinesRequest is already defined in file "google/internal/home/foyer/v1.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.
2023-05-27 10:15:11.443 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration googlewifi: Unable to import component: Exception importing custom_components.googlewifi

Something about a naming conflict.

I also have the Google Home HACS custom integration:

image

Could that be the reason?

Update:
I can’t even delete the integration. It throws errors and fails.

I also see this error in the logs:

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 81, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 86, in delete
    result = await hass.config_entries.async_remove(entry_id)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 950, in async_remove
    await entry.async_remove(self.hass)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 551, in async_remove
    component = integration.get_component()
  File "/usr/src/homeassistant/homeassistant/loader.py", line 716, in get_component
    raise ImportError(f"Exception importing {self.pkg_path}") from err
ImportError: Exception importing custom_components.googlewifi

Is this integration working for anyone else?

 
 
- FINAL UPDATE

I got this resolved by updating Home Assistant that allowed me to update the Google Home HACS Integration to the latest. I also updated everything else for good measure (Google Home, Google WiFi, and Google Nest among others) and everything worked as expected again.

Is the https://www.angelod.com/onhubauthtool site down?

3 Likes

This might be helpful to someone (or to a future me).

To find the entity of the thing you need in order to reset the whole network:

Locate the Google Wifi System, either under Devices:

Or by clicking on any connected device then the Connnected via link:

image

Then click on the the first one from Sensors:

Then Settings icon:

Then find the Entity ID:

To actually reset the network, for example via the dashboard, you could add a button like this:

Equivalent yaml code:

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: googlewifi.reset
  target: {}
  data:
    entity_id: binary_sensor.google_wifi_system_aaaaabjjl3y
entity: binary_sensor.google_wifi_system_aaaaabjjl3y
show_state: true
icon: mdi:toggle-switch
name: Google Wifi System

Finally, to do the same thing via the API using curl, you’d use this:

curl --location --request POST 'http://<HA-ip-address>:8123/api/services/googlewifi/reset' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxx' \
--data-raw '{"entity_id": "binary_sensor.google_wifi_system_aaaaabjjl3y"}'

I think this integration might be dead, there doesn’t seem to be a way to get the auth code to sign in with your google account so there is no way to use this if you aren’t already signed in. Unless there is some other way to generate the code besides the site listed above and the chrome extension which no longer works.

1 Like

I read all the last post. I understand that it still doesn’t work. Is there any other possibility to integrate Google wifi? Thank you

Same for me: anyone success with nest wifi integration?

I came across these 2 forks - has anyone else tried to add one of these custom repos to HACS ? If you look at the commit history there were some recent edits including some vague steps about creating the refresh token.

As the original author, I apologize to everyone for not having time to get back to this and deal with migrating this to OAuth which is really what I think needs to happen on this. My integration is still working and unfortunately my day jobs have prevented me from coming back to this one. :slight_smile:

Looking at the two repos that @veep60 shared, it looks like the one from jeromecornet is most likely to include the required OAuth changes. I have not had a chance to try it, but it looks like he at least references that setup.

If Jerome is on here - feel free to chime in, and if your updates are working, I’d love to include them - feel free to open a PR on my repo and we can review together.

Alternatively, if anyone else gives that one a shot, please let us know your results and I may try to pull the changes into the existing repo for those that already have it running on their system.

4 Likes

I had it running fine until I was advised to uninstall. I don’t quite know why I did, but it was working fine :confused:

I’ve tried the @veep60 and I can’t get a refresh token accepted. It’s messed up a lot of my automations :frowning:

Anyway, if I can help in any way, let me know.

OK, I’ll try again, I was using your repo @djtimca

Edited: Can’t get anywhere with it, it requires 3 inputs and I don’t know what they are. I think they are email, token and android id (whatever that is).

The link provided for getting the token doesn’t work either.

No, I tried several times with jeromecornet/hagooglewifi
and cannot get it to work : [%key:common::config_flow::error::cannot_connect%]
I followed some steps in : TotalTaxAmount/hagooglewifi
In Google Cloud console inside of APIs & Services, I created a new Credential as a Web application and it has an Authorized Redirect URL but in HA it wont work

I tried many times without success, then I installed the official integration and it works. Would this be more?

I’ve just had to reset my google wifi setup and now I can’t get an OAuth code any more :frowning: Afraid I havent got much I can add to any of this but just wanted to say thanks to anyone looking to get this sorted

Is anyone looking into this issue, a lot of my automations relied on this integration :frowning:

1 Like

Unfortunately I haven’t had time to get back at this. It needs to have the authorization changed from token to Google sign in. If anyone has done similar somewhere else feel free to PR to my repo and happy to help but I don’t have time to take it on at the moment myself.

1 Like

I would love to help, but I am not that smart.

Tried the same 2 repo’s and gcloud api / credential web app with authorized redirect url with the exact same experience / result.

Hoping for a quick fix

Any updates on this? Or, does anyone know of a new integration that works with Google WiFi?

2 Likes

Tried these solutions also, not seeing anything on my end. Would love to get this working though if anyone has any ideas…

Unfortunately, the integration needs a rewrite by someone who knows what they are doing, that isn’t me :frowning:

Comment from further up this post.