搬新家之后,买了个小米摄像头做门口的监控。最近闲下来了,刚好绿联也做了HomeAssistant的一些适配,就花了点时间,把摄像头接入到了Homekit中,虽然有点小瑕疵,但已经很够用了,有一些小坑点可以分享一下,帮助大家避坑。

摄像头接入Homekit流程
这里推荐另外一个博主做的分享:
他有很详细的步骤,教大家如何接入Homekit,我这边也是按着他这个视频中的步骤来接入的,只是中间有一些小细节,我想补充一下。
go2rtc获取小米device列表提示401 Unauthorized
这个实际上是触发了小米的登录频控,触发后只要等30分钟,再重新登录就没有这个问题了。
go2rtc转h264
这里要搞成两个视频流才行,不然的话转不了264。这里推荐一个Mac的软件,SmartRTSP,这个软件是内购收费的,但不要紧。这里我们只用他免费的部分,只要这个能够连的上就代表我的RTSP流是h264的,Homekit就肯定能连上,这个App都连不上的话,Homekit就肯定连不上。
Scrypted接入后的摄像头只能预览不能录像
这个是因为需要Homekit家庭里,同时具备家庭中枢、带有运动侦测的摄像头以及支持h264码流的摄像头,才能激活Homekit安全摄像(HSV)。激活后才能录像,这个功能需要Scrypted中的运动检测插件才行。
Scrypted现在已经放弃了PAM-diff的支持了,转而让大家都使用OpenCV插件,这个插件会依赖Python环境。使用Scrypted官方提供的容器是没装pip的,所以一运行这个插件就会失败。
解决方法是要自己在容器里,通过apt-get update更新一下镜像源,再通过apt install -y python3-pip,这样子才能装到python的依赖。装好依赖之后,OpenCV插件就能工作了,这个时候再将Scrypted作为网关加入到Homekit,再连接摄像头,才能激活HSV。
Homekit即使有家庭中枢,但还是无法预览。
这个问题也困扰了我2天,在家里一直能通过局域网连上Homekit里的摄像头,出外了就看不到了。后面试验了一下,终于发现是跟ShadowRocket存在冲突,开了代理就无法访问摄像头,不开的话,无论是Wifi还是流量就都能访问了。(Apple TV、Mac、Watch都是一样的问题,手机不挂代理就能正常看摄像头,开了就看不了,一直转圈圈。)
这个我暂时没研究出什么好的解决办法,我试过将地址添加到直连或者开启ShadowRocket的兼容模式,但是开了流量依旧无法访问,不知道为啥,欢迎有解决该问题的朋友指导一下。