树莓派进阶(一):借助树莓派与 HomeBridge,从米家到 HomeKit

96
Chris_y
2017.04.02 21:03* 字数 2069

树莓派进阶(一):借助树莓派与 HomeBridge,从米家到 HomeKit

HomeKit 相信各位都非常熟悉了,得益于它原生自带,在 iOS 上可以说是十分优秀的。无论是你可以告诉 Siri 我回家了,早上好等这样的文字激活你设置好的场景,还是可以直接从控制中心看到和控制你所有支持的设备,比起其他第三方智能家居 App 使用体验都更佳。


米家则是小米很早就推出的智能家庭系统,其最大的特点是便宜和基础。它的很多设备说实话,可以做到绝大多数目前支持 HomeKit 的设备正在卖,并高价卖的功能。如 D-link 推出的 180 度家庭摄像机,售价 1600 多。除了可以直接看完 180 度,无需旋转机器,还可以设置网格内点特别关注功能以外,其他对比小米,或者国内很多品牌真的没有什么特点可言,因此米家也成为了用户进入智能家庭领域的入门首选。


小米曾经自己推出米家 - HomeKit 的工具,只可惜限定了小米路由器硬盘版,且十分不稳定。而小米自己的米家 App 不仅无法快速控制(部分设备支持)且 App 内有商城广告等信息,界面冗杂。因此是时候我们动起手来将它手动桥街到 HomeKit 了,这里使用的是小米公司的合作企业绿米开放的 API。


工作原理:


