Hey @calisro ,
I dont think devices are relevant, like first gen second gen, firmware preview on/off, someone posted it worked also on first gen devices, even with preview program off, lets focus on HA config
Lets start with the yaml:
In config.yaml i have :
name: Home Assistant
auth_providers:
- type: homeassistant
and:
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
- 192.168.0.0/24
In google_assistant:
project_id: !secret google_proj
service_account: !include xxx.json
expose_by_default: false
report_state: true
entity_config:
Below is a screenshot of the develop page:
And here is a screenshow when i goto this page : chrome://inspect/#devices
Here is a screenshow from a tool i installed on windows : “bonjour browser”
In this case i have setup an internal/external url in yaml config
I also tried removing them, set to blanc, then only the internal address is discovered
you can also see my 3 google devices are discovered
and as you can see , no (local) command there:
is it maybe becayse my local instance is = hassio.local
and whe are all talking about homeassistant.local ??
EDIT: changed to hostname homeassistant.local , restarted HassOS + google devices , but no difference
i also see you posted this:
opened 02:40PM - 09 Feb 22 UTC
closed 12:51AM - 10 Feb 22 UTC
### The problem
After extensive testing I've come to the conclusion that in i… ts current form, google local fulfillment can't function in non-nubucasa. Other issues I looked at seemed to concentrate on nubucasa so figured a new issue is appropriate.
Here are the facts as I know them from testing and reading issues/code.
1. HA defines the baseurl as a function of the external url. Setting baseurl explicitly is deprecated.
2. google local fulfillment app.js uses the baseurl for its communication to HA.
3. Local Fulfillment will only work on non-SSL. It will fail otherwise because certs are invalid against the mdns domain names.
4. - platform: google_cloud and others require an external url and use the baseurl to achieve its communication.
5. Since baseurl is a function of external url in order for google local fulfillment to function, the external url must at this point be a non-SSL url. This then breaks google_cloud and others because that url is not externally accessible.
My current setup is I have a nginx server by frenck implementing a reverse proxy. I have that SSL url port forward to my HA and externally available. I define the internal and external urls correctly with http://aaaaaa:8123 for my internal and https://bbbbbb for my external url. My installation is pretty typical in this setup.
When I take a look at the mdns entries, they look like this:
```
wlp58s0 IPv4 Home _home-assistant._tcp local
hostname = [7326c235xxxxxxxxxx1d89d9.local]
address = [10.100.1.183]
port = [8123]
txt = ["requires_api_password=True" "base_url=https://bbbbb" "internal_url=http://aaaaaa:8123" "external_url=https://bbbbb" "version=2022.2.3" "uuid=7326c235xxxxxxxxxx1d89d9" "location_name=Home"]
```
Google Local Fullfillment does not work. The app.js looks at the baseurl and determines how to connect and fails because the certificates aren't correct as it is attempting to connect to the baseurl (external https url) or the comparison to the ha devices isn't returning. Not sure. Google_cloud works as the baseurl/external url are externally accessible and secure.
When I change the external url to the same as the internal url, my mdns looks like this:
```
= wlp58s0 IPv4 Home _home-assistant._tcp local
hostname = [7326c235xxxxxxxxxx1d89d9.local]
address = [10.100.1.183]
port = [8123]
txt = ["requires_api_password=True" "base_url=http://aaaaaa:8123" "internal_url=http://aaaaaa:8123" "external_url=http://aaaaaa:8123" "version=2022.2.3" "uuid=7326c235xxxxxxxxxx1d89d9" "location_name=Home"]
```
Now Google Local Fullfillment works perfectly. The app.js looks at the baseurl and determines how to connect works because it is a non-secure url as baseurl (external http url) or the devices like up with ha in the comparison. Google_cloud now DOES NOT work as the baseurl/external url are NOT externally accessible and secure. I'm certain other functions will fail as well as the external url is not correct and is really the internal url.
### What version of Home Assistant Core has the issue?
core-2022.2.3
### What was the last working version of Home Assistant Core?
new feature
### What type of installation are you running?
Home Assistant OS
### Integration causing the issue
Google Assistant
### Link to integration documentation on our website
_No response_
### Diagnostics information
Detail in description. Happy to provide more as needed
### Example YAML snippet
```yaml
n/a
```
### Anything in the logs that might be useful for us?
```txt
Nothing helpful.
```
### Additional information
_No response_
my base_url is indeed pointing to an https url? maybe thats indeed the cullprit?
how did you change base_url anyway? wasnt that deprectad since we now have internal/external ??
Edit: nm, removed the external, so now both base and internal url are local, but still no local command!!
Tyrian81
(Tyrian81)
February 10, 2022, 9:54am
103
Guys keep in mind the google devices can offload their app.js (local fullfilment) when they run low on memory !
everytime i do a change, i always reboot the device, always testing on a mini and a max device
dont think memory is the issue
i’m lost, i think i have tested everything, just doesnt work, no idea why
Tyrian81
(Tyrian81)
February 10, 2022, 9:59am
105
you do have entities listed for
google_assistant :
entity_config:
and you did link your HA instance in the Google Home app ?
you don’t run 2FA in HA ?
yeah, i have about 70 entities exposed to GA, yes its linked
No, no 2FA enabled
Tyrian81
(Tyrian81)
February 10, 2022, 10:06am
107
I see your MDNS HA instance is Home Assistant , try changing your Name: field in google actions to Home Assistant , might be case-sensitive
ok,gonna try
btw, that Name field, its not documented, should it be filled in or not?
Tyrian81
(Tyrian81)
February 10, 2022, 10:08am
109
Yes I believe someone posted a github issue about the google assistant integration documentation to be adjusted.
Did the trick for me and removed a bunch of errors from logs.
ok, changed name to:
.Home Assistant\._home-assistant\._tcp\.local
rebooted the google device/ also HA, did a sync devices, when i inspect, no error,but still command is not local…
My guess its just not implemented yet
but in app.js, that baseurl is indeed interesting…
isnt that wrong? should that not be specified as internalUrl ?
i tried changing my baseurl to http , but stll didnt work
(!mdnsScanData.baseUrl || customData.baseUrl === mdnsScanData.baseUrl));
Tyrian81
(Tyrian81)
February 10, 2022, 10:34am
112
One more thing to try is changing you HA instance name , you now have a space, maybe google cant handle that.
Mine is simply: Huis
in HA settings → General
Wait! i have found something interesting, seems the app.js file is wrong!! He claimed after changing the .js file, it now works for him
also ‘support local query’ needs to be ticked
and offcourse the Name field, changed to below, so spaces/capitals doesnt mather anyway
.*\._home-assistant\._tcp\.local
all here… gonna try now the updates
home-assistant:current
← trvrnrth:google_assistant_local
opened 10:21AM - 04 Feb 22 UTC
## Proposed change
<!--
Describe the big picture of your changes here to … communicate to the
maintainers why we should accept this pull request. If it fixes a bug
or resolves a feature request, be sure to link to that issue in the
additional information section.
-->
Mirrors documentation describing the operation of the local fulfillment feature from https://www.nabucasa.com/config/google_assistant/.
Suggests use of the NGINX Home Assistant SSL proxy add-on to maintain secure external ingress.
Documents setting the local home SDK MDNS scan config Name to prevent IDENTIFY intents being sent for non-HA devices. Omitting this does not break the functionality, but results in a lot of logspam on every discovery round.
## Type of change
<!--
What types of changes does your PR introduce to our documentation/website?
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR.
-->
- [ ] Spelling, grammar or other readability improvements (`current` branch).
- [x] Adjusted missing or incorrect information in the current documentation (`current` branch).
- [ ] Added documentation for a new integration I'm adding to Home Assistant (`next` branch).
- [ ] I've opened up a PR to add logo's and icons in [Brands repository](https://github.com/home-assistant/brands).
- [ ] Added documentation for a new feature I'm adding to Home Assistant (`next` branch).
- [ ] Removed stale or deprecated documentation.
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
-->
- Link to parent pull request in the codebase:
- Link to parent pull request in the Brands repository:
- This PR fixes or closes issue:
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.
We're here to help! This is simply a reminder of what we are going to look
for before merging your code.
-->
- [x] This PR uses the correct branch, based on one of the following:
- I made a change to the existing documentation and used the `current` branch.
- I made a change that is related to an upcoming version of Home Assistant and used the `next` branch.
- [x] The documentation follows the Home Assistant documentation [standards][].
[standards]: https://developers.home-assistant.io/docs/documenting/standards
home-assistant:next
← marcusds:marcusds-patch-3
opened 10:08PM - 04 Feb 22 UTC
## Proposed change
<!--
Describe the big picture of your changes here to … communicate to the
maintainers why we should accept this pull request. If it fixes a bug
or resolves a feature request, be sure to link to that issue in the
additional information section.
-->
Enable local query for google_assistant, the functionality is identical to cloud query, so adding the functionality only requires updating the JavaScript that runs on the assistant devices and configuration change.
Also a fix to remove `onProxySelected`. This change was the only way I could make google_assistant local fulfilment work on any of my devices, but I would like to see others results with this. Two years ago this seemed to be a requirement, but none of Google's own docs or examples use it anymore.
## Type of change
<!--
What types of changes does your PR introduce to our documentation/website?
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR.
-->
- [ ] Spelling, grammar or other readability improvements (`current` branch).
- [ ] Adjusted missing or incorrect information in the current documentation (`current` branch).
- [ ] Added documentation for a new integration I'm adding to Home Assistant (`next` branch).
- [ ] I've opened up a PR to add logo's and icons in [Brands repository](https://github.com/home-assistant/brands).
- [x] Added documentation for a new feature I'm adding to Home Assistant (`next` branch).
- [ ] Removed stale or deprecated documentation.
This is a little unclear which type of change because code is included in this documentation.
I would like to longer term look at serving the JavaScript from Home Assistant itself. That will result in easier setup for users (just setting a URL in the Google Assistant developer panel, rather than uploading code) and more importantly code living with code not documentation.
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
-->
This builds on https://github.com/home-assistant/core/pull/63218
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.
We're here to help! This is simply a reminder of what we are going to look
for before merging your code.
-->
- [x] This PR uses the correct branch, based on one of the following:
- I made a change to the existing documentation and used the `current` branch.
- I made a change that is related to an upcoming version of Home Assistant and used the `next` branch.
- [x] The documentation follows the Home Assistant documentation [standards][].
[standards]: https://developers.home-assistant.io/docs/documenting/standards
1 Like
OMG , finally!!! its working NOW
the docs were just wrong!!
1 Like
i changed those 3 now, all working!
No, the .js file is just wrong, i uploaded a new one , a new version, and enabled “support local query”
this was NOT documented
i also see a lot of different stuff now, when i do a inspect devices, it was not there before
1 Like
Tyrian81
(Tyrian81)
February 10, 2022, 10:58am
119
Where did you download it , or is it adjusted in the docs page ?
Yes, it’s in the PR I posted earlier
home-assistant:next
← marcusds:marcusds-patch-3
opened 10:08PM - 04 Feb 22 UTC
## Proposed change
<!--
Describe the big picture of your changes here to … communicate to the
maintainers why we should accept this pull request. If it fixes a bug
or resolves a feature request, be sure to link to that issue in the
additional information section.
-->
Enable local query for google_assistant, the functionality is identical to cloud query, so adding the functionality only requires updating the JavaScript that runs on the assistant devices and configuration change.
Also a fix to remove `onProxySelected`. This change was the only way I could make google_assistant local fulfilment work on any of my devices, but I would like to see others results with this. Two years ago this seemed to be a requirement, but none of Google's own docs or examples use it anymore.
## Type of change
<!--
What types of changes does your PR introduce to our documentation/website?
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR.
-->
- [ ] Spelling, grammar or other readability improvements (`current` branch).
- [ ] Adjusted missing or incorrect information in the current documentation (`current` branch).
- [ ] Added documentation for a new integration I'm adding to Home Assistant (`next` branch).
- [ ] I've opened up a PR to add logo's and icons in [Brands repository](https://github.com/home-assistant/brands).
- [x] Added documentation for a new feature I'm adding to Home Assistant (`next` branch).
- [ ] Removed stale or deprecated documentation.
This is a little unclear which type of change because code is included in this documentation.
I would like to longer term look at serving the JavaScript from Home Assistant itself. That will result in easier setup for users (just setting a URL in the Google Assistant developer panel, rather than uploading code) and more importantly code living with code not documentation.
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
-->
This builds on https://github.com/home-assistant/core/pull/63218
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.
We're here to help! This is simply a reminder of what we are going to look
for before merging your code.
-->
- [x] This PR uses the correct branch, based on one of the following:
- I made a change to the existing documentation and used the `current` branch.
- I made a change that is related to an upcoming version of Home Assistant and used the `next` branch.
- [x] The documentation follows the Home Assistant documentation [standards][].
[standards]: https://developers.home-assistant.io/docs/documenting/standards