Google Assistant stops syncing

Hello there,

I am using the Google Assistant component, that makes my entities discoverable for Google Home. That was working quite well, before it stopped syncing some time ago. I added some new bulbs and wanted to sync, didnt work (I was still able to use the previously synced devices). So I did everything again, new project on Google etc. pp in January, everything was working fine. Now I tried to close my livingroom shutters today via voice and it did not work. Everything else (other shutters, vacuum, lights) works normally. I wanted to resync (“sync my devices” in google) and got an error. So out of nowhere, that does not work anymore AGAIN. I did not touch the google configuration in HA, neither did i change anything about the shutters, that are not working anymore. I have not unlinked it and tried to relink again yet, as I am very sure it wont work and I dont have the time to go through the hassle of setting up a new project etc. to get my lights to work again right now…

Is there anything I need to do in the google project to make things persistant? Anyone else experiencing this kind of thing? As everything works flawless in the beginning, I dont think its a configuration problem on my part.

Thanks

has your network gone down recently? Do you have static IP’s for your devices? This sounds like a networking issue.

Side note, Have you shut everything down and started it back up (router, hass, google devices, etc)?

Hey there, thanks for replying.

My network surely has restarted once or twice since the last time I set the google component up, but I have static IPs and everything else including the external access works just fine. Also the current Google integration works for everything but the one cover, so I dont really think its a networking issue as the commands from Google reach my Home Assistant. So apart from the one cover, the problem is that the syncing stops working (after some period of time?) as it worked the first couple of days after setup when i moved some bulbs around in the house.

I dont fully understand the process of the syncing, in what way it differs from the “normal” communication between google and home assistant. Maybe the used Google Project somehow gets disabled over time if not used or something like that?

Edit: I atleast discovered the difference between my office shutters, which is working and the living room shutters, which are not. The Livingroom has two shutters combined in a group, I am exposing that group as a switch to Google. For the office, I expose the one cover directly as a switch. When I tell my Google Home to close the Living Room, I get this error in the log: “Unable to find service cover/turn_off”, while the same command works just fine for the office shutter. So I guess this is a problem within home assistant that I cannot group the shutters. So the problem still remains with the syncing feature, that stops working.

Edit 2: I checked the log on DEBUG-Level and I can see entries for when I am trying to use the shutters, but none when I try to sync the devices. It seems that nothing from google reaches my home assistant when issuing that command (the request_sync in HA gives me an error too unfortunately, but I never tried that before so maybe it always did)

if you have items in a group, use the command homeassistant/turn_off instead of cover. Whats the full service name & data you use for syncing?

The actions are performed by HomeAssistant automatically with what it gets from Google Home, there is nothing I can do about that. It seems that a group with multiple covers does not work (anymore? I think it did…)…

The main concern is the continuos loss of syncing ability. I will try to unlink and relink tonight, doubt it will work though…

Did you see this portion of the docs:

If you want to use the google_assistant.request_sync service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
Go to the cloud console
Select your project and click Enable Homegraph API
Go to Credentials and select API Key from Create Credentials
Note down the generated API Key and use this in the configuration

Yes, I have that integrated into my config. Did so when I set it up the last time, eventhough it was not necessary before. I think that is just needed when you want to start the sync from the Home Assistant site. It always worked without that config when starting the sync from a Google device. But trying to sync from HA does not work either.

edit: I did unlink it now, of course could not relink. Went back into my project in google, went to account linking, went in and saved, then clicked “Test draft” and it appeared again in my Google Home App… So for some reason the project lost the connection/linking ability without me doing anything to it…

That’s super frustrating… Well at least you know this for the future.

1 Like

Sorry to refloat an old thread.
This same issue happens to me every month, and the only solution I find is the same as you: unlink, re-enable test in the Google project and link again.
This has the very frustrating side effect of having to relocate again all devices to rooms and editing every routine that affects such devices.

I think the Google project has some kind of “expire date” and you have to re-enable its “testing” state to be able to sync devices. I read some time ago that you can download some kind of JSON representation of the project and increase the expiring period for a long one, but I think that the Google API doesn’t allow to do so nowadays.

Still looking for a stable solution.

Just to say that I had to unlink and relink in order to sync my devices, it seems is the only working method :tired_face:

I encountered the same problem…and unfortunately the only solution seems to be the one above - unlink and relink my test HA account… :frowning:

Same here. Stopped working a month ago.
How to unlink the test account? Manage Accounts in the app does not show it as linked. But Google Home said it syncs it initially. Now it does not.
When I try to add it again, nothing is added. No errors in the log.

Im also experiencing the same issue. It seems to work fine for a few days/weeks (I dont use voice commands often as I just only got a Google Home Hub and Im still getting my HA up and running (I basically just pointed it to my Vera and setup up GA). Last night I unlinked the app from the Home app, then went to the Actions page on Google and upped the version of my draft app and ‘tested’ it, then relinked the app to Google Home. But like ec-blaster stated, its very frustrating to put all the devices back in their respective rooms.

Is there a Smart Speaker that does not require a cloud? Something like IP-camera, but for voice with some basic recognition for a key word. May be it is possible to create one using Raspberry Pi, and integrate it with HA?

I normally just re-enable the test and it works again. I don’t need to unlink-relink.

Also if you are experiencing frustrations with having to reassign rooms, why aren’t you defining the rooms in Home Assistant for Google?

eg:

# Google Assistant
project_id: !secret ga_project
api_key: !secret api-ga
exposed_domains:
  - switch
  - light
  - scene
  - input_boolean
entity_config:
  light.lounge:
    room: lounge room
  light.dining:
    room: dining room
  light.office:
    room: office

etc…

2 Likes

I actually didnt know you could assign rooms that way. I may just do that and try it out. On that topic, whats your thoughts on this :Is is possible to only allow a group to be exposed to Google Assistant instead of domain types?

Finally, you say you just ‘re-enable’ could you explain where that is done? I that on the Google Developer’s site? I think this could help people that come here in the future with the same issue.

You go into simulation mode in the Google Console and enable it again… Same as when you setup the integration you have to go into test/simulation.

Any way we can automate the enabling of the test simulation every 30 days?

I can imagine google doesn’t want the test simulator to be used as a ‘production’ ready service. To bad we can’t just run a private action with maybe a single user and a limit of a certain amount of calls… This whole restarting the test once every month is becoming a bit of an annoyance. Especially when you’ve setup rooms and aliases in the Home app.

From https://developers.google.com/actions/tools/simulator :

Test an Actions project

The simulator allows you to test the console’s current version of your Action package. You can upload the latest version of your Action package using the Dialogflow console or, if you’re using the Actions SDK, with the gactions tool.

When testing your Actions project, the following restrictions apply:

  • Your Action is testable for up to 30 days. After 30 days, you have to reupload the Action package for testing.
  • You can also test with real hardware devices that are logged into the same Google account that you used to create the Actions project.
  • Your Action package must have at least one Action declared.
  • When you want to the production version of an Action on a real device, you must disable testing of the draft version of your Action. See Disable and enable testing for more information.
  • If testing on hardware, you can also test on any supported hardware device (Android 6.0+, iOS 9.1+, and voice-activated speakers). The device must be logged into the same Google account you’re using in the Actions console.

The key to rooms and aliases is to set them up in Home Assistant and they you don’t need to touch anything in Google and it’s not as ‘painful’