N1作为一款高性价比矿难机,有人刷安卓做电视盒子,有人刷CoreELEC做播放机,有人刷OpenWRT做路由器,也有人刷Armbian做Linux主机,然后里面安装homeassistant做智能家居。今天来讲讲刷OpenWRT后如何安装homeassistant、node-red、zigbee2mqtt等。
我接触这一块时间不长,起因是家里最近装修,想买几个米家设备玩智能家居,首先了解的是Aqara智能墙壁开关,这玩意真贵,两个开关价格抵得上我全屋插座了,于是经常去张大妈那看有没有好价,好价没看到,倒是从评论里发现了HomeAssistant这片新天地;后面发现小米智能多模网关对HA的支持不好,而支持好的多功能网关停产了买不到,评论里有人提到Zigbee2Mqtt自制“万能”网关,于是又开始了解Z2M;再后面又发现了Node-Red这个神器,都折腾了好几遍。中间走了很多弯路,最后确定采用N1 + OpenWRT + HASSIO + Z2M环境,各种坑都踩过了,目前稳定运行。
一开始并没有买N1,而是先在电脑上试验,按照网上的教程,docker run homeassistant/qemux86-64-homeassistant,很顺利,然而想集成Zigbee2Mqtt的时候发现,没有Supervisor不方便。于是又去折腾hassio-supervisor,大概方法就是去hassio的github里下载一个安装脚本,通过这个脚本安装也挺顺利的,安装以后,通过Supervisor安装zigbee2mqtt、node-red都很方便。经过在电脑上的折腾,初步搭建了HA环境,证明了我的动手能力是能驾驭这个方案的,于是买了个N1继续折腾。
起初是按照网上教程,在N1刷Armbian,然后Armbian跑HA环境,怎么刷Armbian就不提了,网上教程一找一大堆,中间我自作主张想给U盘多分一个区存数据踩了坑,总之最后是顺利刷上了。安装hassio-supervisor的时候,用官方那个脚本失败,因为没识别出N1应该用哪个系统版本,后面经过一番搜索,在某个帖子里找到了一个脚本,集改软件源、安装hassio-supervisor等功能于一体,也算是折腾出来了。
折腾完Armbian,觉得7*24小时跑这样一个HA环境有点浪费,就想把HA与电视盒子/CoreELEC/OpenWRT功能结合,前两个用不着7*24小时运行,运行的时候比较耗资源,不是很合适,而OpenWRT做路由器也是7*24小时运行,则比较适合做HA载体。
-
N1刷OpenWRT
刷的是恩山flippy大神做的固件,参考https://www.right.com.cn/forum/thread-981406-1-1.html 下载刷机即可 -
N1 OpenWRT安装HA
OpenWRT作为路由器系统,不出所料的无法使用前面的脚本来安装HA环境,经过分析那些安装脚本,安装其实很简单,docker运行正确的镜像即可:docker run -d --name hassio_supervisor --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/dbus:/var/run/dbus -v /opt/hassio:/data -e SUPERVISOR_SHARE="/opt/hassio" -e SUPERVISOR_NAME=hassio_supervisor -e HOMEASSISTANT_REPOSITORY="homeassistant/qemuarm-64-homeassistant" --restart unless-stopped homeassistant/aarch64-hassio-supervisor
仅需这一条命令即可!hassio_supervisor会自动搞定homeassistant的安装,安装好以后,进入HA WEB页面 -> Supervisor -> Add-on store,安装Mosquitto broker和Node-RED这两个插件
-
N1 OpenWRT安装zigbee2mqtt
首先在Add-on store安装好Mosquitto broker这个插件并启动,然后点Add-on store页面右上角… -> Repositories -> 添加 https://github.com/lovelylain/hassio-zigbee2mqtt 这个仓库,等待刷新后安装zigbee2mqtt插件;安装后按需修改zigbee2mqtt Configuration中mqtt的用户名密码(可以直接填HA的用户名和密码)和serial port参数,改好后启动。
总结:N1 OpenWRT安装HA的关键就是docker运行正确的镜像,在x86里面hassio和hass正确的镜像名称分别是homeassistant/amd64-hassio-supervisor和homeassistant/qemux86-64-homeassistant,而在N1里面这两个镜像名称分别是homeassistant/aarch64-hassio-supervisor和homeassistant/qemuarm-64-homeassistant,弄对了镜像一条命令即可搞定。
tips: 1. 建议在openwrt页面上打开docker的WAN口访问功能再安装,否则docker内无法访问外网,需要自己添加iptables命令;
- 安装的时候,对于hass这样好几G的大镜像,建议查看hassio-supervisor的日志得到需要的镜像名和tag,然后自己用git pull命令提前下载好,这样安装成功率会高一些,例如git pull homeassistant/qemuarm-64-homeassistant:0.110.4。