使用 Homebridge 连接苹果 Homekit
为什么要搭建 Homebridge
起初事情是这样的,在2017年圣诞节差不多的时候收到了一个 TP-Link 的智能插座(长得不怎么样,照片就不放了),就是通过 Wi-Fi 控制的那种,使用 TP-Link 自家的 App:Kasa。
无奈 Kasa 是真的特别弱鸡,虽然支持连接到 Amazon 的 Alexa,然而我并没有任何 Echo 设备 🤷(Chrome 不支持男性摊手表情,差评)。于是博主尝试添加设备至 Google Home,it works!
不过,从去年的8月开始,博主已经成为 iPhone 用户了,使用 Google Assistant 控制确实不方便,外加博主还是 OCD 原生控
然而 —— 🤷 苹果的 Homekit 不支持 TP 家的产品
硬件支持
- 树莓派(大角色)
所有的搭建基本都在树莓派上完成
- Macbook Pro 一台
非必要,我只不过不想在树莓派上用迷你键盘敲代码🙃️,于是拿 MPB 来进行远程 ssh
软件依赖
注意:本文不是一篇手把手的新手教程,需要一定的 Shell 基础和树莓派基础
- 给你的树莓派找一个合适的 Distro
- nodejs
- npm
- avahi
- homebridge
- homebridge-tplink-smarthome
关于 Distro,博主的的 Distro 并没有任何的参考价值,因为博主的树莓派同时是一个智能 TV ,所以用的 Distro 是 OSMC (一个基于 Kodi 的媒体中心)
Homebridge 简介
Homebridge,从名字上就可以看出来这个软件本质是一个 bridge。
Homebridge 通过各种插件,支持了国内外无数的智能家居硬件,然后将自己伪装成苹果的 Homekit 硬件,接入 iOS 和 Siri
代码详细
我就假设你用的 Distro 是像 Raspbian 那样的类 Deb/Ubuntu 系统了,所以本文所有的涉及包管理器的命令将以 apt-get 做例子(之后会用到 npm),如果你是其他系统,请自行在 yum 和 rpm 等命令间切换。
本教程所有命令将以 sudo 权限执行,建议直接 sudo su 切换到 root
首先,安装 nodejs:
这里有一个坑,不要直接用 apt 装,不知道为什么每次试就会出错……
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
然后我们需要安装依赖,avahi,为安装 Homebridge 作准备:
sudo apt-get install libavahi-compat-libdnssd-dev
然后安装最新版本的 Homebridge:
sudo npm install -g --unsafe-perm homebridge
OK,到这里,主体安装完毕了,这里,博主要支持的设备是 TP-Link 家的,所以,接下来会安装专门针对 TP 家族产品的依赖,如果你在使用其他智能产品,可以尝试找找其他依赖,或者在本博客评论,我可以试着帮忙找找看
安装 TP-Link 依赖:
sudo npm install -g homebridge-tplink-smarthome
到这里其实已经可以投入使用了,但是如果你以后想使用其他智能硬件的话,还是加个配置为妙:
cd ~ #注:后期如果发现配置不生效,请把配置文件扔到/root里
mkdir .homebridge
cd .homebridge
vi config.json #这里使用Vim,可以选择自己习惯的编辑器
然后编辑内容:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
}
这是最基础的配置内容
然后敲命令:
sudo homebridge
大概就会出现这样的景象:
启动苹果的 Home(家庭) 应用,扫码,就可以连接啦~
填坑
这里还是有很多坑需要填的…… 🙂
坑一:ssh 挂起
如果你和博主一样,是通过 ssh 连接树莓派的,那么,如何让 homebridge 在 ssh 端开之后继续运行呢??
解决方案是:screen
Screen 可以创建一个面板,运行命令后,再挂起面板,就一直在后台运行啦
安装 Screen:
sudo apt-get install screen
启用 Screen:
screen
然后就可以继续敲命令啦,敲完之后,按下 Ctrl+A,然后按 D,就能够挂起面板了
这样就可以放心断开 ssh 了;需要恢复面板的时候,可以:
screen -ls #这里会返回一个ID
screen -r ID
坑二:硬件已添加
如果你因为某些原因在 Homekit 删除了你的智能硬件,你想重新加入 Homebridge,手机就会提示:该硬件已被添加,请重置
那么怎么重置呢?
解决方法:
rm -rf ~/.homebridge/accessories
rm -rf ~/.homebridge/persist
然后就可以重连了
参考
搭建过程中参考了一篇文章:树莓派进阶(一):借助树莓派与 HomeBridge,从米家到 HomeKit
结语
现在博主愉快的使用 Apple Watch 上的 Siri 控制台灯……
现在在尝试把 Homebridge 接入 Echo……
最后,有很多人写过关于 Homebridge 的文章,但我还是要写,因为有太多我走过的坑要分享,就这样

@coder-bts, 编程达人,你太厉害了!
哇!快分不清是淘气包的手动点赞还是句柄设置的自动回复了 :P
厉害了!你说的那几样东西我都有,有时间照着你的教程试试看
:D 现在我的树莓派是我的 homebridge 服务器 + ftp服务器 + 家庭媒体中心 + QQ机器人托管主机 + 私人NAS
我就用了当机顶盒子。。。
厉害了
好专业啊
不专业不专业
你好cn区点赞机器人 @cnbuddy 感谢你对cn区作出成长的贡献。如果我打扰到你,请回复“取消”。