问题描述
我正在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
我相信您遇到了以下问题:
- 默认情况下,您不会浏览
_hap._tcp
来查看条目。 - 端口应与您在Docker中为该容器打开的端口相对应。