所需要准备的硬件

  • 支持 iOS10 的苹果设备( iPhone 5 以上、 iPad mini 2 以上、 iPod 第六代以上)
  • 小米多功能网关二代( 注意:一定要二代!
  • 任意一个或多个支持 HomeKit 的设备:小米智能插座 ZigBee 版、小米人体传感器、小米门窗传感器、小米温湿度传感器、Yeelight智能灯泡、 Aqara 墙壁开关


  • Raspberry Pi 3B (树莓派 3 代 B 型)


    Raspberry Pi 3B
  • 读卡器 & 8 Gb 以上 TF 内存卡一张


实现小米智能家居接入 HomeKit

在开始之前,你一定要能够用 SSH 登陆上你的树莓派。

写入 HomeBridge

Tips:

  1. 树莓派输入命令后,无论是报错或任何情况导致无法运行,都一定会回到「 pi@raspberry:~ $ 」。载入和安装镜像都需要时间,长短由网速和镜像源决定,少则五分钟,多则半小时以上。所以,不见到「 pi@raspberry:~ $ 」就说明:还在运行!不要随便关掉,否则浪费很多时间!
  2. 复制代码的时候,不要图方便一下子复制几行,行不通的, OK ?

基本而言,只要按照以下步骤,一步一步复制粘贴到终端里并执行,就能顺利运行。

Start

Step1 切换镜像源

*默认源是外网资源,给 iPhone 越狱过的人就会知道,网速再快也还是会很慢,所以把源切换到阿里云的国内源。(如果不需要的话可以直接跳过这一步)

sudo nano /etc/apt/sources.list

deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

​Step2 安装 Nodejs

sudo apt-get update

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

​Step3 安装 avahi

sudo apt-get install libavahi-compat-libdnssd-dev

​Step4 安装 homebridge

sudo npm install -g --unsafe-perm homebridge

​Step5 安装 homebridge-aqara

sudo npm install -g homebridge-aqara

(如果有 Yeelight ,则再加一行命令: sudo npm install -g homebridge-yeelight )​

​Step6 创建 config.json (根据顺序分别是:

返回主目录→创建" .homebridge "文件夹→进入" config.json "文件)

cd ~

mkdir .homebridge

nano .homebridge/config.json

Step7 配置 config.json
将下面的代码复制或者输入到 config.json 文件中

{

    "bridge": {

        "name": "Homebridge",

        "username": "CC:22:3D:E3:CE:30",

        "port": 51826,

        "pin": "031-45-154"

    }, 

    "platforms": [{

        "platform": "AqaraPlatform",

        "sid": ["【(密码A)网关MAC地址,去掉冒号,全部小写】"],

        "password": ["【(密码B)网关局域网密码】"]

    }]

}

其中 name 是你在 iOS 家庭 App 上可以看到的桥接器的名字,建议就叫 Homebridge,username 需要是类似 MAC 的格式,是可以随意填写,所以也不需要更改了。port 随意,确保不要被占用。pin 随意,为密码,需要是 8 位数字,格式为 xxx-xx-xxx,比如 123-45-678。下面的 platform 也是无所谓修改不修改,sid 和 password 是什么,这就需要在手机上操作了。

在手机上打开米家 App,点击你的网关,右上角三个 ···,并狂按底部空白区域,直到出现局域网通信协议和网管信息为止。


点击局域网通信协议,打开,并刷新一个密码,改为全部小写,如本截图中的文字处理后的结果就是 1f3c023242254901,记录这段文字(密码 A )。


点击网关信息,找到 mac: 后的文字,如本截图中的 28:6C:07:85:B3:0E,去掉 : 并全部改为小写,也记录这段文字(密码 B ),如本截图中的文字处理后的结果就是 f0b429cc6168。


第一个密码 A 就是你的 sid,第二个密码 B 就是 password。如果你有多个网关用逗号链接,比如 cb30a01c1bcc4b3c, dc41b12d2cdd5c4d, ed52c23e3dee6d5e,password 同理。在刚刚树莓派编辑的 config.json 输入上面获得的密码,并按 Ctrl+O 保存,再按 Ctrl+x 退出。


​Step9 运行 homebridge

cd

homebridge

至此, Homebridge 就运行成功了!


​运行状态如上图,出现红字就是出毛病了,绝大多数情况是Step 8出错了,输入
nano .homebridge/config.json
仔细检查「网关 mac 」和「局域网协议密码(重点留意)」,直到成功后会跳出小方框,其实就是刚才配置 config.json 里面的 pin ,不管怎么样,将这个记录为【密码 C 】(不要关闭终端窗口)。

Step10 iPhone操作
打开「 家庭 」应用,点击「加入配件」就会自动检测到「 Homebridge 」了,点开它会要求输入密码,就是刚才获取的【密码 C 】。成功连接之后,支持 HomeKit 的设备就会自动连接到界面上

如果你有 Yeelight 设备,那么首先要先下载官方的「 Yeelight 」手机客户端,在每台设备的设置中打开「极客模式」。


接下来你就可以手动设置你的设备,更改名字,位置和类型,下面的包含在个人收藏可以让你在控制中心快速访问这些配件。


在树莓派启动后自动运行 HomeBridge 服务

然而我们的折腾完了吗?没有,远远没完。如果现在你关掉终端,你会发现,HomeBridge 停止运行了。我们不可能在电脑上挂着终端使树莓派一直运行这个服务,因此还有最后一步,把 HomeBridge 服务加入到树莓派的系统服务里。

事实上, 树莓派文档 Scheduling tasks with Cron 给出的方法是最简单并且方便以后配置别的程序。

  1. 先安装 cron
    sudo apt-get install gnome-schedule

  2. 然后配置 cron.
    crontab -e

在最下方添加 @reboot homebridge & 即可完成开机启动 homebridge 的配置。

现在,你可以重启一下树莓派,看看 HomeBridge 服务是否正常运行。

如果以上均成功运行,那么恭喜你,一切都大功告成。


感谢:
普通家具变智能 用Siri声控家里电器
从米家到 HomeKit,你只需要一个树莓派
智能宿舍搭建 1 | 借助树莓派与 HomeBridge ,将 YeeLight 彩光灯接入 Apple HomeKit
用树莓派实现 HomeKit 控制台灯
Running HomeBridge on a Raspberry Pi

树莓派