Community Hass.io Add-on: Google Assistant Webserver (broadcast messages without interrupting music)

Thanks a lot Patrick :grinning:
Thought I was going crazy. I will try this.

On my side, i only have one google home (and a chromecast) and when I try ok google broadcast something, it simply says I have no available speaker.

I just thought of one gotcha that I came across. I found that I had to do the voice match thing to get the gmail account linked to my GHs. I made the mistake of using my own voice. This meant that when I spoke to the GH it often thought I was the “Home Assistant” Gmail account rather than my G Suite account. The upshot being that it played advertisements when playing YouTube music even though I have a premium subscription linked to my G Suite account. To fix it, I redid the voice match using a YouTube video of some random person saying “hey google” and “okay google” to train the voice match. Hope that makes sense.

Hi, I don’t know why I’m having trouble installing your add-on. I had it already installed and working but my SD card got corrupted, so I had to move my Hassio installation, everything worked smoothly but your add-on. I “uninstalled” it, but when trying to reinstalling it it starts then the Install button gets red and nothing happens. I installed another third-party addon without issues, so, any ideas?
Tks

Having the same issue as Tere_Ruiz. Trying to install through hassio, click the button, spins for a little while then stops and nothing has installed.
Cheers

Same here. Been having this issue of unable to install for months.

Same here.
Get a {“status”: “OK”} in the browser I use and in Google’s API console I see no errors.
Only strange thing I can see is the empty broadcast in Activities in my Home app.
Maybe this is the problem?
Shouldn’t there be a “Broadcast Hello” in activities when I send http://192.168.2.100:5000/broadcast_message?message=Hello
I only see “Broadcast”, but no text.

So I stumbled onto this addon because I have a Reolink Argus camera that now supports streaming to chromecast.
I wanted it so when the doorbell was pressed, it would automatically come up on the google hub/nvidia shield.

So far its working great, and I’ve created a command line switch that I plan to automate with the doorbell button, but unfortunately I can’t get it to stop casting.

I’ve tried numerous different commands in a web browser that replay with {“status”: “OK”} but nothing.
I mean, I could just do “media player stop” in the automation, but still curious why this isnt working.

Any help please?

This is my switch:

- platform: command_line
  switches:
    doorbell_camera:
      friendly_name: Doorbell Camera
      command_on: "/usr/bin/curl -X GET http://10.0.0.189:5000/command?message=show%20me%20the%20bedroom%20on%20shield"
      command_off: "/usr/bin/curl -X GET http://10.0.0.189:5000/command?message=stop%20playback%20on%20shield"
1 Like

How to I get or create the file google_assistant.json? If I create and upload the file using these old instructions, the add-on starts but doesn’t work (ERR_CONNECTION_REFUSED browser error).

Here’s the add-on log (running hassio on an intel NUC):

[Info] Install/Update service client_secrets file
[Info] Start WebUI for handling oauth2
[22/Jul/2019:19:17:56] ENGINE Listening for SIGHUP.
[22/Jul/2019:19:17:56] ENGINE Listening for SIGUSR1.
[22/Jul/2019:19:17:56] ENGINE Listening for SIGTERM.
[22/Jul/2019:19:17:56] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at '' has an empty config.
[22/Jul/2019:19:17:56] ENGINE Started monitor thread 'Autoreloader'.
[22/Jul/2019:19:17:57] ENGINE Serving on http://0.0.0.0:9324
[22/Jul/2019:19:17:57] ENGINE Bus STARTED

Same for me. Interested if anyone can assist?

So I can get it to install and put the json file in the folder ect. But once I get to the authentication page i get a 500 internal server error. any suggestions ?

EDIT : the service still works even though this error occured

500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.

Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py”, line 627, in respond
self._do_respond(path_info)
File “/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py”, line 686, in _do_respond
response.body = self.handler()
File “/usr/local/lib/python3.5/dist-packages/cherrypy/lib/encoding.py”, line 221, in call
self.body = self.oldhandler(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/cherrypy/_cpdispatch.py”, line 54, in call
return self.callable(*self.args, **self.kwargs)
File “/hassio_oauth.py”, line 46, in token
self.oauth2.fetch_token(self.user_data[‘token_uri’], client_secret=self.user_data[‘client_secret’], code=token)
File “/usr/local/lib/python3.5/dist-packages/requests_oauthlib/oauth2_session.py”, line 244, in fetch_token
self._client.parse_request_body_response(r.text, scope=self.scope)
File “/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py”, line 411, in parse_request_body_response
self.token = parse_token_response(body, scope=scope)
File “/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/parameters.py”, line 379, in parse_token_response
validate_token_parameters(params)
File “/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/parameters.py”, line 386, in validate_token_parameters
raise_from_error(params.get(‘error’), params)
File “/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/errors.py”, line 415, in raise_from_error
raise cls(**kwargs)
oauthlib.oauth2.rfc6749.errors.InvalidGrantError: (invalid_grant) Bad Request

Got the add-on installed and working, and love it!

However, I can’t seem to turn off the part of the message that says “Broadcast from James” before it announces my message. I’m intending to use this to give audio notifications, so I’d prefer that it not say that first. Is there any way to turn that off? My searching in the Google Home support site didn’t help at all.

No way to turn that off AFAIK. I set it up with a Google Account I made with the name set as “Home Assistant” so it says “Broadcast from Home Assistant” which I actually like because it gives time to quiet down and actually listen to the message that follows.

yup google in their wisdom added this a while back so that you would know who the broadcast was from…

change data_template: to data:

Ok, thanks I will try this. When did it change?

That i don’t know but it works for me.

I send message using:

action:
  - service: notify.google_assistant
    data:
      message: "blablabla"

Mmhh no, it’s still not working

Ok so for me broadcasting messages to my google assistant is working.
Accept for sending commands, when sending commands I get the following error:

ERROR:flask.app:Exception on /command [GET]
Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/flask/app.py”, line 1813, in full_dispatch_request
rv = self.dispatch_request()
File “/usr/local/lib/python3.5/dist-packages/flask/app.py”, line 1799, in dispatch_request
return self.view_functionsrule.endpoint
File “/usr/local/lib/python3.5/dist-packages/flask_restful/init.py”, line 480, in wrapper
resp = resource(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/flask/views.py”, line 88, in view
return self.dispatch_request(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/flask_restful/init.py”, line 595, in dispatch_request
resp = meth(*args, **kwargs)
File “/hassio_gassistant.py”, line 49, in get
response_text, response_html = assistant.assist(text_query=message)
File “/hassio_gassistant.py”, line 132, in assist
text_response = resp.dialog_state_out.supplemental_display_text()
TypeError: ‘str’ object is not callable
INFO:werkzeug:192.168.178.46 - - [05/Aug/2019 20:05:40] “GET /command?message=hoe+laat+is+het+nu HTTP/1.1” 500 -

But when I send a command with broadcast and then my command it works but just the command by itself doesn’t.

Can anybody help me with this.

regards Jordy

Whenever I run through setting this up, after pasting my password into the web server prompt the page that loads afterward shows “The page isn’t working”.

The token Google gives back is 4/NUMBERS AND LETTERS
When I look at the logs the token it’s yelling about is without the 4/
Did Google maybe start adding 4/ to this and maybe it can’t handle it?

Let me know if anybody has any ideas. Thanks.

I hame the same issue. Can’t make it work. Waiting for ideas

1 Like