Docker安装Home Assistant (Hassio Supervisor)
目前尝试过安装在arm64和x64的Ubuntu上,Openwrt上,Pve母机的Debian上,openwrt直接跑会出现内存溢出的情况,本文最后说说如何从根本上解决,顺便鄙视一下某个每篇文章都要1.99元的网站
虽然官方有安装脚本,但等于没有一样,并用不了,不要尝试
下载
删掉冒号后面的去访问就能知道最新stable
版本是多少,点下面View all tagged versions
可以展开
不下载也行,启动的时候会下载
arm64
docker pull ghcr.io/home-assistant/aarch64-hassio-supervisor:2023.11.2
docker pull ghcr.io/home-assistant/qemuarm-64-homeassistant:2023.11.2
x64
docker pull ghcr.io/home-assistant/amd64-hassio-supervisor:2023.11.2
docker pull ghcr.io/home-assistant/qemux86-64-homeassistant:2023.11.2
启动
不要看官方文档安装他所需要的依赖,因为那些依赖确实没有也行,并且如果在Pve下安装networkmanager会导致网络崩坏
此处 /opt/apps/hassio 是Home Assistant的所有数据,可以改到你想要的地方,迁移的时候也只需要迁移这个文件夹,并卸载重新安装所有插件(插件即容器,数据不会丢)
不要问为什么不加--privileged
问就是启不来
arm64
docker run -d --name hassio_supervisor --privileged \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \
-v /opt/apps/hassio:/data \
-e SUPERVISOR_SHARE=/opt/apps/hassio \
-e SUPERVISOR_NAME=hassio_supervisor \
-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant \
ghcr.io/home-assistant/aarch64-hassio-supervisor:2023.11.2
x64
docker run -d --name hassio_supervisor --privileged \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \
-v /opt/apps/hassio:/data \
-e SUPERVISOR_SHARE=/opt/apps/hassio \
-e SUPERVISOR_NAME=hassio_supervisor \
-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant \
ghcr.io/home-assistant/amd64-hassio-supervisor:2023.11.2
然后需要耐心等待,按网速和性能需要蛮长时间的,用这个命令来看安装情况或者直接去portainer看log
docker logs -f hassio_supervisor
另外有人说装完之后找不到Supervisor的菜单,新版的菜单在设置里而不是左边菜单栏上,如果实在找不到,访问路径/hassio/dashboard
更新
发布了新版本,怎么可能不更新呢
# 这里的容器镜像名记住了替换下面的
docker stop hassio_supervisor
docker stop homeassistant
docker rm hassio_supervisor
docker rm homeassistant
docker images | grep supervisor
# 上面输出的都挨个删掉
docker rmi ghcr.io/home-assistant/amd64-hassio-supervisor:2022.04.0
docker images | grep 4-homeassistant
# 上面输出的都挨个删掉
docker rmi ghcr.io/home-assistant/qemux86-64-homeassistant:2022.3.6
# 这里下载最新版 删掉冒号后面的去访问就能知道最新版本是多少,替换掉
docker pull ghcr.io/home-assistant/amd64-hassio-supervisor:2023.08.1
docker pull ghcr.io/home-assistant/qemux86-64-homeassistant:2022.11.2
# 然后用上面安装的方式去运行,最后一行用上面pull的代替,SUPERVISOR_SHARE必须是同一个地方,迁移也只需要迁移他
错误和解决方案
'AddonManager.install' blocked from execution, system is not healthy
hassio文件夹下新建jobs.json并在里面写入
{"ignore_conditions": ["healthy"]}
在Openwrt下,hassio_audio会以肉眼可见的速度拼命吃内存,原因是因为Openwrt没有/dev/fd
解决方案1(推荐)ln -s /proc/self/fd /dev/fd
并且写到启动项中(因为是tmpfs所以需要每次开机都建一次软连接)
解决方案2(虽然说这东西没啥用,但hassio_supervisor有守护进程,会自动重启它,起起停停浪费资源)
在计划任务写入* * * * * docker kill hassio_audio
path /opt/apps/hassio/share is mounted on /opt but it is not a shared or slave mount
新版hass对所在分区挂载有要求,需要增加一条开机启动(尚不清楚怎么写fstab)
mount --make-shared /opt
升级,homeassistant 等很久也没有启动,没有 homeassistant 容器
先检查下下来的两个镜像是不是最新的稳定版本(没有dev字样),换成稳定版。
如果出现[supervisor.docker.interface] Attaching to ghcr.io/home-assistant/qemux86-64-homeassistant with version
的错误
或是卡在[supervisor.jobs] 'MountManager.reload' blocked from execution, mounting not supported on system
的时候
这是supervisor的问题,我也不知道怎么修,但是在升级2022.11.3的时候遇到了,并且找到了解决方案:# 全删掉 docker stop hassio_cli hassio_multicast hassio_audio hassio_dns hassio_observer hassio_supervisor homeassistant docker rm hassio_cli hassio_multicast hassio_audio hassio_dns hassio_observer hassio_supervisor homeassistant # 按上面的方式启动,但是去掉 -v /opt/apps/hassio:/data 这个目录映射,SUPERVISOR_SHARE 维持不变,或者换个目录,比如这样: docker run -d --name hassio_supervisor --privileged \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/dbus:/var/run/dbus \ -v /opt/apps/hassio222:/data \ -e SUPERVISOR_SHARE=/opt/apps/hassio -e SUPERVISOR_MACHINE=qemux86-64 \ -e SUPERVISOR_NAME=hassio_supervisor \ -e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant \ ghcr.io/home-assistant/amd64-hassio-supervisor:2023.11.3 # 等待 homeassistant启动成功 # 删除除了homeassistant以外的容器 docker stop hassio_cli hassio_multicast hassio_audio hassio_dns hassio_observer hassio_supervisor homeassistant docker rm hassio_cli hassio_multicast hassio_audio hassio_dns hassio_observer hassio_supervisor # 再按上面的方式正常启动一次,这样就完美修复了 docker run -d --name hassio_supervisor --privileged \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/dbus:/var/run/dbus \ -v /opt/apps/hassio:/data \ -e SUPERVISOR_SHARE=/opt/apps/hassio -e SUPERVISOR_MACHINE=qemux86-64 \ -e SUPERVISOR_NAME=hassio_supervisor \ -e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant \ ghcr.io/home-assistant/amd64-hassio-supervisor:2023.11.3
附加组件
既然都用到hassio了,那肯定会用到mqtt吧,那就启动一个emqx吧
docker run -d --name emqx -v /etc/localtime:/etc/localtime -p 1883:1883 -p 18083:18083 emqx/emqx
然后发现启动报错,因为Openwrt没有/etc/localtime和/etc/timezone
opkg install zoneinfo-asia
/etc/init.d/system reload
如果咩咩的文章对你有帮助,您可以 请我喝牛奶
大佬
x86主机安装显示
docker: invalid reference format: repository name must be lowercase.
是怎么回事啊大佬
字面意思,仓库名称必须是小写
请问后续更新怎么操作最方便?supervisor直接更新不了
拉新版镜像,删掉容器重新跑一个
感谢楼主, 按照你的方法部署成功。
我发现目前会自动更新版本, 但是要从ghrc.io更新,巨慢,有什么好办法加速吗?
您好
CRITICAL (MainThread) [supervisor.hardware.monitor] Not privileged to run udev monitor!
请问如何解决
忽略即可,不影响使用
[supervisor.hardware.monitor] Not privileged to run udev monitor!
有没有解决办法 没办法安装
那只是个系统资源监视器,并不会影响正常使用,只要无视那个提示就好
主要是没办法进行安装,能使用就谢天谢地了😂
你只要照着我的步骤就可以安装成功
有没有遇到这个情况,插件库没办法添加地址
'StoreManager.add_repository' blocked from exe cution, no supervisor internet connection
ok 了 原因是插了两张网卡
Can't process version data: 'aarch64'
这是什么意思大佬
没遇到过
我也遇到了,解决了吗
我也遇到了,搜了一下午,还是没解决
建议细说,是哪一步,哪里遇到的,不然没人知道是什么问题(
landingpage出现的Internal Server Error ("manifest unknown")
在获取homeassistant:landingpage时候出现了500错误。搜全网也没找到合适的解决方式。aarch64是可以忽略,但后面在检查架构的时候它可能是会因此找不到合适的landingpage。
再有出现aarch64提示的时候可以手动去pull它脚本获取不到的镜像,比如cli,audio之类的,然后它会自动读取(似乎)总之代码可以继续走下去了。最后我停在500报错了。
那你的系统究竟是什么架构的呢?
22-12-02 12:49:27 ERROR (SyncWorker_0) [supervisor.docker.interface] Can't install ghcr.io/home-assistant/aarch64-homeassistant:landingpage: 500 Server Error for http+docker://localhost/v1.41/images/create?tag=landingpage&fromImage=ghcr.io%2Fhome-assistant%2Faarch64-homeassistant&platform=linux%2Farm64: Internal Server Error ("manifest unknown")
我的系统是n1安装的openwrt,是符合aarch64的要求的,算是aarch64.
如果真是因为缺debian的nm这种……小问题导致py脚本进行不下去的话那真没办法了。
你网有问题,建议先处理好网络再装,这个包确实是存在的
谢谢帮助,我再试试
我最后还是选择重装armbian安装qemuarm64的supervisor了,虽然也很坎坷。
启动时把这个变量换成这样:
HOMEASSISTANT_REPOSITORY="homeassistant/qemuarm-64-homeassistant"
理论上aarch64那个性能会更好一点,如果实在不行就用这个
core没有aarch64的,只有qemuarm-64。
是有的,你访问一下就知道了 github.com/home-assistant/core/pkgs/container/aarch64-homeassistant
但是使用supervisor安装的话,会报错找不到aarch64的,只认qemuarm-64。
hassio文件夹在哪呀,我用的树莓派的docker版的homeassitant
你在装的时候映射的文件夹在哪里就是哪里
我是用的官方的教程
那你就看他的命令 -v 是映射了哪里
输入:
docker pull homeassistant/aarch64-homeassistant
docker pull homeassistant/aarch64-hassio-supervisor
时提示:
no route to host
dns有污染,网络不通畅,建议先把网络问题处理好
添加了jobs.json
'AddonManager.install' blocked from execution, system is not healthy
依然提示not healthy
说明位置不对
/opt/apps/hassio
我是这这个文件夹下新建的jobs.json文件 应该没错呀
确实没错
怪了
我也是 已经仔细检查过路径和权限也重装多次,也是提示system is not healthy
重启群晖解决了
好奇怪,用树莓派装可以有supervisor虽然也是not healthy
但是用openwrt就不行,怎么也找不到supervisor
我这在amd64的openwrt上试过可用
咩咩厉害。
您好,我Ubuntu上面安装之后,一直无法安装加载项,我可以连接到addon商店,每次安装都报错,日志里面显示,'AddonManager.install' blocked from execution, system is not healthy - docker
我这里没问题,你可能需要通畅的网络
我的网络是没有问题的,我可以看到加载项,但是无法安装,一点击安装日志里面就提示 'AddonManager.install' blocked from execution, system is not healthy - docker
你好,这报错是什么意思 ERROR (SyncWorker_0) [supervisor.docker.manager] Can't start homeassistant: 400 Client Error for http+docker://localhost/v1.41/containers/029a3bc0e8e13d1ce7729d4a7235376abb557a1952b61685614b755e2a2d3f6b/start: Bad Request ("failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/opt/apps/hassio/tmp/homeassistant_pulse" to rootfs at "/etc/pulse/client.conf": mount /opt/apps/hassio/tmp/homeassistant_pulse:/etc/pulse/client.conf (via /proc/self/fd/6), flags: 0x5001: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type")
大佬你好,我按照你的方法在x86的openwrt上安装完成了,log中的报错也都google解决了。现在有一个疑问,这种方式创建的homeassistant。怎么通过web访问啊?我尝试了路由器的routerip:8123. 和docker给容器分配的172.30.31.x:8123。都没有办法访问到web管理后台
docker log homeassistant 看一下日志,有没有成功启动
大佬,我的安装后提示这个
docker: invalid reference format.
See 'docker run --help'.
怎么回事?
复制的时候命令错了
大佬,你看看那代码没错吧。怎么还是启动不起来拿
docker run -d --name hassio_supervisor --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \
-v /overlay/upper/opt/docker/hassio:/data \
-e SUPERVISOR_SHARE=/opt/apps/hassio \
-e SUPERVISOR_NAME=hassio_supervisor \
-e HOMEASSISTANT_REPOSITORY=homeassistant/aarch64-homeassistant \
ghcr.io/home-assistant/aarch64-hassio-supervisor:latest
docker logs hassio_supervisor 看日志啊,你这就像拍个车的照片问为什么车开不起来
ERROR (SyncWorker_1) [supervisor.docker.interface] Can't install ghcr.io/home-assistant/aarch64-homeassistant:landingpage: 500 Server Error for http+docker://localhost/v1.41/images/create?tag=landingpage&fromImage=ghcr.io%2Fhome-assistant%2Faarch64-homeassistant&platform=linux%2Farm64: Internal Server Error ("manifest unknown")看了,没看懂,一直出现这条错误
试了下可以的,tag也没错,建议检查网络(需要能愉快访问github),把已经下载的images删除,重下
好的,感谢,我在试试
amd64安装新版log显示
INFO (MainThread) [supervisor.jobs] 'MountManager.reload' blocked from execution, mounting not supported on system,请问大神怎么解决?
忽略他