对话Siri
2017年香港光顾苹果旗舰店时,看到了一些第三方Homekit产品,于是萌生了折腾Homekit的想法。
折腾时所用的硬件,可以根据个人需要自行更改:
- 树莓派 3 代 B 型(包含 Micor SD 卡)
- YeeLight 智能灯泡
- E27螺口灯座
- 网线、MicroUSB线
- MacMini 电脑 ( Windows PC、Ubuntu、Linux 均可)
树莓派
1.安装Raspbian系统
系统镜像采用 2016-09-26-Hassbian-Bluetooth.img
下载地址 http://pan.baidu.com/s/1qYs6hn2
Mac制作命令
1 | df -h |
可参考 http://cuiqingwei.github.io/2016/02/15/2016-02-15-Raspberry-Pi/
2.登录Raspberry
安装完成之后,用网线连接好树莓派和路由器,打开电脑的终端,用 ssh 登录树莓派。
1 | ssh pi@raspberrypi.local |
ip可以在路由器的运行网页查看到,当然,Windows系统可以通过 MyLanViewer Network/IP Scanner 扫描等到目标地址。
之后终端会要求输入密码,输入 raspberry 回车即可。输入密码的途中终端不会显示任何字符,只需要正常输入即可。
3.更新软件源
登录树莓派之后,先升级软件源,在终端下输入以下代码,等待一段时间即可。
1 | sudo apt-get update |
配置选项
1 | sudo raspi-config |
change_locale – 更改语言设置。在Locales to be generated: 中,选择en_US.UTF-8和zh_CN.UTF-8。在Default locale for the system environment:中,选择en_US.UTF-8(等启动完机器,装完中文字体,再改回zh_CN.UTF-8,否则第一次启动会出现方块)。
可参考 http://blog.csdn.net/xdw1985829/article/details/38816375
打开 Yeelight 的极客模式
在 App Store 下载官方的 Yeelight 应用,先连接上灯泡.然后点右上角的三根横杠,在下方打开极客模式。
安装 Node.js
回到终端,我们继续来安装 Node.js 。从版本 4.0.0 开始,Node.js 默认支持基于 ARM 的平台,我们只需要输入相关代码即可。
依次在终端输入以下命令:
1 | wget https://nodejs.org/dist/v4.3.2/node-v4.3.2-linux-armv6l.tar.gz |
完成之后,输入 node -v 检查一下是否安装完成,如果显示 v4.3.2 ,则表示 Node.js 安装成功。
安装 Avahi 和相关依赖软件包
在终端输入以下命令即可:
1 | sudo apt-get install libavahi-compat-libdnssd-dev |
安装 HomeBridge 和相关依赖软件包
依次在终端输入以下命令:
1 | sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp |
添加 Yeelight 配置文件
输入以下命令:
1 | sudo npm install -g homebridge-yeelight |
等待命令运行结束后,输入
1 | cd /home/pi/.homebridge/ |
点击键盘的 i 键,终端左下角出现 – INSERT – ,如下图所示。
将以下代码复制到终端:
1 | { |
粘贴完成后,按Esc键,输入 :wq 然后回车。
之后,便可以运行 HomeBridge :
1 | homebridge |
这一步完成之后,HomeBridge 就安装完毕并且开始运行, YeeLight 彩光灯也成功接入 Apple HomeKit ,打开 iOS 10 自带的家庭 App, 点击添加配件即可。会有两个配件,第一个是 IoTBridge ,这是一个桥接器;还有一个才是我们要控制的灯泡。
现在,你就可以享受 「嘿 Siri ,帮我开个灯」 了。
在树莓派启动后自动运行 HomeBridge 服务
最后一步,把 HomeBridge 服务加入到树莓派的系统服务里。
方法一
首先我们要开启 root 账户,首先在终端输入:
1 | sudo passwd root |
然后会提示你设置 root 账户密码,第一次输入之后还要确认一次,一样两次输入不会有任何字符显示。输入完毕之后,启用 root 账户,输入以下命令:
1 | sudo passwd --unlock root |
然后会提示报错: passwd: password expiry information changed. ,原因是新版的系统默认禁止 ssh 登录 root 账户,我们需要修改一下配置文件。在终端输入以下命令:
1 | 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 账户 ssh 登录Raspberry。
1 | cd /etc/init.d |
点击键盘的 i 键,终端左下角出现 – INSERT – ,如下图所示。
将以下代码复制到终端:
1 | #!/bin/sh |
完成后保存,然后回到终端,依次输入以下代码:
1 | sudo chmod 755 /etc/init.d/homebridge |
现在,你可以在终端输入 HomeBridge ,等待服务运行之后关掉终端,看是否可以继续使用家庭 App 开关灯泡;或者重启一下树莓派,看看 HomeBridge 服务是否正常运行。
方法二
将homebridge设置成随系统启动
1 | cd / |
将下面的内容复制粘贴进去
1 | # Defaults / Configuration options for homebridge |
Ctrl+X,然后Y,回车,保存退出
1 | cd /etc/systemd/system |
将下面的内容复制粘贴进去
1 | [Unit] |
然后Ctrl+X
,然后Y,回车,保存退出
1 | cd / |
如果以上均成功运行,那么恭喜你,一切都大功告成。