HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit
在 如何让米家设备轻松接入 HomeKit? 这篇文章中,我看到了大家对于 HomeKit 的热情,不少小伙伴都表示,文章里主要介绍了不同的方向,但在实际操作过程,想要一份更清晰的「说明书」。想来上一次写接入 HomeKit 的文章已经是 2016 年,正好就趁着这个机会来更新一下。
这篇文章将从零开始,向你介绍如何通过在树莓派安装 HomeBridge,将几个典型的米家设备接入到 HomeKit 中。准备好了吗?那我们话不说,直接开始吧。
在开始之前,我们首先得购买对应的硬件设备。在这个方案中,你需要准备的有这些东西:
当然了,这里只是以我的环境作为例子,如果你想在其他平台上安装 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/boot
touch ssh
touch wpa_supplicant.conf
sudo nano wpa_supplicant.conf
输入完之后,会提示你需要密码。这里输入你电脑的登陆密码即可。需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。完成之后,你会在终端进入到一个文本编辑器中。在编辑器内复制以下内容,并将对应 Wi-Fi 的 SSID 和密码改成你家的。
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你家Wi-Fi的名称"
psk="你家Wi-Fi的密码"
key_mgmt=WPA-PSK
priority=1
}
需要提醒的是,如果你家的 ssid 是隐藏的,那么就需要在 priority=1
的后面加入一条 scan_ssid=1
的参数。
设置完成后,按下 ⌃control+X
,然后输入 y
并按下回车键进行保存,就可以将 TF 卡插入树莓派,连接电源开机启动了。回到 Mac 上,我们继续用终端进行操作。
要正式开始安装 HomeBridge 了。跟着下面的步骤一步一步来,你也可以在一杯咖啡的时间里,将 HomeBridge 轻松地安装在树莓派上。
不过在此之前,你需要到路由器后台,找到树莓派的局域网 IP 地址。接着在终端内输入
ssh pi@树莓派的IP地址
随后,电脑可能会向你问一个问题,不用管它问什么,直接输入 yes
,然后输入连接树莓派的 ssh 默认密码:raspberry。
再次需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。如果出现了下面的界面,说明连接就成功建立了。
第二步,是对树莓派内置软件源进行更换。由于众所周知的原因,Raspbian 在更新软件包时可能会遇到速度缓慢甚至是无法更新的问题,因此我们将国外的软件源更换为国内的清华镜像源,加快连接速度。替换软件源的很简单,按照下面的操作步骤执行即可。
sudo nano /etc/apt/sources.list
将原有的内容删除,或是加 # 进行注释,并替换为下面的内容:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
完成后,按下 ⌃control+X
,然后输入 y
回车进行保存。接着,继续修改 /etc/apt/sources.list.d/raspi.list
文件,输入:
sudo nano /etc/apt/sources.list.d/raspi.list
将里面内容用下面的内容取代,然后同样用上面的方法进行保存:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
完成后,先进行一遍软件源更新。在终端中依次输入以下代码:
sudo apt-get update
sudo apt-get upgrade
中途会询问你,是否进行更新,输入 y
之后回车即可。好了,等待十分钟左右,你就可以将树莓派里的软件包都更新到最新的版本了。
现在,我们可以正式开始安装 HomeBridge,话不多说,直接依次在终端中执行下面的代码:
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt-get install -y nodejs gcc g++ make python
node -v
sudo npm i -g npm
sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
sudo hb-service install --user homebridge
需要注意,第二步和第五步由于需要从国外的服务器下载对应的软件包,因此建议大家配置一下网络环境,不然可能会十分慢。其次,第三步中,node -v
的含义是为了查看安装的 node 版本。如果输入之后得到类似 v12.X.X
的结果,那就说明 node 安装成功,可以进行下一步。
跑完所有代码之后,HomeBridge 便已经成功部署在了树莓派上,接下来我们就可以安装对应的插件,将米家设备接入到 HomeKit 中。
得益于安装了 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": "MiAirPurifier2S Buzzer Switch", #在家庭应用中显示的名称
"ledBulbDisable": true, #是否在家庭应用中不显示空净的屏幕显示开关
"ledBulbName": "空气净化器显示屏", #在家庭应用中显示的名称
"airQualityDisable": false, #是否在家庭应用中不显示空净检测的空气质量
"airQualityName": "空气质量" #在家庭应用中显示的名称
}
]
},{
"name": "Config", #这部分不需要修改,是homebridge UI插件自动生成的
"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?如果你不了解,可以跟着下面的步骤操作:
/data/data/com.xiaomi.smarthome/databases/
目录下,找到 miio2.db
文件,并将它复制到电脑上;miio2.db
文件上传,然后点击 submit,就可以获取到所有设备的 token 了。建议将这份表格保存好,以备后期万一出现 bug 时进行修复。至此,将米家设备接入 HomeKit 的所有操作完成。你终于可以拿起 iPhone,将设备加入到家庭应用中,享受 Siri、快捷指令和家庭自动化带来的便利体验了。
文章的篇幅看起来有一些长,但实际上莫过于就是三大步:「装系统 - 装 HomeBridge - 装插件并适配」,熟练之后,你可以轻松在半小时不到的时间里接入数个米家设备。
但落实到每一步来说,都需要你的细心和耐心,如果中途出错,不要急于放弃,好好阅读返回的报错内容,并学会用 Google、百度搜索一下,或者是再仔细阅读插件开发者所写的 Readme 文件,看看问题是出在了哪里,对症下药进行解决。
当然,如果实在是有一些你无法找到的 config.json 错误,私信我,带上你的 config 文件和报错内容,我也很乐意提供帮助。
也是不禁回想起过去,为了折腾一个 YeeLight 彩光灯,而耗费的一天时间。虽说现在 HomeBridge 已经默默为我服务多年,但当年成功点亮灯泡那一刻的喜悦,至今都记忆犹新。
> 下载少数派 客户端、关注 少数派公众号,让你的生活更精彩 🎉
> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺 🛒
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。