通过离线方式给运行openwrt的n1盒子内的docker容器内的homeassiatantcore安装hacs

标题看起来套娃,也确实是套娃。

首先硬件是n1盒子,然后该n1盒子运行openwrt固件,然后openwrt内安装了docker,然后通过docker容器安装homeassistant core,然后再通过离线方式给homeassistant core安装hacs。

第一步,下载并将openwrt固件刷入U盘:

先下载flippy大佬的openwrt固件

论坛链接:

https://www.right.com.cn/forum/thread-4076037-1-1.html

我当时的百度网盘链接是:

https://pan.baidu.com/s/1kbvtyxpcmniLKN_ziH-kqQ

提取码:jla9

从论坛里获取最新的百度网盘链接即可

下载S905D_Phicomm_N1文件夹内的最新版本的固件,建议下载+o版本

我当时最新的固件是:

openwrt_s905d_n1_R22.6.16_k5.15.47-flippy-73+o.7z

从7z文件解压成img文件

通过balenaEtcher将固件刷入至U盘

软件下载链接:

https://www.balena.io/etcher/

把U盘插在离hdmi接口比较近的USB接口

然后插入电源线和一条从你的主路由出来的网线

自动运行启动之后,使用笔记本电脑连接热点Phicomm_n1,密码:password

然后把笔记本电脑的DHCP关掉,改成静态IP,IP地址:192.168.1.X(X随便写,例如192.168.1.2),子网掩码:255.255.255.0,网关:192.168.1.1,DNS:192.168.1.1

浏览器访问192.168.1.1,账号root,密码password

网络——接口——LAN——一般配置——基本设置

IP地址:你家主路由里未使用的IP地址即可(例如192.168.0.154)

子网掩码:255.255.255.0

网关:你家主路由的IP地址(例如192.168.0.1)

DNS:你家主路由的IP地址(例如192.168.0.1)

网络——接口——LAN——一般配置——物理设置

桥接接口取消勾选

接口选择以太网适配器: "eth0" (lan)

取消其他接口的勾选

网络——接口——LAN——DHCP 服务器——基本设置

忽略此接口添加勾选

网络——接口——LAN——DHCP 服务器——IPv6设置

路由通告服务:选择已禁用

DHCPv6 服务:选择已禁用

NDP 代理:选择已禁用

点击保存并应用

然后你的笔记本电脑会掉线,然后你把笔记本电脑切换回你的主路由,然后你通过浏览器访问你给你的openwrt设置的IP地址(例如192.168.0.154),账号root,密码password

网络——无线——无线概况

点击移除,直接把Wi-Fi功能删掉,也用不上这个功能

第二步,将OPENWRT写入EMMC:

打开windows的命令提示符(管理员)或者Windosw终端(管理员)

输入ssh root@你的openwrt的IP地址(例如ssh root@192.168.0.154),点击回车

第一次使用需要输入yes,第二次以后不需要输入yes,重刷固件,未更换IP地址的话,需要删除用户下的.ssh文件夹内的known_hosts文件中的对应IP地址的相应行

密码password

进入openwrt的命令界面

输入如下命令并回车

/root/install-to-emmc.sh

键入11后回车

键入1后回车

待运行完毕后,拔下电源,拔出U盘

把U盘插入到电脑上,右键计算机或者此电脑,打开管理——存储——磁盘管理——删除U盘的全部分区,新建简单卷,格式化

重新将U盘插到N1上,给N1插电

第三步,启动OpenClash:

服务——OpenClash

务必自行设置OpenClash

第四步,在Docker内安装homeassistant:

确认重新插上的U盘所在的挂载点

系统——挂载点——已挂载的文件系统

根据各个磁盘分区的容量和名字中的关键字(比如有SD之类的),找到U盘的挂载点(例如/mnt/sda1)

Docker——容器

点击添加

容器名称:homeassistant

Docker镜像:homeassistant/aarch64-homeassistant:latest

总是先拉取镜像添加勾选

重启策略选择Always

网络选择host | host

选择host后暴露端口选项不会出现

绑定挂载输入U盘的挂载点/homeassistant/config:/config(例如/mnt/sda1/homeassistant/config:/config)

把config文件夹挂载在U盘里

高级选项添加勾选

