dns-sd注册在被接受后未出现在浏览中

问题描述

我正在MacOS Catalina上的docker容器中运行家庭助手,需要允许HomeKit与之交互。 我正在尝试向dns-sd注册一项服务,以使其在该问题的线程中建议的修复程序的基础上起作用。注册有效,但是如果我正确理解该服务,此服务将不会出现。

我首先输入:

dns-sd -B

我立即获得服务列表。这些是我的以太网摄像机。然后输入:

dns-sd -R Homeassistant _hap._tcp local 51827 md=”HA Bridge” pv=1.0 c#=2 id=97:B0:2A:BC:1B:12 s#=1 sf=1 ci=2 ff=0 sh=UaTxqQ==

我得到答复:

Got a reply for service Homeassistant._hap._tcp.local.: Name Now registered and active

I Control + C 退出并重新输入dns-sdB。该命令挂起几分钟,并在注册之前显示相同的列表。应该使用B命令显示注册的项目吗?

另外,在我看来,该命令中的Homeassantant需要与实际服务相对应。如何验证它们是否匹配?当我运行docker ps时,我得到:

87ca131dbf58        homeassistant/home-assistant:stable   "/init"                  2 minutes ago       Up 2 minutes        0.0.0.0:8123->8123/tcp,0.0.0.0:51827->51827/tcp   home-assistant

这是我应该匹配的吗?由于macOS不区分大小写,因此它们应该匹配。

解决方法

如果我运行以下(zsh):

❯ dns-sd -R Homeassistant _hap._tcp local 51827 md=”HA Bridge” pv=1.0 c\#=2 id=97:B0:2A:BC:1B:12 s\#=1 sf=1 ci=2 ff=0 sh=UaTxqQ==
Registering Service Homeassistant._hap._tcp.local port 51827 TXT md=”HA Bridge” pv=1.0 c#=2 id=97:B0:2A:BC:1B:12 s#=1 sf=1 ci=2 ff=0 sh=UaTxqQ==
DATE: ---Thu 01 Oct 2020---
14:28:56.697  ...STARTING...
14:28:57.358  Got a reply for service Homeassistant._hap._tcp.local.: Name now registered and active

运行时得到以下信息:

❯ dns-sd -B _hap._tcp
Browsing for _hap._tcp
DATE: ---Thu 01 Oct 2020---
14:29:07.913  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
14:29:07.913  Add        3   1 local.               _hap._tcp.           Homeassistant
14:29:07.913  Add        3   5 local.               _hap._tcp.           Homeassistant
14:29:07.913  Add        3  23 local.               _hap._tcp.           Homeassistant
14:29:07.913  Add        3  24 local.               _hap._tcp.           Homeassistant
14:29:07.913  Add        2   4 local.               _hap._tcp.           Homeassistant

我相信您遇到了以下问题:

  1. 默认情况下,您不会浏览_hap._tcp来查看条目。
  2. 端口应与您在Docker中为该容器打开的端口相对应。