How to set the mDNS IP for Google Assistant local fulfillment?

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?

I’m trying to figure out how to do this too. My “internal URL” for HA points to a plain text http proxy

Just sharing what I’ve tried over a month to finally get local fufilment working.

  • I’m running on HA yellow + cloudflare tunnel + NPM + non-nabu casa
  • Details in google project pretty much the same as in the google assistant instruction link
  • In home assistant i’ve set internal IP to http://:8123
  • Final thing that got my local fulfilment working was initiating a sync action from home assistant to google assistant

Hope this helps.

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

Hi,

I am running Home Assistant 2025.2.1 and followed the instructions, but I can’t get Local Fulfillment to work.

Any suggestion to troubleshoot?

generated mDNS record

<service-group>
  <name>Home</name>
  <service>
    <type>_home-assistant._tcp</type>
    <port>8123</port>
    <txt-record>location_name=Home</txt-record>
    <txt-record>uuid=c5b67ef6567b49d9beaccf180b28dda6</txt-record>
    <txt-record>version=2025.2.1</txt-record>
    <txt-record>external_url=https://home.g___.be</txt-record>
    <txt-record>internal_url=http://192.168.50.175:8123</txt-record>
    <txt-record>base_url=https://home.g___.be</txt-record>
    <txt-record>requires_api_password=True</txt-record>
  </service>
</service-group>

Anyone got a clear guide on how to do this?