『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 31899|回复: 40

(全部教程已补充完成)在OpenWRT环境下(x86-64)部署HassIO

  [复制链接]

2

主题

43

帖子

470

积分

论坛DIY达人

积分
470
金钱
422
HASS币
20
发表于 2019-12-13 11:50:30 | 显示全部楼层 |阅读模式
本帖最后由 realdenis 于 2019-12-15 23:17 编辑

实在是不好意思,本来昨晚就该把教程传上来的,结果事情一多给忘记了。今天赶紧补。

先说一下原理性的东西。由于路由器种类太多,x86的比较标准化一点,因此这里说的都是以x86为背景。

另外有很多朋友说到软路由一锅端的问题,确实非常有道理,我说一下我对这个问题的看法,简单地说就是如果你不是狂热刷机族,能够忍受很长时间不刷机,这个情况是完全在OpenWRT里面可以部署HassIO的,而且也能稳定运行。当然我要建议,把HA的数据库放到软路由之外的地方(比如我就是放到一台内网的黑群晖上),这样可以大幅减轻软路由里的磁盘操作,提升稳定性。这个教程更多的是提供一个思路,想法和选择。

HassIO其实就是一个运行在python环境下的框架,可以装插件,插件可以经由HassIO控制HA。而python在多数平台下都可以运行,其中就包括了OpenWRT。我知道有些人要开始骂娘了,OpenWRT也是一个变种的Linux,自然能够运行python,因此HassIO也应该没问题。确实是这个道理,但是实际情况就复杂很多了。举个例子,按照论坛里的nero大的安装方法,第一步就会提示你系统不支持systemd,然后就没然后了。所以最后我是在ubuntu上装了以后再反推到OpenWRT试验成功的。

废话就说这么多,下面进入正题。部署的步骤:

