Yep same here. no go on latest HassIO
Community Hass.io Add-on: Google Assistant Webserver (broadcast messages without interrupting music)
Same problem here as well! Running 0.74
Addon has not been working for me for a while now. It used to not work due to the google update/error that was fixed a few weeks back, worked a bit and then stopped again.
Today, I wanted to start from scratch, created a new json-file and wanted to uninstall and reinstall.
Problem 1: I cant uninstall the addon! After hitting uninstall and confirming I get sent back to the Hass.io Addon page and the GA Webserver is still there just greyed out/not running… Tried that several times, multiple hass.io restarts, cant uninstall.
Problem 2: When I start it now I get the following error in the log:
[Info] Install/Update service client_secrets file
Traceback (most recent call last):
File "/hassio_gassistant.py", line 144, in <module>
credentials.refresh(http_request)
File "/usr/local/lib/python3.5/dist-packages/google/oauth2/credentials.py", line 136, in refresh
self._client_secret))
File "/usr/local/lib/python3.5/dist-packages/google/oauth2/_client.py", line 237, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/usr/local/lib/python3.5/dist-packages/google/oauth2/_client.py", line 111, in _token_endpoint_request
_handle_error_response(response_body)
File "/usr/local/lib/python3.5/dist-packages/google/oauth2/_client.py", line 61, in _handle_error_response
error_details, response_body)
google.auth.exceptions.RefreshError: ('deleted_client: The OAuth client was deleted.', '{\n "error" : "deleted_client",\n "error_description" : "The OAuth client was deleted."\n}')
I would guess that means it cannot find the json-file in my /share/ folder as the message never changed, even when i purposefully entered a wrong name for the json file. OR somehow it saved the old json-file and ignores the new one (i did delete the old client @ google and created a completely new one).
Help is appreciated. Any way to “hard uninstall” an addon?
Edit: Just tried uninstall via CLI, didn work either:
core-ssh:~# hassio addons uninstall -name fe49a976_google_assistant_webserver
Error decoding json invalid character '<' looking for beginning of value: <html><head><title>500 Internal Server Error</title></head><body><h1>500 Internal Server Error</h1>Server got itself in trouble</body></html>
I had the same problem after transitioning from ResinOS-based hassio to Hassos. Several of the plugins weren’t working including Google Assistant Webserver. It wouldn’t let me uninstall either. The work-around for me was to make a partial snapshot that did not include the Google Assistant Webserver plugin and then do a fresh install and restore.
Thank you, that worked (eventhough its an aweful lot of work for reinstalling an addon…)
After reinstall, atleast I dont get error messages in my log! The broadcast messages I am sending are showing unter “My activities” in Google Home, but the devices are not broadcasting for some reason
@AndBobsYourUncle, hoping you can give me some guidance on a special use-case for your webserver. Here’s the scenario:
I’ve a MS6126 switch device (https://www.jaycar.com.au/240v-mains-wi-fi-wireless-switch-module-with-app/p/MS6126) that has no Home Assistant Component, however it is supported by Google Assistant (https://assistant.google.com/services/a/uid/00000040393e4c1c?hl=en-US)
Using your Google Assistant Webserver I can create a template switch in Home Assistant which will turn on or off the MS6126 by issuing the command “turn on XX light” and “turn off XX light”, but i’d also like for Home Assistant to be aware of the current status of the MS6126.
Using your “GAWS” addon is it possible to issue the command “is the XX light on” and parse the verbal response from Google Assistant so that Home Assistant can update the status of the switch? (i.e. update the template switch in Home Assistant UI so i can see remotely if the light is on or off).
Any advice would be appreciated!!! Thanks.
I discover every day some new awesome community add-on. I’ve migrate from a classic Rpi3 to hass.io today … and I will try this as soon as possible.
Just a question, why it need another add-on ? This feature could not be implemented in the normal Google Assistant add-on ?
Thanks for your work !
Are all of you using the 64 bit version? There are other addons besides this one that you may have problems with as well when using it. As there were no apparent advantages to using 64 (it was much slower for me in every way), I switched to the 32 bit version.
I have the 32-bit version and can’t install the addon either.
What does it say in the hassio > system logs after you try to install?
(or hassio su logs
using the cli)
I can’t install the add-on. I got to the step of “open web ui”, and after I paste in the authentication code I get an error (below). It suggests it’s a ‘temporary error’, but if I try later I get the same result. As others have found, the add-on will not uninstall (and I’m hoping I don’t have to go down the partial snapshot, blow it away and restore path). Any assistance would be appreciated, as I’m tired of the Google Home stopping the music.
This is the error in the hass.io log:
18-08-03 05:46:50 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 378, in start
resp = await self._request_handler(request)
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 341, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 88, in impl
return await handler(request)
File "/usr/local/lib/python3.7/site-packages/hassio/api/security.py", line 56, in token_validation
return await handler(request)
File "/usr/local/lib/python3.7/site-packages/hassio/api/utils.py", line 32, in wrap_api
answer = await method(api, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/hassio/addons/utils.py", line 34, in wrap_check
return await method(addon, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/hassio/addons/addon.py", line 674, in start
return await self.instance.run()
File "/usr/local/lib/python3.7/site-packages/hassio/utils/__init__.py", line 25, in wrap_api
return await method(api, *args, **kwargs)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.7/site-packages/hassio/docker/addon.py", line 272, in _run
self.image, self.version)
File "/usr/local/lib/python3.7/site-packages/hassio/docker/addon.py", line 47, in version
return super().version
File "/usr/local/lib/python3.7/site-packages/hassio/docker/interface.py", line 45, in version
if self._meta and LABEL_VERSION in self._meta['Config']['Labels']:
TypeError: argument of type 'NoneType' is not iterable
And this is the error I get in the ui:
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/urllib3/connection.py", line 171, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "/usr/local/lib/python3.5/dist-packages/urllib3/util/connection.py", line 56, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/lib/python3.5/socket.py", line 733, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 849, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 314, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 180, in _new_conn
self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x7ff67a922c88>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 445, in send
timeout=timeout
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/local/lib/python3.5/dist-packages/urllib3/util/retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.googleapis.com', port=443): Max retries exceeded with url: /oauth2/v3/token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7ff67a922c88>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
During handling of the above exception, another exception occurred:
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 221, in fetch_token
verify=verify, proxies=proxies)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 559, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests_oauthlib/oauth2_session.py", line 360, in request
headers=headers, data=data, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 512, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 622, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 513, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.googleapis.com', port=443): Max retries exceeded with url: /oauth2/v3/token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7ff67a922c88>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
Following error occurs:
18-08-03 09:08:57 ERROR (MainThread) [hassio.addons.addon] Addon a0f42afb_google_assistant_webserver not supported on i386
Hey all
Got it working on QNAP nas in docker, using version 0.0.4. [UPDATE] The trick to getting this working was to use different ports from 9324 and 5000.
Broadcast works fine, as does sending most other commands (eg “ask harmony to turn on the TV”). What I can’t get working is to get musing playing on my chromecast audio. The activity history says that google can’t help with that right now. But if I just say it to my google home, it works.
Any ideas how I can fix this?
@mooturner I have the same problem. I was hoping that creating a Routine to play music and naming it “Turn on music mode”, then issuing the command “Turn on music mode” from this addon would work, but it does nothing.
@masterfink It’s not a problem you can fix. This was made to take advantage of the “broadcast” feature, which isn’t involved in casting media (you don’t broadcast to a single device, but rather all google home devices). The “command” stuff was discovered later almost by accident and it doesn’t support casting media either. You can turn off lights and switches, but Home Assistant automations already cover that, so using command is not so useful. It’s not anything you’ve done, or the addon…it just isn’t supported on Google’s end.
Can you add aarch64 arquitecture please?
Addon fe49a976_google_assistant_webserver not supported on aarch64
I think this info should be noted in the 1st post like a FAQ @AndBobsYourUncle
What you can do or not with the addon, the DND setting etc…
Casting media is actually supported by Google with the Google Assistant Library but it’s only available for linux-armv7l and linux-x86_64 architectures with Audio capture and playback.
I use it everyday for my morning alarm.
Isn’t that basically the Google Assistant SDK though (a different addon for Hass.io) and not this “relay”? Or are they the same thing?
My solution is a mix between the official Hassio add-on and this one.
To summarize:
Official add-on | This add-on | My solution | |
---|---|---|---|
Hassio ready (Docker) | ✓ | ✓ | ✗ |
SDK component used | Google Assistant Library | Google Assistant Service | Google Assistant Library |
Supported architectures | linux-armv7l and linux-x86_64 | All gRPC platforms | linux-armv7l and linux-x86_64 |
Webserver embedded | ✗ | ✓ | ✓ |
Input method | Voice only | Text only | Voice and text |
Broadcasting | ✓ | ✓ | ✓ |
Remote media casting | ✓ | ✗ | ✓ |
I’m not sure why it’s not spoken of more on these forums or with this addon, but the command feature is extremely useful and might save you a bit of cash.
A fair bit of cheap smart devices that are not yet or unable to be implemented into HA do have Google Assistant support. There are occasionally other methods to get these into HA including IFTTT, but they are very slow to react. This is a great solution to use these devices in HA and have them react just as fast as officially supported devices.
Before finding HA I had a good number of Meross smart plugs, they were cheaper than sonoffs at the time and I built my own solution from Google’s SDK to do this once I fell in love with HA, but now I don’t have to worry about all that.
Thanks for this.