用 Homebridge 连接 HomeKit 和小米智能设备

起因是女儿偶尔半夜起床上厕所的时候没灯,老是跑进我房间让帮忙开灯, 于是入了小米人体感应器、小米多功能网关、智能插座来感应,女儿出房间的时候自动给她开厕所灯。

其实小米智能设备,在米家 App 设置后基本上满足需求了,接上 HomeKit 是为了可以用 Siri。

Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of “smart home” devices.

安装 homebridge和插件

家里长期开着 Mac Mini 做服务,所以直接在 Mac Mini 上起 Homebridge 服务了,你也可以用 NAS、树莓派等。

$ npm i -g homebridge

# 小米智能网关插件
$ npm i -g homebridge-aqara

# 小米 yeelight 插件,如果有 yeelight 的话就装
$ npm i -g homebridge-yeelight

配置 homebridge

这里需要先获取小米多功能网关的 MAC 地址和网络通讯协议密码。

米家 App 联接小米多功能网关,然后进入多功能网关,点右上角 ...,选择“关于”,然后快速点击空白处,会出现 “网关信息”和“局域网通信协议”,在“网关信息”中找到 MAC 地址并记下,在“局域网通信协议”中打开局域网通信协议 并记下记下密码。

然后开始配置 config.json

# 创建 .homebridge 目录
$ mkdir -p .homebridge && cd .homebridge
$ vi config.json

# config.json 内容大致如下
{
  "bridge": {
    "name": "Homebridge", // 在 HomeKit 中显示的名称
    "username": "", // 随意填写
  },
  "platforms": [
    {
      "platform": "AqaraPlatform", // 多功能网关
      "sid": ["cc223de3ce30"], // 上面记录下来的 MAC 地址,假如是 CC:22:3D:E3:CE:30
      "password": ["上面记录下来的局域网通信协议密码"]
    },
    {
      "platform": "yeelight", // YeeLight
      "name": "yeelight"
    }
  ]
}

然后终端运行 homebridge 就可以了,之后会终端会出现 8 位数 pin 码, 打开 HomeKit 就可以输入 pin 码就可以联接到 homebridge 了。

最后,可玩性真的非常有限。。。

Alan

Frontend Engineer