线程数量:0.000

内存:1g

点击提交

等待安装完成

回到Docker——容器

勾选homeassistant容器

点击启动

等几分钟,然后在浏览器里访问你的openwrt的IP地址加上:8123(例如192.168.0.154:8123)

设置用户名和密码

时区选择Asia/Shanghai

根据实际情况选择其他选项

点击下一步

四个选项都不选直接下一步

点击左下角你的用户名

将高级模式启动

点击左下角配置——系统——重新启动

重启下homeassistant

等待一会

然后用浏览器打开你openwrt的IP地址(例如192.168.0.154)

进入Docker——容器

勾选homeassistant容器

点击关闭

第五步,安装HACS和Xiaomi Miot Auto:

前面的内容都是常规操作,进行homeassistant core的安装

下面才是本文章的重头戏,介绍如何安装HACS

登录https://github.com/hacs/integration/releases下载最新版本的hacs.zip,解压成文件夹hacs

安装winscp软件,链接:

https://winscp.net/eng/docs/lang:chs

打开winscp软件,主机名填写你的openwrt的IP地址(例如192.168.0.154),用户名root,密码password

第一次使用的话,会有弹框出现,点击弹框中的确定按钮

然后进到openwrt的文件夹之中,我们看到默认的文件夹是root

从root文件夹返回至根目录,新建文件夹hacs111

将刚才下载的hacs.zip文件解压出的hacs文件夹复制到hacs111文件夹之中(不是hacs文件夹内的文件,而是整个hacs文件夹,也就是说结果是根目录下的hacs111文件夹,里面套着hacs文件夹,然后再里面是hacs文件夹内的各种乱七八糟的文件)

打开windows的命令提示符(管理员)或者Windosw终端(管理员)

输入ssh root@你的openwrt的IP地址(例如ssh root@192.168.0.154),点击回车

第一次使用需要输入yes,第二次以后不需要输入yes,重刷固件,未更换IP地址的话,需要删除用户下的.ssh文件夹内的known_hosts文件中的对应IP地址的相应行

密码password

进入OPENWRT的命令界面

输入如下命令并回车

docker cp /hacs111 homeassistant:/config/custom_components/

然后用浏览器打开你openwrt的IP地址(例如192.168.0.154)

点击Docker——容器

勾选homeassistant容器

点击启动

等几分钟,用浏览器打开你的openwrt的IP地址加:8123(例如192.168.0.154:8123)

进入homeassistant之后,点击配置——设备与服务——添加集成——搜索HACS,就可以看到HACS,并添加集成了

然后把四个选项全部添加勾选,点击提交,然后点击弹出的github链接,复制代码,在弹出的github链接中粘贴相应代码,hacs就安装完了

然后左侧栏中就可以看到HACS了,点击HACS——集成——浏览并下载存储库

搜索xiaomi,点击搜索结果中的Xiaomi Miot Auto选项,点击通过HACS下载此存储库

然后在homeassistant中点击配置——系统——重新启动

重启后,点击配置——设备与服务——添加集成——就可以搜索到Xiaomi Miot Auto并添加集成了

然后我们就可以点击Docker——容器——homeassistant——文件,选择/config/custom_components/这个目录,看到hacs、xiaomi_miot两个插件已经成功安装完毕,躺在该目录内

其实第五步的操作原理就是通过winscp软件将hacs文件夹从你的PC复制到openwrt的根目录下的hacs111文件夹中,再通过docker cp命令把hacs文件夹从hacs111文件夹发送至docker内的homeassistant容器下的/config/custom_components/这个目录下。

于是就可以在homeassisitant内搜到相应的集成了,也就说只要你想,你可以不通过hacs下载Xiaomi Miot Auto,直接从你的电脑上通过互联网下载别人下载好的xiaomi_miot文件夹,然后通过winscp复制,docker cp发送,两步直接把该插件传到homeassistant内。

强调一下,docker cp命令只有在容器关闭状态下才能成功,所以文章前面关容器再打开的步骤,并不是多余的。

参考资料:

https://zhuanlan.zhihu.com/p/519969106

https://blog.csdn.net/wsuyixing/article/details/123513966

原文链接:https://www.bilibili.com/read/cv17334692/

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享