一、基础环境的搭建
1、刷入带有Docker-CE的OpenWRT固件。我用的是自己编译的版本,有兴趣的可以试试(链接:https://pan.baidu.com/s/1iXv_5LG1yNBBkS_re80KVQ  密码:1so3)。这步就不展开说了。

2、安装/更新依赖。先执行opkg update更新仓库,然后运行opkg install bash socat jq curl avahi-daemon dbus --force-overwrite。最后的--force-overwrite参数非常重要,请不要忽略。注意看安装结果有没有报错,没报错就ok了,有warning可以忽略。
3、按照Lean大的教程配置磁盘分区和Docker设置,部署好portainer。
Lean大教程: DockerReadme.pdf (685.88 KB, 下载次数: 874)

4、进入portainer,建立好管理用户后,进入local,选择images,在划红框的地方填入需要下载的镜像名。所需镜像一共有3个:
       ① homeassistant/amd64-hassio-dns:1
       ② homeassistant/amd64-hassio-supervisor:192
       ③ homeassistant/qemux86-64-homeassistant:0.102.3
       分别下载完这三个镜像备用。
WX20191214-174104@2x.png

简单讲一下我对这三个组件的理解。HassIO-dns从名字可以看出,是为其他两个组件提供网络服务(虽然只叫dns),HassIO-supervisor是HassIO的中枢,负责处理各个部件发过来的数据并进行控制,homeassistant这个就不说了吧。


二、HassIO-dns容器的搭建
1、将amd64-hassio-dns这个镜像建立成一个容器,命名为hassio_dns,其他都不用调,直接开始运行,但是容器很快就会自动关闭。不用担心,这是正常的。这一步的目的是为了让容器设定好一些环境参数。

2、给hassio_dns容器添加缺失的参数和文件。点进hassio_dns容器里,选择Duplicat/Edit(如图所示)进入编辑模式
WX20191214-180653@2x.png
选择Env栏,添加如图所示的环境参数。
WX20191214-180850@2x.png
再选择Volumes栏,添加磁盘映射目录,如图所示。注意要选bind才能在host那一栏输入目录地址。
WX20191214-181125@2x.png
然后把这个包里的两个文件放到host那一栏地址所示的目录里面。 corefile.rar (420 Bytes, 下载次数: 253)
WX20191214-181556@2x.png

完成以上步骤以后,hassio_dns这个容器应该就能正常启动了。




评分

参与人数 1金钱 +60 HASS币 +20 收起 理由
+ 60 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

2

主题

43

帖子

470

积分

论坛DIY达人

积分
470
金钱
422
HASS币
20
 楼主| 发表于 2019-12-13 12:12:46 | 显示全部楼层
本帖最后由 realdenis 于 2019-12-15 23:17 编辑

三、HassIO-supervisor的配置

下面按照之前搞HassIO-dns的思路,先建立HassIO-supervisor的容器,让他自动运行建立一部分环境参数,然后把它停止掉,再通过Duplicate/Edit功能添加剩余的环境参数和挂载路径。

所有环境参数齐全是这样的,把缺失的参数补全即可:
图片 1.png
可复制版:
HOMEASSISTANT_REPOSITORY      homeassistant/qemux86-64-homeassistant
SUPERVISOR_SHARE                        /opt/docker/volumes/hassio/supervisor
SUPERVISOR_NAME                         hassio_supervisor
PATH                                                    /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG                                                  C.UTF-8
CPG_KEY                                           0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D
PYTHON_VERSION                           3.7.4  
PYTHON_PIP_VERSION                   19.3

挂载路径这样设置:
图片 2.png

确认以上参数都设置好以后,保存相关设定,然后重新运行HassIO-supervisor。
后面就比较简单了,等着就行了。HassIO-supervisor会自己找到已经下载好的HA镜像并进行部署,所以只要部署好HassIO-dns和HassIO-supervisor之前,根本不需要自己去部署HA。


确认HA容器自动运行后,输入你的IP地址:8123访问HA,确认部署是否成功。

回复

使用道具 举报

0

主题

11

帖子

34

积分

新手上路

Rank: 1

积分
34
金钱
23
HASS币
0
发表于 2019-12-13 12:22:46 | 显示全部楼层
关注 学习一下
回复

使用道具 举报

0

主题

11

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
59
HASS币
0
发表于 2019-12-13 14:10:36 | 显示全部楼层
有的,坐等楼主教程
回复

使用道具 举报

7

主题

316

帖子

2398

积分

金牌会员

Rank: 6Rank: 6

积分
2398
金钱
2082
HASS币
0
发表于 2019-12-13 14:29:16 | 显示全部楼层
曾经考虑过。 但是想到刷固件有可能把docker挂掉。就放弃了~~还是老老实实的独立设备运行省得到时候一锅端了。哈哈~
回复

使用道具 举报

2

主题

43

帖子

470

积分

论坛DIY达人

积分
470
金钱
422
HASS币
20
 楼主| 发表于 2019-12-13 14:38:19 | 显示全部楼层
suifeng009 发表于 2019-12-13 14:29
曾经考虑过。 但是想到刷固件有可能把docker挂掉。就放弃了~~还是老老实实的独立设备运行省得到时候一锅端 ...

其实我现在就是,如无必要,绝不刷固件(包括小升级)
就是因为现在这个Docker加到了openwrt里面这种巨大的改变,我才想着去折腾的
还是要感谢Lean大
回复

使用道具 举报

7

主题

316

帖子

2398

积分

金牌会员

Rank: 6Rank: 6

积分
2398
金钱
2082
HASS币
0
发表于 2019-12-13 14:43:28 | 显示全部楼层
realdenis 发表于 2019-12-13 14:38
其实我现在就是,如无必要,绝不刷固件(包括小升级)
就是因为现在这个Docker加到了openwrt里面这种巨大 ...

KS的lede我曾经搞过。斐讯的劫持老出问题。大雕的我没测试有有群友测试过是可以的~N1运行挺稳定就这样挂着~作为折腾党,不刷固件那是不行的~哈哈~~
回复

使用道具 举报

62

主题

581

帖子

6051

积分

论坛元老

Rank: 8Rank: 8

积分
6051
金钱
5395
HASS币
240

教程狂人论坛风云人物

发表于 2019-12-13 20:22:50 | 显示全部楼层
哈哈,支持折腾精神。
不过路由器还是乖乖做路由器。
我试过一锅端的,往事不堪回首。
还好家里有多余的路由,否则网都上不了。
尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

10

主题

661

帖子

5310

积分

论坛元老

Rank: 8Rank: 8

积分
5310
金钱
4644
HASS币
50
发表于 2019-12-13 21:00:57 来自手机 | 显示全部楼层
软路由一锅端可就蛋疼了。。。
回复

使用道具 举报

1

主题

45

帖子

526

积分

高级会员

Rank: 4

积分
526
金钱
476
HASS币
10
发表于 2019-12-14 13:55:39 | 显示全部楼层
太强了,楼主。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-24 13:18 , Processed in 0.131218 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表