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

 找回密码
 立即注册
查看: 1086|回复: 32

[插件集成] Clash控制器集成发布 - 支持UI添加

[复制链接]

5

主题

61

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
837
HASS币
0
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 myhades 于 2025-2-6 18:24 编辑

[Custom Integration] Home Assistant Clash Controller

logo

logo



Home Assistant Clash Controller 是一个用于控制外部 Clash 的 HA 集成,通过其 RESTful API 进行交互。
该集成使用的 API 与 yacd 等面板相同,且源项目似乎已更名为 Mihomo。
请注意,这个集成并不是 Clash 本身,而是一个 Clash 控制器,与网页面板本质上没有区别,你仍然需要先部署 Clash 才能使用该集成。
开发这个集成的目的只是为了更方便、自动化地管理 Clash 流量。

这是我第一个 Python 兼 Home Assistant 项目,因此可能存在一些缺陷,非常感谢任何试用和反馈!
集成做了 ConfigFlow 可以使用图形界面方便的添加,不需要修改配置反复重启 HA
如果你觉得不错也欢迎为我的仓库点个⭐Star
项目地址: https://github.com/myhades/ha-clash-controller

config_flow

config_flow

device_page

device_page

当前的使用场景主要针对利用Clash,OpenClash,MerlinClash等进行全屋流量魔法的配置,通过该集成,你可以方便的:
1) 让家里人使用HA快速完成节点切换,而不必亲自动手或者进行yacd教学
2) 自动检测当前魔法情况,根据延迟或者连接情况自动更改节点(鉴于Clash本身就是根据策略和延迟的分流魔法软件,所以这个主要针对于自定义一些连接测试,可能要求HA本身魔法)
3) 实现流媒体解锁检测和切换(这个后续更新进集成,同样要求HA本身魔法)
4) 利用提供的services进行一些进阶网络诊断,包括按关键词获取规则,获取/终止连接,DNS查询等。

1. 支持的 Clash

本集成应适用于绝大部分 Clash 核心,包括普通,premium,meta核心等,因为这些核心都用的类似的API
注意配置必须启用external-controller(这个一般不用担心,网页面板能用这个集成就能用)

2. 安装

方式 1:通过 HACS 安装
1) 进仓库 https://github.com/myhades/ha-clash-controller
2) 点击Open HACS图标,同意添加库,下载安装并重启
3) 点击Add Integration图标,搜索"Clash Controller",按UI说明添加

方式 2:手动安装
下载custom_components里的文件到你的HA对应的文件夹,重启并搜索添加

3. 配置  

1)进入 Home Assistant,添加新集成,搜索 "Clash Controller" 并按照配置向导完成设置
2)如果找不到集成,确认装上了的话可以清除浏览器缓存试试
3)填入Clash 的地址(如192.168.1.1:9090)和 Bearer Token(配置的管理密码)

注意事项:
1)如果 API 是 IP(如 192.168.1.1:9090),确保是静态 IP 或在路由器上添加 DHCP 静态租约(MAC地址绑定),否则 IP 变化后需要重新添加集成。使用IP不要勾选使用HTTPS
2)如果 API 是域名(如配置了反代用域名连接,clash.mydomain.com),则视情况勾选https和允许不安全证书(自签名证书则需要勾上,除非系统信任了CA)

4. 功能

1. 实体支持


1)策略组相关(实体属性包含对应策略组的所有节点和延迟信息)
  • 策略组传感器 - 对于 URLTest 组
  • 策略组选择器 - 对于 Fallback, Selector 组
2)流量相关
  • 实时上下行流量传感器
  • 总上下行流量传感器
3)系统信息
  • 活跃连接数传感器
  • 内存信息传感器
  • FakeIP 缓存清除按钮

2. 服务支持

1)查询
  • 获取 节点 / 策略组 的延迟
  • 获取当前的活跃连接(支持关键词过滤)
  • 获取当前使用的魔法规则(支持关键词过滤)
  • 进行 DNS 查询
2)控制
  • 获取 / 关闭指定连接(支持按 主机 / 源地址 / 目标地址过滤)
  • 重启 Clash 核心

3. 计划支持的功能

检测流媒体可用性(如 Netflix / Disney+)
自动切换最优代理节点,针对流媒体优化连接

5. 免责声明

