小米网关接入Homekit/苹果Siri完整教程
首先,为了支持homekit,以下设备是必须的:
1.智能家庭网关设备,以及支持Homekit的智能家庭硬件:
Aqara墙壁开关(单路,双路)、小米智能插座(Zigbee版)、小米人体传感器、小米门窗传感器、小米温湿度传感器。
2.搭载Linux系统的开发板
3.升级到iOS10的苹果手机
当然,为了方便米娜桑更简便的进行操作,我提供了下列购买清单,避免大家踩坑~
基本配置列表:
1.iOS手机一部,系统升级到iOS10以上。
2.Android手机一部(用于获取网关信息)
3.树莓派开发板一台
4.路由器一部
5.Micro SD存储卡一张以及读卡器
6.网线一根
7.USB供电线一根。推荐使用小米插线板供电。
8.USB外接鼠标键盘
9.具有HDMI转接线的外接显示器
10.小米多功能网关
11.任意或多个支持homekit的子设备:Aqara墙壁开关(单路,双路)、小米智能插座(Zigbee版)、人体传感器、门窗传感器、温湿度传感器。
注意:iPhone5C虽然可以升级到iOS10,但是并不支持苹果的“双重认证”机制。这些设备只能实现homekit的本地控制,无法通过appTV实现远程控制。
为了实现小米智能家庭设备的homekit控制,先来梳理一下基本流程:
一.获取网关基本信息
获取网关的MAC地址作为网关名称,以及获取网关的局域网通讯协议密码。
二.配置树莓派环境
配置树莓派开发环境,并将第一步获取的网关MAC地址与局域网通讯协议密码配置到树莓派环境中。
三.实现homekit控制
将树莓派作为桥接器添加到iOS的homekit中实现本地控制,如果有appleTV的话,可以进行远程控制的配置。
注意:在进行操作之前,请保证所有设备在同一个路由器下。
一、获取网关基本信息
由于目前iOS手机无法获取小米多功能网关信息,需要借助Android手机来获取小米多功能网关的信息。参考下面的步骤进行操作:
1.点击屏幕右上角
2.点击关于
3.狂按屏幕下方,开启开发者模式
4.点击局域网通讯协议
5.打开局域网通讯协议,并记住密码。本案例中是1234567890123456
6.点击网关信息
7.记录mac地址。本案例中对应的就是mac后面紧跟的64:09:80:2D:A3:CA
8.记下第五步记录的密码,和第七步记下的MAC地址,这两个将会作为网关名称和密码,在稍后的树莓派中配置进config.json文件。现在,网关信息的获取步骤就完成啦。
二、树莓派的配置(有Linux或者macos环境的可直接跳过本段第4小步安装Nodejs)
首先,先让我们来准备好SD卡和读卡器,并把他们一起插到电脑上
读卡器镇楼,注意是小卡:
下载树莓派系统,地址连接如下:
1.使用SDFormatter对存储卡进行格式化。
软件链接:https://www.sdcard.org/downloads/formatter_4/eula_windows/SDFormatterv4.zip
2.使用Win32 Disk Imager将raspbian系统写入SD卡中。
软件链接:https://github.com/balena-io/etcher/releases/download/v1.5.45/balenaEtcher-Setup-1.5.45.exe
然后就可以开机啦~~~
当然,开机之前需要把树莓派连接成下图这样子,。从十二点钟顺时针方向依次是HDMI视频线,5V供电线,micro SD卡,鼠标线,键盘线,网线
开机之后需要输入树莓派的账号密码,分别是“raspberry”和“pi”。进入桌面后可以点击左上角从左往右数第三个黑色的显示器图标。点击后打开终端进行操作。
3.切换镜像源:下一步就是给自己换个靠谱的镜像源。在国内推荐切换到阿里云的镜像源。其他镜像源可能缺少必要的程序。该步骤通过编辑sources.list文件来实现。
命令如下:
pi@raspberrypi:~$ sudo nano /etc/apt/sources.list
(不得不说红米摄像头测光确实不如奥利巴斯。。。再加上我的帕金森手)
注意:nano编辑器保存内容使用ctrl+o,退出编辑器使用ctrl+x。
用“#”字符注释掉旧的镜像源,添加下列镜像源即可
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
如下图
在修改完镜像源,保存退出之后
输入以下命令:
pi@raspberrypi:~$ sudo apt-get update
使镜像源生效
(本步骤可解决NODEJS安装下载过程中速度过慢导致的安装失败,以及homebridge的安装报错)
4.安装Nodejs:
github上的安装指导链接可能会打不开,参考nodejs官方网站使用下列命令即可:
nodejs官网:https://nodejs.org/en/download/package-manager/
当然了,再好的跳转链接也不如直接无脑复制粘贴下列指令。。。。
参考命令如下:
pi@raspberrypi:~$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
pi@raspberrypi:~$ sudo apt-get install -y nodejs
pi@raspberrypi:~$ sudo apt-get install -y build-essential
5.安装avahi:
命令如下:
pi@raspberrypi:~$ sudo apt-get install libavahi-compat-libdnssd-dev
如果安装失败,基本是因为镜像源问题,更换阿里镜像源即可。所以老实回到第三步。。。。
安装homebridge:
可以参考github上的步骤逐步操作即可。
https://github.com/nfarina/homebridge
当然了,还是老话,跳链接永远不如无脑复制粘贴。。。直接输入下列命令即可:
pi@raspberrypi:~$ sudo npm install -g --unsafe-perm homebridge
6.安装homebridge-aqara:
还是使用npm进行安装:输入下列命令即可
pi@raspberrypi:~$ sudo npm install -g homebridge-aqara
7.配置config.json:
此时需要将网关的MAC以及密码配置到config.json中。注意,MAC地址需要小写,并且config.json需要放置在~/.hombridge目录下。
a.返回主目录:
pi@respberrypi:~ $ cd ~
b.创建.homebridge文件夹
pi@respberrypi:~ $ mkdir .homebridge
c.编辑config.json文件
pi@respberrypi:~ $ nano .homebridge/config.json
Config.json内容示例如下,随便改一改绿色部分就好啦,然后加粗部分就是第一大步骤中获得的MAC地址和局域网通讯协议密码,不知道米娜桑还记得不:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
#username随意填写
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform": "AqaraPlatform",
"sid": ["6409802DA3CA"], 注意这个地方mac地址一定要大写!
#这里是你的网关MAC地址
"password": ["1234567890123456"]
#这里是你的网关局域网密码
}]
}
注意:写入配置文件后 把“#”和其后面的备注删掉
注意:写入配置文件后 把“#”和其后面的备注删掉
注意:写入配置文件后 把“#”和其后面的备注删掉
注意:写入配置文件后 把“#”和其后面的备注删掉
8.运行程序:
在终端直接输入homebridge即可运行。
pi@respberrypi:~ $ homebridge
那么,小米智能家庭这里的环境基本就搞定了,通过这一步GET到了加入homekit所需要的PIN码。
如果在启动homebridge过程中出现红字报错,可能是第7步配置文件格式不对,检查语法。
三、实现homekit控制
为了体现米娜桑的聪明才智,该部分强烈建议参考苹果官网,该跳转还是要跳转一下的233333
https://support.apple.com/zh-cn/HT204893
附加的一些小提示:
1.如果需要对桥接的网关进行增删改,除了需要编辑config.json文件以外,还应该删除config.json文件旁边的persist文件。编辑config.json时,需要修改bridge里面的username以及pin。随便改一个没使用过的就好了~
删除persist文件使用命令:
pi@respberrypi:~ $ rm -rf .homebridge/persist
2.homebridge和homebridge-aqara的安装目录在nodejs中的node_modules目录下,如果使用本文档中的安装方式,该目录为/usr/lib/node_modules/homebridge与/usr/lib/node_modules/homebridge-aqara
3.如果想在终端打印程序运行信息,可以将/usr/lib/node_modules/homebridge-aqara下的js文件中的注释取消,同时将”log.debug”函数修改为标准的”console.log”.
4.请保证树莓派开发板与iOS设备处于同一个网络。
5.教程中的鼠标键盘什么的可以不用,前提是看了老高的教程会用putty连接
6.一定要按照步骤走,安装每一步的时候一定要看清,家里网不给力的选择在联通或者电信环境下