I’m running Home Assistant in a Kubernetes cluster using the official Docker image. I want to avoid running it with host networking, so I’m running a mDNS on the node in reflector mode.
Now I’m trying to use the Google Assistant integration with local fulfilment. I followed the instructions, including the local fulfillment instructions, here: Google Assistant - Home Assistant
Using a mDNS discovery tool I can see a _home-assistant._tcp. entry, but the IP address is the internal Kubernetes IP, even though I’ve set an internal IP in the Home Assistant settings, which also shows up as “internal_url=http://my-local-ip:8123”.
I assume for local fulfillment to work, the actual IP address for _home-assistant._tcp. needs to be reachable by my Google Home devices? Is there any way to set the IP for this, similar to the advertise_ip option for other integrations?
Please don’t change your internal IP to http://:8123
This will break the network configuration and Google Assistant
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/google_assistant/smart_home.py", line 117, in async_devices_sync_response
devices.append(entity.sync_serialize(agent_user_id, instance_uuid))
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/google_assistant/helpers.py", line 633, in sync_serialize
"httpPort": URL(get_url(self.hass, allow_external=False)).port,
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/network.py", line 150, in get_url
return _get_internal_url(
hass,
...<3 lines>...
require_standard_port=require_standard_port,
)
File "/usr/src/homeassistant/homeassistant/helpers/network.py", line 244, in _get_internal_url
internal_url = yarl.URL(hass.config.internal_url)
File "/usr/local/lib/python3.13/site-packages/yarl/_url.py", line 355, in __new__
return pre_encoded_url(val) if encoded else encode_url(val)
~~~~~~~~~~^^^^^
File "/usr/local/lib/python3.13/site-packages/yarl/_url.py", line 163, in encode_url
raise ValueError(msg)
ValueError: Invalid URL: host is required for absolute urls with the http scheme