智能家庭 +关注 已有4519人关注 +发表新主题
回复

【再更新】小米网关接入Homekit完整教程,声控家中设备!

精华 发表在 经验&玩法 2016-10-11 17:03:44  来自PC 复制链接 手机看帖扫一扫!手机看帖更爽 455 257869

更新日期 2016年12月23日

此前本文大体没有问题

但是很多小伙伴出现配置失败,执行报错的问题

我详细梳理了一下

更改添加了几个地方

添加的地方用蓝色粗体标注

-------------------------我是分割线---------------------------



Hi 米娜桑,通过我艰苦不懈的追踪发现,绿米智能家庭产品现在也是可以部分支持Homekit啦~ 


起因是我发现了这个:

https://github.com/snOOrz/homebridge-aqara


然后我又跳转到了这

https://github.com/nfarina/homebridge


那么,我就有了这个


也有了这个:


炫耀完毕,用广角镜特有畸变效果证明并非PS。


但是,毕竟米娜桑肯定不愿意按照链接跳过去慢慢看,那么,本着跳链接不如复制粘贴的原则,又有了下面的流水账。记住,不要思考,按照步骤复制粘贴就好啦~~~欢迎撒花~~~~


首先,为了支持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卡和读卡器,并把他们一起插到电脑上(或者平板bulabula,开心就好,另外各位土豪大人不要嘲笑iphone5C,虽然确实因为它导致我不能实现远程控制233333)


读卡器镇楼,注意是小卡:

下载树莓派系统,地址连接如下:

http://vx2-downloads.raspberrypi.org/raspbian/images/raspbian-2016-05-31/2016-05-27-raspbian-jessie.zip


1.使用SDFormatter对存储卡进行格式化。

软件链接:https://www.sdcard.org/downloads/formatter_4/eula_windows/SDFormatterv4.zip


2.使用Win32 Disk Imager将raspbian系统写入SD卡中。

软件链接:http://cncspace.onlinedown.net/down/Win32DiskImager-0.9.5-binary.zip


然后就可以开机啦~~~

当然,开机之前需要把树莓派连接成下图这样子,。从十二点钟顺时针方向依次是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地址

"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.树莓派开发板背面引脚是裸露的,请避免和金属鼠标垫、金属手机壳等物品直接接触。

6.配置完成之后强烈建议把HDMI拔了,不然好烫。。。


扫描二维码,手机查看本帖
发表
已有3人评分 经验 理由
豬仔饼 +8 支持小米
赤色冰雪 +8 很给力!
Bluefox@TW +8 很给力!

总评分: 经验 +24

最新评论 | 正序排列
17 条评论被过滤    只看楼主|楼层直达:
  • 土俊   发烧级手机控 发表于 08-06 09:58:11 ·来自PC 只看该作者 482#

    很实用的教程,谢谢分享

    回复 举报

  • Mi_75415173   发烧级手机控 发表于 08-05 12:05:53 ·来自PC 只看该作者 481#

    请教一下,米家空调伴侣可以支持homekit吗?


    回复 举报

  • henrylucky   高级手机控 发表于 08-04 01:01:16 ·来自PC 只看该作者 480#
    teny-boy 发表于 2017-03-11 02:29:27

    求助~~ 失败了!

    解决了吗?我也这个问题

    回复 举报

  • Jason王宇   发烧级手机控 发表于 07-28 16:10:35 ·来自PC 只看该作者 479#
    问一下,如果有多个插件那Config.json要怎么写呢?

    回复 举报

  • Mi_1594195887   发烧级手机控 发表于 07-16 23:36:57 ·来自小米手机4 联通版 只看该作者 478#

    如.果打不開config.json 可以sudo 試试, sudo nano config.json

    回复 举报

  • doggyhzj   神仙级手机控 发表于 07-15 17:35:06 ·来自PC 只看该作者 477#
    牛人大神,我服了!!

    回复 举报

  • Mi_216099840   发烧级手机控 发表于 07-15 13:46:51 ·来自PC 只看该作者 476#
    楼主,我的小米插座,homekit上面无法控制开和关,但是小米app里面可以控制,这个要怎么处理啊?

    回复 举报

  • Mi_36824596   发烧级手机控 发表于 07-05 19:26:35 ·来自PC 只看该作者 475#
    我也是,把所有的请求语句打出来发现是 请求里面的key错误。

    回复 举报

  • Mi_302957200   潜力级手机控 发表于 07-05 19:03:38 ·来自PC 只看该作者 474#

    我卡在这里,我在nano .homebridge/config.json打了不行,在前面加sudo nano .homebridge/config.json也不行~~求指教

    回复 举报

  • b4bb   发烧级手机控 发表于 06-29 14:48:02 ·来自PC 只看该作者 473#
    我每一步都很顺利,直接到了IOS家庭APP里面。但也是只能看到状态而不能控制。

    回复 举报

  • b4bb   发烧级手机控 发表于 06-29 14:45:52 ·来自PC 只看该作者 472#
    Mi_1182738287 发表于 2017-06-17 16:42:50

    我也是同样的问题,请问解决了吗?

    我每一步都很顺利,直接到了IOS家庭APP里面。但也是只能看到状态而不能控制。

    回复 举报

  • Mi_1182738287   高级手机控 发表于 06-17 16:42:50 ·来自PC 只看该作者 471#
    Mi_1182738287 发表于 2017-06-14 20:53:25

    lz你好,我按照你的方法连接成功了,门窗、动态感应都正常,但是小米的aqara开关显示正常,但是手机无法控制,点击打开关闭都没有反应

    我也是同样的问题,请问解决了吗?

    回复 举报

  • Mi_1182738287   高级手机控 发表于 06-14 20:53:25 ·来自PC 只看该作者 470#

    lz你好,我按照你的方法连接成功了,门窗、动态感应都正常,但是小米的aqara开关显示正常,但是手机无法控制,点击打开关闭都没有反应

    回复 举报

  • 無敵三腳貓   神仙级手机控 发表于 06-14 18:03:10 ·来自PC 只看该作者 469#
    Frank1chen 发表于 2017-04-12 10:01:51

    请问有Mac电脑可以不用树莓派可以实现吗

    < type="application/thunder_download_plugin" height="0" width="0"/>可以

    回复 举报

  • 無敵三腳貓   神仙级手机控 发表于 06-14 18:03:05 ·来自PC 只看该作者 468#
    Frank1chen 发表于 2017-04-12 10:01:51

    请问有Mac电脑可以不用树莓派可以实现吗

    < type="application/thunder_download_plugin" height="0" width="0"/>可以

    回复 举报

  • Mi_1694983890   潜力级手机控 发表于 06-09 15:11:11 ·来自PC 只看该作者 467#
    拜讀版大 小米网关接入Homekit 想請問版大 如果使用樹梅 可以用小米萬用遙控器 進而用SIRI控制電視機IR跟電動窗簾IR冷氣機IR嗎

    回复 举报

  • Tianium   骨灰级手机控 发表于 06-08 02:16:06 ·来自PC 只看该作者 466#

    刚配了下,还是发现不少教程里没有提到的细节,希望帮到大家

    1: iOS 版米家也可以开启开发模式,只是那个教程那个位置没有字,但是一直按仍然可以开启。

    2: username 不建议大家改,这个格式必须是类似 mac 地址的格式

    3: pin 码可以随便改,但请按照格式

    4: sid 虽然是 mac 地址,但请去掉“:"后,全部转换为小写输入。否则会报找不到密码的

    5: 请确保 config.json 位于 ~/.homebridge/config.json, 否则程序会找不到(教程写的没问题,只是我自己没仔细看,特别强调下)

    回复 举报

  • Mi_1269507737   潜力级手机控 发表于 06-03 00:35:44 ·来自PC 只看该作者 465#
    Mi_134076401 发表于 2017-04-04 14:41:19

    homebridge和homebridge-aqara无法安装啊,按照楼主做下来node版本是0.10.29,安装上面两个要求node版本至少4.3.2啊,怎么解

    回到终端,我们继续来安装 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-armv6l

    sudo cp -R * /usr/local/

    完成之后,输入 node -v  检查一下是否安装完成,如果显示  ,则表示 Node.js 安装成功。


    转自少数派文章https://sspai.com/post/36617

    回复 举报

  • tumin   发烧级手机控 发表于 06-01 18:29:32 ·来自PC 只看该作者 464#
    蓝天啊白菜 发表于 2016-11-29 21:57:50

    你的能用手机控制zigbee插座或单火线开关吗?我的可以显示开关状态,也可以显示湿度温度。但是用手机点图标无效,没有反应!

    我也不行,请问你现在搞好了吗?

    回复 举报

  • tumin   发烧级手机控 发表于 06-01 17:19:20 ·来自PC 只看该作者 463#
    Mi_1182134105 发表于 2017-05-02 08:55:05

    lz你好,我按照你的方法连接成功了,门窗、动态感应都正常,但是小米的aqara开关显示正常,但是手机无法控制,点击打开关闭都没有反应

    我的智能插座也不能用手机控制,状态都显示,但是点完关闭,根本就不关。但是用米家app控制开关又可以,而且home里面的状态也会跟着变化。

    回复 举报

回复