使用使用群晖DS216j等非docker方式安装homebridge并接入小米wifi插座
一、前言
众所周知,想使用iPhone的homekit功能,官方的方式就是购买推荐的智能家居产品,但那个价格。。。能购买至少3个以上同样功能的小米智能家居产品。so最好的方式是自己通过homebridge的方式,将小米的协议和homekit的协议进行转换,以将小米产品接入到homekit中。homebridge通常安装在windows、linux、macos中,但最好是装在低功耗的、24H常开的服务器中,那么最好的就是群晖NAS、树莓派等设备。网络上一搜,主要的教程都是树莓派和群晖docker方式,而我只有群晖低端的DS216j,能不能也痛快装上homebridge并使用呢?经过大半天的折腾,答案是可以的。而且可能我这是网上首发此教程~~~(至少我目前还没搜到~)
二、安装homebridge
在网上有搜索到一个教程使无docker功能的群晖nas也能安装homebridge,需要在套件中心加入社群源,再装上Debian-chroot套件。但现在(2018年8月),这个插件被下架了,在作者的github上发现是由于在DSM6上bug太多,被作者撤掉了。这可咋办呢~想了一下,用Debian-chroot功能,无非是想用到gcc、make等功能,我想到了之前安装aria2的时候,用到了optware的方式利用ipkg安装二进制包。试了一下,很可惜,optware的版本太低,gcc只有4.2.3,不支持C++11,会导致homebridge安装失败,又尝试了一下安装新的bootstrap,结果成功了。不卖关子了,如下:
首先在DS216j的ssh中,进入/volume1/@tmp中,执行:
# sudo -i
# cd /volume1/@tmp
# /usr/bin/wget http://ipkg.nslu2-linux.org/optware-ng/bootstrap/buildroot-armeabihf-bootstrap.sh .
# chmod +x /volume1/@tmp/buildroot-armeabihf-bootstrap.sh
# /volume1/@tmp/buildroot-armeabihf-bootstrap.sh
很简单,bootstrap环境搭建完成,接下来:
先把/opt/bin加入到环境变量中
# export PATH=$PATH":/opt/bin"
# /opt/bin/ipkg update
# /opt/bin/ipkg install gcc
# /opt/bin/ipkg install automake
# /opt/bin/ipkg install dbus
# /opt/bin/ipkg install avahi
然后,在群晖的webgui中,安装Node.js v8,然后:
# cd /volume1/@appstore/Node.js_v8/usr/local/bin
# npm install -g npm
# npm install -g --unsafe-perm homebridge
此时,homebridge已安装完成,路径就在/volume1/@appstore/Node.js_v8/usr/local/bin下,是不是很简单呢。然后就是把小米wifi插座(基础款)接入到homebridge中啦,这块我不是很懂,参照网上的教程,安装一下homebridge的插件homebridge-miio:
# npm install -g homebridge-miio
再在/root/.homebridge中创建config.json文件
{
"bridge": {
"name": "cairui-xiaomi",
"username": "CC:22:3D:E3:CE:31",
"port": 51826,
"pin": "031-45-154"
}
}
然后执行
# /volume1/@appstore/Node.js_v8/usr/local/bin/homebridge
会出现一个二维码,此时在iPhone的家庭里,扫描此二维码,会自动出现一个插座的设备,接下来,就可以通过家庭app或者控制中心或者siri来控制小米插座啦!是不是很爽!