Robot插播广告,死活搞不定然后又想体验home assistant的,可以考虑一下这个:
本脚本与 2021年6月1日 停止维护,江湖再见!
2020-01-21 Update
Fixed:
- 将官方 hassio-installer 项目克隆到阿里云 Code 平台
- 将脚本依赖的文件指向 阿里云 Code 平台
- 改进错误提示
注:克隆只为了解决网络问题,并没有克隆提交记录,也没有修改里面任何内容。
HassIO 是什么?
有很多人根本不清楚 hassio和 homeassistant到底什么关系(其实我刚入坑也搞的我迷迷糊糊,还有墨澜美女博客的高能警告更搞的我迷迷糊糊),这样理解吧,hassio是一个框架,他利用 docker 来部署 homeassistant,并且为homeassistant 提供各种插件(addons)。
而 homeassistant 在 hassio 中,homeassistant 是利用docker 部署起来,hassio 和homeassistant 是通过他们的API进行联系和沟通。
那么 hassio 到底做了什么,他作用是什么?
我的理解是:hassio 是利用Python写了一个类似 docker 管理器那样的程序,拥有 docker 的控制权,从而达到升级/降级 homeassistant 容器,安装/卸载 addons的目的。
Docker 又是什么?
建议看一下我学习 docker 的教程写的很好《Docker — 从入门到实践》
Docker 你可以将其理解成一个类似虚拟机的系统(但内核是和宿主共用的,故此比传统的虚拟机更轻量)。他的初衷是为了给各个业务系统提供一个干净的隔离环境(我自己理解,可能比较片面与不准确)。
我称 Docker 为运维神器,为什么?因为Docker 可以让你实现开箱即用。举个例子,如果我的hassio要迁移,我只需要把 hassio文件夹拷走(默认路径 /usr/share/hassio),然后拷贝到新的机器上,再运行我的一键脚本,整个 hassio 的所有东西,包括addons插件都会按照原来的方式运行,这要归功于 docker 的便利性。
Addons 是什么
hassio 设计了一套他独有的 addons 容器编写规范,由于是hassio独有,所以这些 addons 只适配 hassio 使用。
我能不能在其他支持docker 的机器上安装 addons(不依赖 hassio)?
答案其实是可以的,因为 addons 其实都是跑在docker 上所以只要设备能安装docker,那么 addons 其实就可以跑。但是上面也说了,addons是基于 hassio规范来设计的容器,所以我们在无 hassio 的情况下使用 addons 就要手工按照 hassio 配置方式来启动 addons了,具体怎么启动可以参考 addons 官方制作文档**Developing an add-on**,和我另一个帖子 群晖部署天猫精灵网关 For Docker
hassio_install
hassio 一键安装脚本,实现以下功能。
- 自动更改系统源为清华源。(目前支持 Debian Ubuntu Raspbian 三款系统)
- 自动安装 Docker,可以选择切换 Docker 源为国内源,提高容器下载速度。
目前支持的系统
- Raspberry Pi OS Lite 测试版本 Raspberry Pi OS Lite 2020年12月2日通过
- Ubuntu 测试版本 12.04 LTS测试通过。
- Debian 测试版本 >=10 最小化版本测试通过。
使用方法
以 root 身份运行以下命令。
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/install.sh
chmod a+x install.sh
./install.sh
如果安装的是 64 位系统,脚本会自动筛选适配 64 位的设备列表
(1). 是否将系统源切换为中科大(USTC)源(目前支持 Debian Ubuntu Raspbian 三款系统)
请输入 y or n(默认 yes):y
(2). 在你系统内找到 nero 用户,是否将其添加至 docker 用户组。
请输入 yes 或者 no (默认 yes):y
将nero用户添加至 docker 用户组。
(3).是否需要替换 docker 默认源?
请输入 yes 或者 no(默认:yes):y
(4).请选择你设备类型(默认:qemux86-64)
[1]: raspberrypi3-64
[2]: qemuarm-64
[3]: qemux86-64
输入数字 (1-3):
你选择了 qemux86-64
################################################################################
# 1. 是否将系统源切换为中科大(USTC)源: 是
# 2. 是否将用户添加至 Docker 用户组: 是,添加用户为 nero
# 3. 是否将 Docker 源切换至国内源: 是
# 4. 您的设备类型为: qemux86-64
################################################################################
请确认以上信息,继续请按任意键,如需修改请输入 Ctrl+C 结束任务重新执行脚本。
如果安装的是 32 位系统,脚本会自动筛选适配32位的设备列表
(1). 是否将系统源切换为中科大(USTC)源(目前支持 Debian Ubuntu Raspbian 三款系统)
请输入 y or n(默认 yes):y
(2). 在你系统内找到 nero 用户,是否将其添加至 docker 用户组。
请输入 yes 或者 no (默认 yes):y
将nero用户添加至 docker 用户组。
(3).是否需要替换 docker 默认源?
请输入 yes 或者 no(默认:yes):y
(4).请选择你设备类型(默认:qemux86)
[1]: raspberrypi
[2]: raspberrypi2
[3]: raspberrypi3
[4]: qemuarm
[5]: qemux86
[6]: intel-nuc
输入数字 (1-6):
你选择了 qemux86
################################################################################
# 1. 是否将系统源切换为中科大(USTC)源: 是
# 2. 是否将用户添加至 Docker 用户组: 是,添加用户为 nero
# 3. 是否将 Docker 源切换至国内源: 是
# 4. 您的设备类型为: qemux86
################################################################################
请确认以上信息,继续请按任意键,如需修改请输入 Ctrl+C 结束任务重新执行脚本。
设备类型选型说明
- intel-nuc :英特尔的nuc小主机
- odroid-c2 :韩国odroid-c2
- odroid-xu :韩国odroid-xu
- orangepi-prime :香橙派
- qemuarm :通用arm设备(例如斐讯N1)
- qemuarm-64 :通用arm设备(例如斐讯N1) 64位系统
- qemux86 :通用X86 64位系统(普通的PC机电脑)
- qemux86-64 :通用X86(普通的PC机电脑)64位系统
- raspberrypi :树莓派一代
- raspberrypi2 :树莓派二代
- raspberrypi3 :树莓派三代
- raspberrypi4 :树莓派四代
- raspberrypi3-64 :树莓派三代64位系统
- raspberrypi4-64 :树莓派四代64位系统
- tinker :华硕tinker
Hassio 升级脚本
由于网络原因,hassio_supervisor 经常如下报告:
18-08-15 03:57:02 WARNING (MainThread) [hassio.updater] Can't fetch versions from https://s3.amazonaws.com/hassio-version/stable.json
无法从亚马逊刷新最新版的 json 文件,导致 hassio 升级失败,我制作了 hassio 升级脚本,可以使用脚本手动升级。
使用方法
请使用 root 权限运行以下命令。
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/hassio_upgrade.sh
chmod u+x hassio_upgrade.sh
./hassio_upgrade.sh
操作说明
停止(但重启依然会自启动)
systemctl stop hassio-supervisor.service
重启
systemctl restart hassio-supervisor.service
禁用自启动
systemctl disable hassio-supervisor.service
启用自启动
systemctl enable hassio-supervisor.service
查询当前启动状态
systemctl status hassio-supervisor.service
查询当前是否自启动
systemctl is-enabled hassio-supervisor.service
查询 hassio 日志
docker logs -f hassio_supervisor
查询 hassio 日志最新20行信息
docker logs -f hassio_supervisor --tail 20
查询 ha 日志
docker logs -f homeassistant
查询 ha 日志最新20行信息
docker logs -f homeassistant --tail 20
systemctl 说明 : https://linux.cn/article-5926-1.html
docker logs 命令用法:https://docs.docker.com/engine/reference/commandline/logs
Homeassistant 版本切换脚本
此脚本可在宿主中切换homeassistant版本号
严重警告
- 切换版本的 home-assistant 请先备份好配置文件,虽然脚本会自动备份,但最好自己再备份一次,出现丢失配置情况恕不负责。
- 切换旧版本启动失败的,请查看 home-assistant 的日志来修复错误配置
- 切换过旧的版本会导致 hassio 加载 404,目前已知 0.77 以前版本都无法正常加载 hassio
- 启动失败可以到论坛带日志发帖求助,无日志发帖我将会扣分处理
使用方法
使用 root 运行一下命令
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/homeassistant_ver_switch.sh
chmod u+x homeassistant_ver_switch.sh
./homeassistant_ver_switch.sh 0.92.2
鸣谢
感谢帮我测试脚本的:Yume戴迪、萝卜