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

 找回密码
 立即注册
查看: 2006|回复: 8

[新奇玩法] 你的HACS因为q的问题下载困难?我能帮你解决。

[复制链接]

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

发表于 2022-6-29 05:35:06 | 显示全部楼层 |阅读模式

前言

众所周知,拜伟大的GF*所赐,GITHUB处于时通时不通的状态,在没有全网TZ的情况下,从HACS中下载或者更新一个集成是非常容易失败的。

原因分析

那么这个问题,HACS中如何处理的,才会导致转着转着失败的,咱们先来分析一下HACS如何从GITHUB下载文件的。
与咱们从GITHUB下载都是一个zip下下来不同,HACS是根据Release标记将集成的所有文件一个一个单独下载下来,没有Release,就根据Tags,没有Tags,就下最后一次提交的。
而HACS默认重试次数为5次,也就是说,假设一个集成里边有20个文件,只要有任意一个文件重试次数超过5次,就会导致整个集成下载/更新失败

解决方案

标题党了,GITHUB访问困难,我并不能帮你解决,但是我能保证你HACS下载/更新不再失败。
用任意文本编辑器打开custom_components/hacs目录下的base.py这个文件,找到async def async_download_file这个函数定义,往下看几行,看到 while timeouts < 5:这句了吗?
请把5改成30,不放心可以改成50。
再往下几行,这一段

           except asyncio.TimeoutError:
                self.log.warning(
                    "A timeout of 60! seconds was encountered while downloading %s, "
                    "using over 60 seconds to download a single file is not normal. "
                    "This is not a problem with HACS but how your host communicates with GitHub. "
                    "Retrying up to 5 times to mask/hide your host/network problems to "
                    "stop the flow of issues opened about it. "
                    "Tries left %s",
                    url,
                    (5 - timeouts),
                )

里边有两个5出现,都改成30,这不关键,但是从日志中你可以准确知道你失败了多少次。

这样除非你的网跟GITHUB根本就不通,否则连续30次失败的可能性就小得可以忽略不计了。这么说吧,自从我改成30后,HACS从没让我失望过。
只不过就是多等HACS转一会儿的事。

当然,修改完你得重启HA。

重要提示:修改前最好备份文件,省得不小心改乱了再恢复回去






评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 以为是青铜,原来是王者!

查看全部评分

回复

使用道具 举报

7

主题

314

帖子

2753

积分

金牌会员

Rank: 6Rank: 6

积分
2753
金钱
2439
HASS币
0
发表于 2022-6-29 09:45:45 | 显示全部楼层
现在基本是这几种方案:
1、替换hacs源为国内:维护成本略高,弃了。
2、全局代理:实在懒得单独为hacs部署。
3、alone大佬的hacs国内版:试用了一阵,推荐。
4、ryanh7大佬的hacs单独代理:目前在用,赞。
5、楼主大佬的方案:对我来说,github也不是完全被Q,直连的话时好时坏,这个方案应该可行,感谢楼主分享。

评分

参与人数 2金钱 +40 收起 理由
+ 20 以为是青铜,原来是王者!
neroxps + 20 总结的非常到位

查看全部评分

回复

使用道具 举报

23

主题

137

帖子

712

积分

高级会员

Rank: 4

积分
712
金钱
575
HASS币
0
发表于 2022-6-29 05:50:49 | 显示全部楼层
有q的情况下无论干100次都是没办法安装,最好的解决方法是用TZ,玩HA不玩TZ难为自己。
回复

使用道具 举报

23

主题

629

帖子

4340

积分

元老级技术达人

积分
4340
金钱
3696
HASS币
30

教程狂人

QQ
发表于 2022-6-29 07:55:21 | 显示全部楼层
没有TZ可以用HACS极速版,国内的镜像源
回复

使用道具 举报

39

主题

2049

帖子

7693

积分

元老级技术达人

积分
7693
金钱
5629
HASS币
110
发表于 2022-6-29 08:59:38 | 显示全部楼层
HACS极速版效果不错
不过我的网络环境好像适合你的教程
时通时不通
TZ有,便宜的那种,每次还得更新列表
挂全局不是很方便
回复

使用道具 举报

1

主题

70

帖子

589

积分

高级会员

Rank: 4

积分
589
金钱
519
HASS币
0
发表于 2022-6-29 11:18:56 | 显示全部楼层
我是电信网,配合114的dns,访问hacs还没怎么遇到问题,如果后面有问题了,我就捣鼓一下我的华硕路由器
回复

使用道具 举报

2

主题

30

帖子

382

积分

中级会员

Rank: 3Rank: 3

积分
382
金钱
352
HASS币
0
发表于 2022-6-29 11:26:02 | 显示全部楼层
感谢分享,回去试下,gitub连接也是偶尔不通的情况
回复

使用道具 举报

62

主题

581

帖子

6055

积分

论坛元老

Rank: 8Rank: 8

积分
6055
金钱
5399
HASS币
240

教程狂人论坛风云人物

发表于 2022-6-29 17:08:41 | 显示全部楼层
不知道能不能把hacs的注册绑定国内的信息啊?现在下载的用alon额大佬的极速版可以解决了。就是新用户绑定的时候用github可能有些家里没有环境的会有障碍。
尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

17

主题

760

帖子

5276

积分

论坛元老

Rank: 8Rank: 8

积分
5276
金钱
4511
HASS币
0
发表于 2022-6-29 21:19:55 | 显示全部楼层
感谢分享。
不过还是路由器白名单+小猫咪比较方便。毕竟除了HACS其他很多地方也会有问题。。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 22:54 , Processed in 0.076705 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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