muxiachuixue 发表于 2021-10-11 14:54:12

手把手教你解决HACS无法访问github问题:无需科学上网

本帖最后由 muxiachuixue 于 2022-8-28 10:51 编辑

2022年8月28日更新:
增加https选项,请下载v1.4.2版replace_hacs_download_mirror.sh,并重启两次HA生效


2022年2月25日更新:
新增一个github镜像,请下载v1.4.1版的replace_hacs_download_mirror.sh,并重启两次HA生效


2022年2月17日更新:
raw.fastgit.org 这个镜像貌似挂掉了,请下载v1.4版的replace_hacs_download_mirror.sh,自动选用可用的镜像

2022年2月10日更新:新增功能:如果镜像失效,则放弃替换镜像,继续使用github官方网址
2022年1月9日更新:最新版HACS文件结构发生变化,请下载最新版replace_hacs_download_mirror.sh,否则无法自动替换HACS下载源
2021年12月2日更新:改为在HA中执行定时自动化,不再走crontab,简化了操作,对小白更友好
2021年11月9日更新:从更改宿主机hosts文件,变为更改docker中HA容器的hosts,之前下载老版本的,请参考下文第二部分重新配置==================================================================

没有科学上网环境?无法访问github?无法从HACS商店下载插件和加载项?无法更新插件?下面手把手教你设置,无需科学上网,一劳永逸。

一、修改默认下载源(此方法参考Anlong大神)
原理:此方法为自动修改HACS下载源:旧版HACS文件地址:/config/custom_components/hacs/helpers/functions/download.py2022年1月后新版HACS文件地址:/config/custom_components/hacs/base.py
1. 下载附件,把文件replace_hacs_download_mirror.sh放到HA主目录/config下(和configuration.yaml文件同一个目录)
2022年2月17日更新:新增功能:新增一个镜像,自动选用可用镜像
2022年2月10日更新:新增功能:如果镜像失效,则放弃替换镜像,继续使用github官方网址
2022年1月9日更新:最新版HACS文件结构发生变化,请下载以下最新版replace_hacs_download_mirror.sh,否则HACS无法自动替换下载源


2. 为防止HACS更新后下载源文件被覆盖,需设置HA启动后,自动更新HACS下载源:
在/config/packages 文件夹(没有这个文件夹就新建一个)下新建文件update_hacs_download_source.yaml,内容如下:
shell_command:
update_hacs_download_source: sh /config/replace_hacs_download_mirror.sh

automation:
- alias: HA启动自动更新HACS下载源
    trigger:
      - platform: homeassistant
      event: start
    action:
      - service: shell_command.update_hacs_download_source在configuration.yaml中添加如下代码,让packages文件夹被识别:homeassistant:
packages: !include_dir_named packages
3. 重启两次homeassistant 生效;第一次重启会修改下载源文件,第二次重启使修改生效;以后每次更新了hacs,都要重启两次才行

到这里为止,你的HACS就可以正常下载、更新插件了,但是为了更稳定一点,可以继续做下面步骤二

二、设置定时自动更新docker中hosts文件
2021年11月9日更新,从更改宿主机hosts文件,变为更改docker中HA容器的hosts,之前下载老版本的,此部分请重新配置
感谢原作者提供的hosts更新服务:github hosts更新地址

1. 把附件中github_docker_hosts_update.sh文件放到HA主目录/config下(和configuration.yaml文件同一个目录)


2. 在/config/packages 文件夹(参考上面步骤一)下新建文件update_github_docker_hosts.yaml,内容如下:shell_command:
update_github_docker_hosts: sh /config/github_docker_hosts_update.sh

automation:
- alias: HA启动或每两小时自动更新docker中github的hosts
    trigger:
      - platform: homeassistant
      event: start
      - platform: time_pattern
      hours: "/2"
    action:
      - service: shell_command.update_github_docker_hosts
3. 重启homeassistant生效
三、添加社区商店add-ons(只有hassos/hassio/supervised版本才有add-on商店):HACS-加载项-加载项商店-右上角添加新的repo,地址填:https://hub.fastgit.xyz/hassio-addons/repository
社区repo添加成功


官方加载项商店无法加载的问题请参考:干货:解决supervisor商店插件add-ons无法加载的问题







muxiachuixue 发表于 2022-2-10 19:46:14

2022年2月10日更新:新增功能:如果镜像失效,则放弃替换镜像,继续使用github官方网址
2022年1月9日更新:最新版HACS文件结构发生变化,请下载最新版replace_hacs_download_mirror.sh,否则无法自动替换HACS下载源
2021年12月2日更新:改为在HA中执行定时自动化,不再走crontab,简化了操作,对小白更友好
2021年11月9日更新:从更改宿主机hosts文件,变为更改docker中HA容器的hosts,之前下载老版本的,请参考下文第二部分重新配置

evantalk 发表于 2021-10-11 15:30:03

好帖要支持一下

antsunzj 发表于 2021-10-11 16:22:27


download.py能放到gitee,定时替换吗?因为hacs更新,这个文件会变的。:lol

yuyuye 发表于 2021-10-11 16:34:18

好帖,感谢。

请教下楼主,我理解一和二选一个就可以吧?还是两个是都要操作的?

muxiachuixue 发表于 2021-10-11 16:37:34

yuyuye 发表于 2021-10-11 16:34
好帖,感谢。

请教下楼主,我理解一和二选一个就可以吧?还是两个是都要操作的? ...

都要操作,不操作二的话,你可能无法去HACS里面添加社区商店(里面的加载项无法安装)。但是只添加一的话,是可以下载集成的。

muxiachuixue 发表于 2021-10-11 16:40:39

antsunzj 发表于 2021-10-11 16:22
download.py能放到gitee,定时替换吗?因为hacs更新,这个文件会变的。

不需要放到gitee,可以直接用脚本定时替换,用sed命令查找到download.py里面对应代码的位置,然后把要添加的放进去就行了。但是如果HACS大更新后,可能导致查找的位置发生了改变,脚本运行失败。感觉HACS很久都没更新了吧,手动改一下,也还好:lol

bluebaby 发表于 2021-10-11 17:03:03

谢谢分享

skasoka 发表于 2021-10-11 17:07:06

感谢分享,帮我解决了大麻烦

antsunzj 发表于 2021-10-11 17:12:20

muxiachuixue 发表于 2021-10-11 16:40
不需要放到gitee,可以直接用脚本定时替换,用sed命令查找到download.py里面对应代码的位置,然后把要添 ...

大佬,要不顺手写一下啊

muxiachuixue 发表于 2021-10-11 17:42:44

antsunzj 发表于 2021-10-11 17:12
大佬,要不顺手写一下啊

行吧,晚点传上来
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 手把手教你解决HACS无法访问github问题:无需科学上网