前情:
将树莓派上的hassbian更新为了hassos(hassio)
问题说明:
Home Assistant后台Supervisor面板中提示有新版本的Hassos可以升级。点击“Update”按钮一段时间后报错,log提示:
WARNING (MainThread) [hassio.hassos] Can't fetch versions from https://github.com/home-assistant/hassos/releases/download/3.13/hassos_rpi4-3.13.raucb:
确定问题:
经过本地、树莓派分别测试,基本确认是Hassos放在GitHub上的更新文件,被托管到了亚马逊AWS上。相对来说,github.com
能解析到比较近的新加坡节点,连通性也比较高。
但这个文件会指向亚马逊的AWS地址:github-production-release-asset-2e65be.s3.amazonaws.com
,而AWS在国内基本是无法访问的状态。
思路:
- 尝试在路由器端使用dnsmasq,重定向到连通性较高的IP。
- 在本地网络出口,增加科学上网。
- 本地OTA更新。
解决方法:
前2种方式在尝试后放弃,原因是亚马逊AWS实在是太渣了,都无法稳定的保证文件正常下载(更新文件80mb+)。
因此决定使用本地OTA的更新方法,官方文档参考此:https://github.com/home-assistant/operating-system/blob/dev/Documentation/configuration.md
和一开始安装hassos导入配置文件的方式一样。需要准备一个U盘,需要格式化成FAT32/EXT4/NTFS其中一种文件格式,如果是Mac系统,首选FAT即可。
格式化时需要将设备名改为CONFIG
,请注意需要全部大写。
访问之前报错的OTA文件下载地址,我这里是:
https://github.com/home-assistant/hassos/releases/download/3.13/hassos_rpi4-3.13.raucb
下载完成后,将*.raucb文件放到刚才格式化好的U盘中。并将U盘插入到树莓派任意一个USB口。
访问Home Assistant后台Supervisor面板,点击“SYSTEM”选项板,在右侧“Host system”卡片中找到红色的“IMPORT FROM USB”,点击它。
刷新下方的日志,可以看到hassos系统已经读取到文件,并进行更新了。稍等片刻Hassos就会重启,在此期间不要执行其他操作和关闭电源。
解决大问题了