HACS更新 async_download_file超时的解决办法

HACS可以理解为是Home Assistant的第三方插件库,可通过可视化操作的方式安装、更新插件。在更新HACS组件时,会因主机性能和网络环境原因会导致更新超时,出现如下报错:

Backing off async_download_file(...) for 0.2s (asyncio.exceptions.TimeoutError)

可通过以下几种解决方案,从不同角度尝试解决问题,由易到难:

1.设定DNS

通过将网关或设备DNS设置为114DNS或阿里DNS,可尽可能的将网络联通问题降到最低。

阿里DNS是:

223.5.5.5
223.6.6.6

114DNS是:

114.114.114.114
114.114.115.115

2. 通过修改HOSTS文件,手动指定IP

这是个进阶方法,需要先找到超时的域名,比如本例中就是github和raw.githubusercontent.com的域名。那么手动为这些域名指定本地连接最快的IP,则会在一定程度上解决这个问题。因为这个方法可以应用到很多问题上,具体如何操作后面会单独一篇文章写。

3. 修改本地执行的超时时间

这是一个最有效的方法,既然现在不是下载超时就是执行超时,那只需将超时的时间延长,基本就可以彻底解决问题了。

具体方法如下:

在HA的config目录下搜索“download.py”,打开文件搜索如下字段

async_timeout.timeout

将后面的60改为120或200,既将超时时间改为了120s或200s。

保存文件后,重启HA生效。再来试试更新HACS的组件吧,虽然依旧很慢,但基本不会再提示超时问题了,也能正常更新成功。

*要注意的是,HACS版本更新后,这个超时时间会被重置,还需要再次手动调整。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注