去年用着米6为了补充室内灯光,就买了米家台灯,可以用小爱同学控制就很方便。然而后来换了苹果全家桶,Siri只认Homekit套件就有点难受,每次只好使用app去打开关闭,虽然在负一屏上可以放米家的组件,但是那东西经常的没反应,最后还是得去app里关台灯。

最近偶然发现有如Homebridge和Home Assistant的神器,可以让其他的智能家居套上一层皮摇身一变成为HomeKit组件。

安装Homebridge

当作中枢的Homebridge当然需要长时间运行,所以需要安装到家里一个长期运行的服务器上,当然只要是台电脑都行,比如树莓派什么的。

由于我之前正好买了一台惠普800g1 dm当作家庭服务器,就正好把这些东西都装到那个东西上面去。

安装主程序

sudo apt install npm nodejs -y
sudo npm install -g --unsafe-perm homebridge

不知道为什么越来越多的人开始用nodejs来写一些小玩意

创建配置

vim ~/.homebridge/config.json

写入基本配置

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "123-45-678"
    },
  "description": "Test Bridge",
  "accessories": [],
  "platforms": [
  ]
}

注意这个pin码,必须要按照带-的格式才行

添加进入家庭

运行homebridge

homebridge

homebridge 打开IOS中的家庭app,选择扫描或添加配件,扫描自己的二维码,homebridge就会被添加进app的中枢中,可以点击左上角的按钮进入查看。 Homebridge中枢

接下来就是将台灯加入homebridge,由于米家产品线的混乱,我刚开始也搞不清楚这台灯到底是yeelight的还是米家自己的,所以整了好几个插件测试发现都没搞定,在米家里找不到进入开发者模式,在yeelight官网竟然搜到一个官方回复说明不会加入局域网控制功能,我就懵逼了。

但是在重置台灯的时候我发现台灯的wifi名是yeelight,我这才终于明白,遂不管他说什么先下一个yeelight的app试试看,终于在设备的右下角箭头里可以开启局域网控制。

之前试了那么久用miio直接控制也都没成功,就是没开启这个局域网控制功能。

安装米家控制插件

看你自己需要安装插件,miio是可以控制米家所有设备的插件,yeelight-wifi只能控制wifi接入的yeelight设备。

由于我只有一个yeelight台灯,所以我就只装了yeelight-wifi插件

sudo npm install -g homebridge-yeelight-wifi

修改Homebridge配置

在platforms中载入插件

{
  "platforms": [
    {
      "platform": "yeelight",
      "name": "Yeelight"
    }
  ]
}

再次启动homebridge,你就可以发现你的局域网设备 homebridge with yeelight

控制设备

现在你就可以在家庭app中看到你的台灯了,可以给他改个名字,这样喊Siri的时候就不用读一串字符

台灯

siri

Homebridge也有很多其他设备的控制插件,甚至你也可以根据自己需求去写一个插件控制一些奇奇怪怪的东西。我这还有个控客,但是好像没有开放控制协议,Homebridge里没有对应的插件。Home Assistant好像有它的插件,等下次有空在试试HA。