本项目不提供任何 Clash 订阅、代理或节点,仅用于 Clash API 控制。我不对 Clash 及其使用方式的合法性、准确性、适用性提供任何担保。
使用本集成即表示你已阅读并同意本免责声明。





















评分

参与人数 5金钱 +74 收起 理由
kaka0992 + 10 感谢楼主分享!
dscao + 20 感谢楼主分享!
隔壁的王叔叔 + 12 感谢楼主分享!
sorrypqa + 16 大神666!
nuknoop + 16 高手,这是高手!太牛了

查看全部评分

回复

使用道具 举报

0

主题

59

帖子

409

积分

中级会员

Rank: 3Rank: 3

积分
409
金钱
350
HASS币
0
发表于 4 天前 | 显示全部楼层
沙发,感谢分享,明天试试!
回复

使用道具 举报

23

主题

278

帖子

2007

积分

金牌会员

Rank: 6Rank: 6

积分
2007
金钱
1729
HASS币
0
发表于 4 天前 | 显示全部楼层
op旁路由模式,添加后提示
设置失败,将重试:'NoneType' object has no attribute 'get

小猫版本0.46.064
回复

使用道具 举报

5

主题

61

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
837
HASS币
0
 楼主| 发表于 4 天前 | 显示全部楼层
kaka0992 发表于 2025-2-4 10:41
op旁路由模式,添加后提示
小猫版本0.46.064

麻烦如图所示操作,然后提供一下日志
Screenshot 2025-02-04 112241.png
回复

使用道具 举报

15

主题

228

帖子

1891

积分

金牌会员

Rank: 6Rank: 6

积分
1891
金钱
1663
HASS币
0
发表于 4 天前 | 显示全部楼层
佬,有方案联动ha吗? 需要的时候打开clash,ha主机自动走clash的网关,,关闭clash的时候ha走正常网络网关   0.0
回复

使用道具 举报

0

主题

3

帖子

43

积分

新手上路

Rank: 1

积分
43
金钱
40
HASS币
0
发表于 4 天前 | 显示全部楼层
问个问题,部署 Clash 有教程没
回复

使用道具 举报

23

主题

278

帖子

2007

积分

金牌会员

Rank: 6Rank: 6

积分
2007
金钱
1729
HASS币
0
发表于 4 天前 | 显示全部楼层
myhades 发表于 2025-2-4 11:23
麻烦如图所示操作,然后提供一下日志
此错误来自自定义集成。

日志记录器: custom_components.clash_controller.coordinator
来源: helpers/update_coordinator.py:379
集成: Clash Controller (文档, 问题)
首次出现: 10:32:04 (22 次总计出现)
上次记录: 12:49:10

Unexpected error fetching homeassistant (http___192_168_10_2_9090_) data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 379, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/clash_controller/coordinator.py", line 105, in _async_update_data
    "state": response.get("memory").get("inuse"),
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

看下是否是这些
回复

使用道具 举报

5

主题

61

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
837
HASS币
0
 楼主| 发表于 4 天前 | 显示全部楼层
kaka0992 发表于 2025-2-4 12:52
看下是否是这些

发布了一个新版本v0.1.3,麻烦试一下看还存在问题吗
回复

使用道具 举报

5

主题

61

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
837
HASS币
0
 楼主| 发表于 4 天前 | 显示全部楼层
Awe7 发表于 2025-2-4 11:57
佬,有方案联动ha吗? 需要的时候打开clash,ha主机自动走clash的网关,,关闭clash的时候ha走正常网络网关 ...

有可能,给你提供一个复杂的思路,不行可以再问:

1)HA配置 Terminal add-on
2)使用 command_line 集成配置以下
1. 添加 ssh 连接到 localhost 执行网关更改的命令,你得查下我也忘了 HAOS 的网络配置命令了
2. 添加 ssh 连接到 openwrt 通过 uci 命令查询/开关 OpenClash 启动
3)写一个自动化

但是很不推荐,随意更改 HA 网络配置可能导致运行不稳定
回复

使用道具 举报

50

主题

1845

帖子

7324

积分

论坛元老

Rank: 8Rank: 8

积分
7324
金钱
5469
HASS币
40
发表于 4 天前 | 显示全部楼层
使用docker,只需要解决镜像问题,方便快捷,劝新人还是学下docker
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-2-8 15:15 , Processed in 0.077869 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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