Zero-configuration networking (zeroconf)

Zero-configuration networking (zeroconf) 集成会扫描网络中的受支持设备和服务。发现的集成会显示在配置面板中集成页面的“已发现”部分。它还会让 Home Assistant 可被网络中的其他服务发现。Zeroconf 有时也被称为 Bonjour、Rendezvous 和 Avahi。

集成可以通过在其 manifest.json 中添加 Zeroconf 部分HomeKit 部分 来启用被发现功能。

配置

此集成默认处于启用状态,除非您在配置中禁用了或移除了 default_config: 这一行。如果确实如此,而您又希望 Home Assistant 使用 zeroconf 和 HomeKit 来扫描集成,以下示例展示了如何手动启用此集成:

# Example configuration.yaml entry
zeroconf:

网络接口与自动检测

Zeroconf 会根据 Network 集成来选择在哪些接口上广播。

如果所选接口中有一个接口通过 Network 集成启用了 IPv6 地址,IPv6 将自动启用。

故障排除

Zeroconf 浏览器

Zeroconf 浏览器会显示 Home Assistant 通过 Zeroconf(也称为 mDNS 或 Bonjour)发现的设备。这种方式允许设备在本地网络中通告自己的服务,而无需中心目录。Home Assistant 会主动使用 Zeroconf 搜索特定服务,任何匹配的设备都会显示在此浏览器中。

要打开 Zeroconf 浏览器,请前往: Settings > System > Network > Zeroconf Browser

依赖 Zeroconf 流量的集成没有响应

某些集成依赖 Zeroconf 流量才能工作,例如 HomeKit 集成。 如果宿主设备配置不正确,这些集成将无法响应来自其他设备的流量。

使用 macvtap 适配器的 Libvirt 虚拟机

默认情况下,libvirt 创建的 macvtap 适配器不允许虚拟机接收 Zeroconf 或组播流量。

要让虚拟机接收这类流量,请在适配器的 XML 中添加 trustGuestRxFilters="yes" 设置。例如:

<interface type="direct" trustGuestRxFilters="yes">
  <mac address="xx:xx:xx:xx:xx:xx"/>
  <source dev="eno1" mode="bridge"/>
  <model type="virtio"/>
  <link state="up"/>
  <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>

这仅适用于 virtio 网络适配器类型,并且出于安全原因默认处于禁用状态。有关更多详细信息,请参阅 libvirt 文档

已发现的集成

以下集成会由 zeroconf 集成自动发现: