米家局域网能用吗(如何让米家设备轻松接入homekit)

在 如何让米家设备轻松接入 HomeKit? 这篇文章中,我看到了大家对于 HomeKit 的热情,不少小伙伴都表示,文章里主要介绍了不同的方向,但在实际操作过程,想要一份更清晰的「说明书」。想来上一次写接入 HomeKit 的文章已经是 2016 年,正好就趁着这个机会来更新一下。

这篇文章将从零开始,向你介绍如何通过在树莓派安装 HomeBridge,将几个典型的米家设备接入到 HomeKit 中。准备好了吗?那我们话不说,直接开始吧。

你需要准备的东西

在开始之前,我们首先得购买对应的硬件设备。在这个方案中,你需要准备的有这些东西:

一台电脑(此处以 Mac 为例子)一个树莓派(建议 3B+ 及以上)一张 16GB 以上的 TF 卡和读卡器(用来给树莓派装系统)一根 MicroUSB 线(给树莓派连接电源,如果是树莓派 4,则需要准备一根 USB-C 线)一个安卓模拟器有了这些硬件设备之后,我们就可以开始在电脑上进行操作了

当然了,这里只是以我的环境作为例子,如果你想在其他平台上安装 HomeBridge 肯定也是没问题的,官方也给出了对应的安装指南。只不过考虑到要保持接入家居的实时可用性,就需要一台常开的设备来运行 HomeBridge,所以树莓派无论是在功耗还是性价比上,都是再合适不过的选择。

macOS 和 Linux 的小伙伴可以用系统自带的终端进行操作,而 Windows 的小朋友们可以选择刚推出不久的 Windows Terminal。

给树莓派安装系统

首先自然是给树莓派安装 Raspbian 系统。打开 这个网站,并选择「Raspbian Buster with desktop」进行下载。

至于为什么选择它的原因,主要有两点:一是「Raspbian Buster with desktop and recommended software」解压之后的系统镜像比较大,会占用更多空间,而它所推荐的软件都是我们不需要的;二是我并不确定 lite 版的系统是否缺失一些必要的支持,因此最保险的还是选择「Raspbian Buster with desktop」版本的系统。

下载好 zip 文件之后解压,可以获得一个 img 格式的镜像文件。这时候将我们的 TF 卡连接到电脑上,打开 balenaEtcher 这款软件,选择刚刚解压好的 Raspbian 系统,将它刷进 TF 卡中。

大约十分钟之后,你就拥有了一张能够让树莓派启动的「系统盘」了。不过这时候先不要着急着给树莓派开机,因为我们还需要做一些设置,好让电脑能够直接无线远程连接到树莓派,省去插拔 HDMI 和键鼠的麻烦。

将 TF 卡重新连接到电脑,可以看到一个名为 boot 的磁盘。接着,我们打开终端,依次输入下面的代码:

cd/Volumes/boottouchsshtouchwpa_supplicant.confsudo nanowpa_supplicant.conf

输入完之后,会提示你需要密码。这里输入你电脑的登陆密码即可。需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。完成之后,你会在终端进入到一个文本编辑器中。在编辑器内复制以下内容,并将对应 Wi-Fi 的 SSID 和密码改成你家的。

country=CNctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ssid="你家Wi-Fi的名称"psk="你家Wi-Fi的密码"key_mgmt=WPA-PSKpriority=1}

需要提醒的是,如果你家的 ssid 是隐藏的,那么就需要在 priority=1 的后面加入一条 scan_ssid=1 的参数。

就像上面这样

设置完成后,按下 ?control+X,然后输入 y 并按下回车键进行保存,就可以将 TF 卡插入树莓派,连接电源开机启动了。回到 Mac 上,我们继续用终端进行操作。

安装 HomeBridge

要正式开始安装 HomeBridge 了。跟着下面的步骤一步一步来,你也可以在一杯咖啡的时间里,将 HomeBridge 轻松地安装在树莓派上。

不过在此之前,你需要到路由器后台,找到树莓派的局域网 IP 地址。接着在终端内输入

sshpi@树莓派的IP地址

随后,电脑可能会向你问一个问题,不用管它问什么,直接输入 yes,然后输入连接树莓派的 ssh 默认密码:raspberry。

再次需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。如果出现了下面的界面,说明连接就成功建立了。

第二步,是对树莓派内置软件源进行更换。由于众所周知的原因,Raspbian 在更新软件包时可能会遇到速度缓慢甚至是无法更新的问题,因此我们将国外的软件源更换为国内的清华镜像源,加快连接速度。替换软件源的很简单,按照下面的操作步骤执行即可。

sudonano/etc/apt/sources.list

将原有的内容删除,或是加 # 进行注释,并替换为下面的内容:

debhttp://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/bustermainnon-freecontribdeb-srchttp://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/bustermainnon-freecontrib

完成后,按下 ?control+X,然后输入 y 回车进行保存。接着,继续修改 /etc/apt/sources.list.d/raspi.list 文件,输入:

sudonano/etc/apt/sources.list.d/raspi.list

将里面内容用下面的内容取代,然后同样用上面的方法进行保存:

debhttp://mirrors.tuna.tsinghua.edu.cn/raspberrypi/bustermainui

完成后,先进行一遍软件源更新。在终端中依次输入以下代码:

sudoapt-getupdatesudoapt-getupgrade

中途会询问你,是否进行更新,输入 y 之后回车即可。好了,等待十分钟左右,你就可以将树莓派里的软件包都更新到最新的版本了。

现在,我们可以正式开始安装 HomeBridge,话不多说,直接依次在终端中执行下面的代码:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -sudo apt-get install -y nodejs gcc g++ make pythonnode -vsudo npm i -g npmsudo npm install -g --unsafe-perm homebridge homebridge-config-ui-xsudo hb-service install --user homebridge

需要注意,第二步和第五步由于需要从国外的服务器下载对应的软件包,因此建议大家配置一下网络环境,不然可能会十分慢。其次,第三步中,node -v 的含义是为了查看安装的 node 版本。如果输入之后得到类似 v12.X.X 的结果,那就说明 node 安装成功,可以进行下一步。

跑完所有代码之后,HomeBridge 便已经成功部署在了树莓派上,接下来我们就可以安装对应的插件,将米家设备接入到 HomeKit 中。

安装插件,编写 config.json

得益于安装了 homebridge-config-ui-x 这一款插件,现在你可以打开一个浏览器,输入上面返回的任意一个 IP 地址,进入 HomeBridge 后台管理界面(默认的账户密码都是 admin)。

进入到这里之后,我们就可以在插件页面搜索对应的米家插件进行安装。这里我推荐来自「deserteagle」(GitHub 用户名为银行码 YinHangCode)的米家插件,不仅种类较多,而且基本上都能长期稳定工作。这里我们以米家空气净化器和米家空调伴侣作为例子,演示如何将它们接入 HomeKit 中。

首先,在插件页面用关键词搜索到对应的插件,点击安装。两款插件安装完成后,来到配置页面,开始编写 config.json。

说到编写 config.json 这个文件,就到了新手最头疼的地方。但其实不用害怕,都是四级水平不到的英语,理解起来并不困难。

但请一定一定要认真阅读一遍作者的 Readme 和 config 例子,不然你必然会出现错误。

这里我贴出我的一部分 config.json,对里面的内容进行细致的讲解。不过需要注意的是,json 格式的文件并不支持注释,如果需要使用这份 config.json 文件,除了需要将对应内容更改为你的设备之外,还需要

删除掉

#

和后面的中文注释

另外还需要提醒大家的是,json 文件的 {}、[]、, 等符号一定不能弄错,否则一定会报错。如果是运行时提示 config 文件出现错误,首先检查自己是不是哪里打多了一个 ,,或者是哪里遗漏了一个括号,再检查语法是否正确。

{"bridge":{#homebridge基础设置,大部分都不需要修改"name":"HomeBridge","username":"00:00:00:00:00:02","port":58888,"pin":"199-71-226"#你在家庭应用进行配对时的配对码,支持自定义},"platforms":[{"platform":"MiAirPurifierPlatform",#插件平台名称,固定不可更改"deviceCfgs":[{"type":"MiAirPurifier2S",#型号名称,固定不可更改"ip":"192.168.1.195",#空气净化器的IP地址"token":"b5d7120997c45761f3adac05887c5fc2",#空气净化器的token"airPurifierDisable":false,#是否在家庭应用中不显示空气净化器"airPurifierName":"空气净化器",#在家庭应用中显示的名称"silentModeSwitchDisable":false,#是否在家庭应用中不显示空净睡眠模式开关"silentModeSwitchName":"空净睡眠模式",#在家庭应用中显示的名称"temperatureDisable":false,#是否在家庭应用中不显示空净检测的环境温度"temperatureName":"温度",#在家庭应用中显示的名称"humidityDisable":false,#是否在家庭应用中不显示空净检测的环境湿度"humidityName":"湿度",#在家庭应用中显示的名称"buzzerSwitchDisable":true,#是否在家庭应用中不显示空净的静音开关"buzzerSwitchName":"MiAirPurifier2SBuzzerSwitch",#在家庭应用中显示的名称"ledBulbDisable":true,#是否在家庭应用中不显示空净的屏幕显示开关"ledBulbName":"空气净化器显示屏",#在家庭应用中显示的名称"airQualityDisable":false,#是否在家庭应用中不显示空净检测的空气质量"airQualityName":"空气质量"#在家庭应用中显示的名称}]},{"name":"Config",#这部分不需要修改,是homebridgeUI插件自动生成的"port":8581,"auth":"form","theme":"pink","tempUnits":"c","platform":"config"}],"accessories":[#是使用「platform」还是「accessories」,需要根据插件的说明进行选择{"accessory":"MiHeaterCooler",#插件名称,固定不可更改"name":"空调",#在家庭应用中显示的名称"address":"192.168.1.146",#空调伴侣的IP地址"token":"5ff11db226e994e41a4b7653cd713c6f",#空调伴侣的token"ratedPower":735#空调的额定功率,非必须参数}]}

其中,获得 token 的操作相对麻烦一些,但却又是米家设备接入 HomeKit 必不可少的一项参数。那么,要如何获取对应设备的 token?如果你不了解,可以跟着下面的步骤操作:

第一步,我们打开准备好的安卓虚拟机,安装一个旧版的米家 app(

必须要旧版

,建议找 2017 年左右的版本);第二步,打开米家 App,登陆你的账号,检查你需要接入的设备是否显示在 App 中,然后简单进行操作,确定设备能够响应;第三步,安装 RE 浏览器,进入到 /data/data/com.xiaomi.smarthome/databases/ 目录下,找到 miio2.db 文件,并将它复制到电脑上;第四步,打开 这个网站,将 miio2.db 文件上传,然后点击 submit,就可以获取到所有设备的 token 了。建议将这份表格保存好,以备后期万一出现 bug 时进行修复。

至此,将米家设备接入 HomeKit 的所有操作完成。你终于可以拿起 iPhone,将设备加入到家庭应用中,享受 Siri、快捷指令和家庭自动化带来的便利体验了。

总结

文章的篇幅看起来有一些长,但实际上莫过于就是三大步:「装系统 - 装 HomeBridge - 装插件并适配」,熟练之后,你可以轻松在半小时不到的时间里接入数个米家设备。

但落实到每一步来说,都需要你的细心和耐心,如果中途出错,不要急于放弃,好好阅读返回的报错内容,并学会用 Google、百度搜索一下,或者是再仔细阅读插件开发者所写的 Readme 文件,看看问题是出在了哪里,对症下药进行解决。

当然,如果实在是有一些你无法找到的 config.json 错误,私信我,带上你的 config 文件和报错内容,我也很乐意提供帮助。

也是不禁回想起过去,为了折腾一个 YeeLight 彩光灯,而耗费的一天时间。虽说现在 HomeBridge 已经默默为我服务多年,但当年成功点亮灯泡那一刻的喜悦,至今都记忆犹新。

米家局域网能用吗(如何让米家设备轻松接入homekit)