Skip to content

适配现代异步架构与实体化规范#7

Open
hzonz wants to merge 117 commits into
yzg790787394:mainfrom
hzonz:main
Open

适配现代异步架构与实体化规范#7
hzonz wants to merge 117 commits into
yzg790787394:mainfrom
hzonz:main

Conversation

@hzonz

@hzonz hzonz commented May 11, 2026

Copy link
Copy Markdown
Contributor

🚀 概述 (Overview)
本 PR 对 workchat_integration 进行了底层架构的完全重构。此次更新旨在废弃陈旧的同步阻塞逻辑,全面对齐 Home Assistant 2024.4+ 及 2025/2026 开发规范,显著提升集成在复杂网络环境下的响应性能与系统稳定性。
⚠️ 注意: 这是一个破坏性更新(Breaking Changes),与旧版本配置及调用方式不完全兼容。考虑到重构规模较大,建议作为测试分支或预发布版本进行验证,暂不建议直接合并入生产主线。

✨ 核心改进 (Key Highlights)

  1. 全异步架构重构 (Full Async Architecture)
  • 底层优化:彻底移除阻塞 I/O 的 requests 库,切换为基于 aiohttp 的全异步实现。
  • 系统性能:所有网络请求(Token 获取、消息发送、媒体上传)均在非阻塞模式下运行,消除了因网络波动导致的 HA 事件循环延迟警告。
  • 安全性:加解密模块逻辑优化,确保在 CPU 密集型操作时依然保持良好的响应性。
  1. 通知体系进化 (Notify Entity Migration)
  • 实体化规范:遵循 HA 最新标准,将旧版单一的 service 调用模式迁移至 NotifyEntity 平台。
  • UI 管理能力:通知助手现在作为标准实体存在,支持在 HA 界面中直接查看状态、禁用或重命名。
  • Action 兼容性:在保留集成域专属 Action (workchat_integration.notify) 的同时,完美接入系统级通知流。
  1. 数据管理现代化 (Modern Data Handling)
  • Runtime Data 模式:适配 HA 2024.4 引入的 runtime_data 属性存储客户端实例,弃用传统的 hass.data 存储方式,提升类型检查效率及代码可读性。
  • Config Flow 优化:增强配置流逻辑,支持唯一性 ID 校验(防止重复 Agent 添加)及代理 URL 格式预校验。
  1. UI 与传感器增强 (UX Improvements)
  • 视觉化感知:图片消息传感器支持 entity_picture 动态预览,可在 HA 仪表盘直接显示企微接收到的最新图片。
  • 诊断实体化:将“回调状态”与“媒体上传 ID”划分为诊断类实体(Diagnostic Category),主次分明,并对超长 Media ID 进行了 UI 截断处理。
  1. 新增功能支持
  • 交互式卡片:新增对企业微信 2026 推荐的 交互式模版卡片 (Template Card) 的 API 支持。

⚠️ 破坏性变更与已知局限 (Breaking Changes & Limitations)

  • 配置迁移:由于存储结构变更,升级后可能需要重新通过 UI 配置集成。
  • Action 调用:部分服务字段已根据最新 API 进行微调,旧有自动化脚本可能需要调整字段名称。
  • 待验证项:由于环境限制,HTTP 代理 (Proxy) 功能虽已在异步框架下重写,但尚未进行充分的生产环境连通性验证。

🧪 测试说明 (Testing)

  • 环境:Home Assistant 2026.5.1
  • 已验证:文本/图片消息双向收发、媒体文件异步上传、地理位置解析。
  • 待验证:SOCKS5/HTTP 代理环境。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant