N1刷openwrt安装homeassistant、node-red、zigbee2mqtt

N1作为一款高性价比矿难机,有人刷安卓做电视盒子,有人刷CoreELEC做播放机,有人刷OpenWRT做路由器,也有人刷Armbian做Linux主机,然后里面安装homeassistant做智能家居。今天来讲讲刷OpenWRT后如何安装homeassistant、node-red、zigbee2mqtt等。

我接触这一块时间不长,起因是家里最近装修,想买几个米家设备玩智能家居,首先了解的是Aqara智能墙壁开关,这玩意真贵,两个开关价格抵得上我全屋插座了,于是经常去张大妈那看有没有好价,好价没看到,倒是从评论里发现了HomeAssistant这片新天地;后面发现小米智能多模网关对HA的支持不好,而支持好的多功能网关停产了买不到,评论里有人提到Zigbee2Mqtt自制“万能”网关,于是又开始了解Z2M;再后面又发现了Node-Red这个神器,都折腾了好几遍。中间走了很多弯路,最后确定采用N1 + OpenWRT + HASSIO + Z2M环境,各种坑都踩过了,目前稳定运行。
1
2
3

一开始并没有买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载体。

  1. N1刷OpenWRT
    刷的是恩山flippy大神做的固件,参考https://www.right.com.cn/forum/thread-981406-1-1.html 下载刷机即可

  2. 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这两个插件

  3. 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命令;

  1. 安装的时候,对于hass这样好几G的大镜像,建议查看hassio-supervisor的日志得到需要的镜像名和tag,然后自己用git pull命令提前下载好,这样安装成功率会高一些,例如git pull homeassistant/qemuarm-64-homeassistant:0.110.4。

谢谢楼主分享zsbd

期待后续分享更多玩法

docker的空间只有
512m 是怎么解决的
挂载了剩余空间 提示空间不够

呃忘记说了,我习惯把docker数据放到/opt目录,你可以改一下命令里的/opt/hassio路径,或者用下面这条命令只向mmcblk1p3分区
ln -s /mnt/mmcblk1p3 /opt/hassio

好吧,还需要翻墙才能继续下载,查看了日志,后面还在继续下载ha,我以为前面300m下载完了就完了……

不用翻墙,建议看日志确定好是哪个tag,再自己用git pull手工下载好。

在openwrt里装的HA, homekit可以用吗? 我不是装的hassio, 直接pull的home-asssistant armv8的docker, homekit 一直识别不到.

可以,集成里添加,然后会提示扫二维码

楼主可否再辛苦一下,发一下Z2M在homeassistant的设置过程? 非常感谢!

你是哪步遇到了问题?

不需要安装zigbee2mqtt 和admin 两个add on 吗?

zigbee2mqtt当然要装

N1 Openwrt 是跑的主路由吗? 我在这个模式下试过好多次, 就是Iphone家庭里搜不到bridge, 扫二维码, 输识别码都不行, 就是找不到.