home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.25k stars 30.6k forks source link

notify.google_assistant_sdk not working with IPv6 #84726

Closed TyzzyT closed 1 year ago

TyzzyT commented 1 year ago

The problem

According to the docs, a notify.google_assistant_sdk command should look like this:

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

But this doesn't work, because the notify.something command requires the message parameter. So when you try to execute the code above, it returns the error message:

Failed to call service notify.google_assistant_sdk. extra keys not allowed @ data['command']. Got None required key not provided @ data['message']. Got None

What version of Home Assistant Core has the issue?

core-2023.1.0b0

What was the last working version of Home Assistant Core?

never

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Google Assistant SDK

Link to integration documentation on our website

https://rc.home-assistant.io/integrations/google_assistant_sdk#service-notifygoogle_assistant_sdk

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

maennes commented 1 year ago

@flecmart: there must be another reason, because my installation uses both IPv4 and IPv6 on eth0 and I managed to get the notify.google_assistant_sdk working! Screenshot 2023-01-06 125529 Screenshot 2023-01-06 125700

marcelveldt commented 1 year ago

That is a local ipv6 address not public from your provider

maennes commented 1 year ago

@marcelveldt Don't follow you, here are the HA network settings:

Screenshot 2023-01-06 130159

RyanEwen commented 1 year ago

My guess is that if you have IPv6 from end-to-end on all your Google devices and Home Assistant then it will probably work.

In my case I have IPv6 on everything BUT Home Assistant, because I run it in Docker, so it didn't work.

firstof9 commented 1 year ago

@maennes I think he means it's not internet route-able like 2602:b8:6714:d300:20c:XXXX:XXXX:XXXX/64 would be

rsatoer commented 1 year ago

🤔 for the record same problem over here. Only can't check it out if it works after disabling ipv6. It's not accessible in a Ziggo router (consumer)

flecmart commented 1 year ago

I tried disabling ipv6 temporarily on my router (I have a fritz box) and it did not work. I can see the broadcasts under https://myactivity.google.com/myactivity, though. I guess it is really the google cloud not recognizing my google home minis because of some reason.

For reference, my setup:

RyanEwen commented 1 year ago

I tried disabling ipv6 temporarily on my router (I have a fritz box) and it did not work. I can see the broadcasts under https://myactivity.google.com/myactivity, though. I guess it is really the google cloud not recognizing my google home minis because of some reason.

For reference, my setup:

  • fritzbox cable rouer
  • 2 repeaters that build a mesh with the router
  • homeassistant supervised runs on a raspberry pi 4 connected via ethernet
  • 3 google home minis are connected via 5Ghz WLAN to different repeaters

With my Google Nest Wifi Pro I was able to turn off IPv6 without restarting the network/router, but it didn't work until I restarted everything. If your Fritzbox didn't do a full reboot after then it could be worth a try.

maennes commented 1 year ago

Could it be that these Google Cloud integrations don't work with Workspace accounts, i.e. you need to use consumer accounts (gmail.com domain)? That was certainly the case when I setup the new Nest integration once Allan Porter made it available to HA.

flecmart commented 1 year ago

I tried disabling ipv6 temporarily on my router (I have a fritz box) and it did not work. I can see the broadcasts under https://myactivity.google.com/myactivity, though. I guess it is really the google cloud not recognizing my google home minis because of some reason. For reference, my setup:

  • fritzbox cable rouer
  • 2 repeaters that build a mesh with the router
  • homeassistant supervised runs on a raspberry pi 4 connected via ethernet
  • 3 google home minis are connected via 5Ghz WLAN to different repeaters

With my Google Nest Wifi Pro I was able to turn off IPv6 without restarting the network/router, but it didn't work until I restarted everything. If your Fritzbox didn't do a full reboot after then it could be worth a try.

Hmm, okay it is worth a try. I did not reboot, but I checked that the google homes dropped their ipv6 adresses. I will test this tomorrow.

pedolsky commented 1 year ago

Hi there, debug says:


Kein anderes Gerät verbunden. Ich kann das nicht übertragen.
(means: No other device connected. I cannot broadcast this.)

~Did I miss something during configuration?~

EDIT: Had to do a factory reset. Now the message is at least recognised in the debug logs.

RyanEwen commented 1 year ago

Could it be that these Google Cloud integrations don't work with Workspace accounts, i.e. you need to use consumer accounts (gmail.com domain)? That was certainly the case when I setup the new Nest integration once Allan Porter made it available to HA.

I'm using a regular @gmail account

maennes commented 1 year ago

Looks like I'm just lucky that my ISP doesn't support IPv6 then, as per whatismyip.com

pedolsky commented 1 year ago

Disabling IPv6 ( the Fritz!Box doesn’t have to be restarted) indeed 'solved' the notify problem, but the result is disappointing.

flecmart commented 1 year ago

Disabling IPv6 ( the Fritz!Box doesn’t have to be restarted) indeed 'solved' the notify problem, but the result is disappointing.

What do you mean by "the result is disappointing"?

Just to make sure I did not try the wrong setting: I disabled IPv6 completely by disabling this checkbox:

image

Nevertheless the broadcasts won't play on my devices...

I just really hoped to finally have a generic tts that won't interrupt my music. I know there are scritps and music assistant... but I mainly use chromecast and I also want to start music via voice assistant. I do not want to use a specific app with a UI for starting my music.

pedolsky commented 1 year ago

Disappointing because Google Assistant always starts with incoming broadcast blablabla (yes, I know, it’s a Google problem, but…)

Yes, I unchecked 'IPv6-UnterstĂĽtzung aktiv'.

Playing music will not work.

andyxpert commented 1 year ago

Thanks for posting the original code library, now the limitations make more sense.

Basically no personal queries that need voice verification which seems legit

@flecmart did you restart the router after disabling IPv6 ? It needs to redo the lease flow to work with v4

tronikos commented 1 year ago

@home-assistant rename notify.google_assistant_sdk not working with IPv6

tronikos commented 1 year ago

Thanks for figuring out the incompatibility with IPv6. I've updated the documentation that you need to disable IPv6 for this to work. Unfortunately nothing more I can do. I'm closing this.

tronikos commented 1 year ago

@home-assistant close

agners commented 9 months ago

Closing with "not planned/won't fix" as we can't actually fix the problem from Home Assistant side.