[AI攻略] 借助树莓派与 HomeBridge ,将 YeeLight 彩光灯接入 Apple HomeKit | Matrix 精选
写这篇教程的目的,算是一个抛砖引玉。这也许是中文网站上最简单的倒腾 HomeKit 的教程,只需要准备好相应的硬件,跟着步骤一步一步走,大约半个小时就能完成。当然,折腾所在的目的是为了那种成功之后的喜悦感,市面上有很多产品也许会比这一套系统便宜,但是这样就再也享受不到 Do It Yourself 的乐趣了。
准备好了吗?那我们就开始吧。
首先我想把 HomeBridge 安装在我的路由器上。因为 OpenWRT 也是 Linux 的一个嵌入式发行版,我想是没问题的。在网上扒了扒相关资料,发现确实是有人成功过,但是就着步骤做的时候,发现有一个插件总是装不上去。后来去论坛问了问官方的人员,才发现是因为自己的路由器是小米路由器 mini,ROM 空间不足无法安装,遂只能放弃路由器的方法。
后来根据客服人员的建议,我选择了用树莓派的方法。网上的相关资料显示,利用 HomeBridge 这一款插件,可以接入很多原本不支持 Apple HomeKit 的硬件设备。
以下是楼主折腾的时候所用的硬件,可以根据个人需要自行更改。
树莓派 3 代 B 型及相关最小系统(包含 Micor SD 卡、电源等)
MacBook Pro 电脑( Windows PC、Ubuntu、Linux 均可)
YeeLight 智能灯泡
网线一根
当然,如果你有一个足够 ROM 空间的路由器,你可以选择把 HomeBridge 安装在路由器上,具体的教程可以拉到本页最底部,点击相应链接。
以下教程基于楼主运行 macOS Sierra 的 MacBook Pro 和 Raspbian Jessie 的树莓派。
拿到树莓派之后,接上电源和网线,将写好系统的 Micro SD卡插入树莓派,给树莓派安装系统。我选择的是官方网站提供的 Raspbian Jessie,因为其他系统可能需要安装其他额外的插件。具体的安装教程可以参考网络,楼主的方法是在 Win32 Disk Imager 将下载的 Raspbian 系统镜像直接写进 SD 卡,甚至连格式化都不需要,一键无痛。写完之后插入树莓派,接上电源即可以开机。
在开始安装相关插件之前,因为某些不(G)明(F)的(W)网络的原因,会导致树莓派下载速度会非常的慢。后来在派友的建议下,开启 SS 并选择美国服务器和全局代理即可。所以建议大家在折腾的时候也修改成相关配置。
安装完成之后,用网线连接好树莓派和路由器,打开电脑的终端,用 ssh 登录树莓派。
ssh pi@raspberrypi.local
或者
ssh pi@X.X.X.X
其中 X.X.X.X 为树莓派的 IP 地址,可以在路由器的运行网页查看到。之后终端会要求输入密码,输入 raspberry 回车即可。输入密码的途中终端不会显示任何字符,只需要正常输入即可。
登录树莓派之后,先升级软件源,在终端下输入以下代码,等待一段时间即可。
sudo apt-get updatesudo apt-get upgrade
趁着更新软件源的空挡,我们在 App Store 下载官方的 Yeelight 应用,先连接上灯泡,然后点右上角的三根横杠,在下方打开极客模式。
回到终端,我们继续来安装 Node.js 。从版本 4.0.0 开始,Node.js 默认支持基于 ARM 的平台,我们只需要输入相关代码即可。
依次在终端输入以下命令:
wget https://nodejs.org/dist/v4.3.2/node-v4.3.2-linux-armv6l.tar.gz tar -xvf node-v4.3.2-linux-armv6l.tar.gz cd node-v4.3.2-linux-armv6lsudo cp -R * /usr/local/
完成之后,输入 node -v
检查一下是否安装完成,如果显示 v4.3.2
,则表示 Node.js 安装成功。
在终端输入以下命令即可:
sudo apt-get install libavahi-compat-libdnssd-dev
依次在终端输入以下命令:
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gypcd /usr/local/lib/node_modules/homebridge/sudo npm install --unsafe-perm bignumcd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdnssudo node-gyp BUILDTYPE=Release rebuild
输入以下命令:
sudo npm install -g homebridge-yeelight
等待命令运行结束后,输入
cd /home/pi/.homebridge/vi config.json
点击键盘的 i 键,终端左下角出现 -- INSERT -- ,如下图所示。
将以下代码复制到终端:
{ "bridge": { "name": "YeeBridge", "username": "18:00:27:40:BC:1B", "port": 51825, "pin": "031-45-154" }, "platforms": [ { "platform" : "yeelight", "name" : "yeelight" } ]}
粘贴完成后,按Esc键,输入 :wq(冒号不能少,并且是英文字符)然后回车。
之后,便可以运行 HomeBridge :
homebridge
这一步完成之后,HomeBridge 就安装完毕并且开始运行, YeeLight 彩光灯也成功接入 Apple HomeKit ,打开 iOS 10 自带的家庭 App, 点击添加配件即可。会有两个配件,第一个是 YeeBridge ,这是一个桥接器;还有一个才是我们要控制的灯泡。
现在,你就可以享受「嘿 Siri ,帮我开个灯」了。
然而我们的折腾完了吗?没有,远远没完。如果现在你关掉终端,你会发现,HomeBridge 停止运行了。我们不可能在电脑上挂着终端使树莓派一直运行这个服务,因此还有最后一步,把 HomeBridge 服务加入到树莓派的系统服务里。
首先我们要开启 root 账户,首先在终端输入:
sudo passwd root
然后会提示你设置 root 账户密码,第一次输入之后还要确认一次,一样两次输入不会有任何字符显示。输入完毕之后,启用 root 账户,输入以下命令:
sudo passwd --unlock root
然后会提示报错:passwd: password expiry information changed.
,原因是新版的系统默认禁止 ssh 登录 root 账户,我们需要修改一下配置文件。在终端输入以下命令:
sudo nano /etc/ssh/sshd_config
用 Ctrl + W 搜索「 PermitRootLogin 」,找到之后将PermitRootLogin without-password
改成PermitRootLogin yes
,然后按 Ctrl + O 保存,回车之后退出编辑器。
GitHub 提供了三种让树莓派启动后自动运行 HomeBridge 服务的方法,我选择的是 init.d 的方式。打开 这个网页 ,将文件下载到本地,然后将 template 重命名为 homebridge(或者任何你想要的名字) ,放到树莓派目录 /etc/init.d 下。注意这里一定要用 root 账户,否则会提示没有权限。由于我不会代码及编程,我用的是 WinSCP 登录 root 账户,熟悉代码的小伙伴可以用代码操作。
然后右键用 Text Editor 打开它,把开头的字符按照以下内容修改:
#!/bin/sh### BEGIN INIT INFO# Provides: homebridge# Required-Start: $network $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start daemon at boot time# Description: Enable service provided by daemon.### END INIT INFOdir="/home/pi"cmd="DEBUG=* /usr/local/bin/homebridge"user="pi"
完成后保存,然后回到终端,依次输入以下代码:
sudo chmod 755 /etc/init.d/homebridgesudo update-rc.d homebridge defaults
现在,你可以在终端输入 HomeBridge ,等待服务运行之后关掉终端,看是否可以继续使用家庭 App 开关灯泡;或者重启一下树莓派,看看 HomeBridge 服务是否正常运行。
如果以上均成功运行,那么恭喜你,一切都大功告成。