KallistoX/eve-homekit-to-home-assistant-without-apple
GitHub: KallistoX/eve-homekit-to-home-assistant-without-apple
帮助用户在无任何 Apple 硬件的情况下,将旧款 Eve HomeKit 配件迁移至 Home Assistant 的脚本与指南集合。
Stars: 0 | Forks: 0
# 将 eve-homekit 迁移至 home-assistant(无需 Apple 设备)
让 **旧的 Eve HomeKit 配件无需任何 Apple 硬件** 即可接入 Home Assistant ——
不需要 iPhone,不需要 HomePod,也不需要 Apple TV。Thread 插件将加入你的 Home
Assistant 已经控制的 Thread 网络;Wi-Fi 设备则通过 Apple 的 WAC 协议配置到你的 Wi-Fi
网络上。在这两种情况下,配对信息都会被直接移植到 Home Assistant 中。
## 问题所在
较旧的 Eve 设备是 **HomeKit** 配件。要将 HomeKit 配件接入网络,通常需要一台 Apple 设备:
- **Thread** Eve 配件需要由 Apple Thread 边界路由器(HomePod mini/2,或较新的 Apple TV 4K)委托加入 Thread 网络,并且 Eve 应用中的“升级至 Matter”路径也需要同样的条件。
- **Wi-Fi** Eve 配件通过由 iPhone 驱动的 Apple WAC 获取其 Wi-Fi 凭证。
如果你没有任何 Apple 硬件,官方的路径将走不通。本仓库记录了两种无需 **任何** Apple 设备的替代方法。
## 我需要哪份指南?
| 你的 Eve 设备 | 无线电 | 指南 |
|---|---|---|
| Thread 代的 Eve Energy 插件(HomeKit,Matter 之前) | Thread + BLE | **[docs/thread.md](docs/thread.md)** |
| Eve Energy Strip (2019, `10EAZ8301` / `20EAZ8301`) 及其他仅支持 Wi-Fi 的 Eve HomeKit 设备 | Wi-Fi (2.4 GHz) | **[docs/wifi-wac.md](docs/wifi-wac.md)** |
恢复出厂设置后如何区分它们:**Wi-Fi** Eve 会广播其自己的开放式 Wi-Fi 网络(SoftAP);而 **Thread** Eve 会通过 Bluetooth 进行广播以进行设置。(原生支持 Matter 的 Eve 设备不在本文讨论范围内 —— 请通过 Home Assistant 的常规 Matter 流程添加这些设备。)
这两份指南最后都会汇合到通用的 **[docs/ha-import.md](docs/ha-import.md)**。
## 前置条件(通用)
- **Home Assistant**,且需启用 `homekit_controller` 集成。
- 一台具备 Bluetooth(Thread 指南)或 Wi-Fi(Wi-Fi 指南)功能的 **Linux 设备** —— 你的工作站即可。HA 自身的主机不需要 Bluetooth。
- **Python 3** + [`aiohomekit`](https://github.com/Jc2k/aiohomekit)。
- 配件的 **8 位 HomeKit 设置码**(在其标签或包装盒上)。
- 仅限 Thread 指南:一个正在运行且由 HA 控制的 **OpenThread Border Router**,并设置为 HA 的首选 Thread 网络。
## 脚本
| 脚本 | 用途 |
|---|---|
| `scripts/patch_aiohomekit_bleak3.py` | 为 bleak 3.x 打补丁以适配 aiohomekit(bleak 3.x 移除了 `register_detection_callback`)。使用字符串修补,而不是脆弱的基于行号的 `.patch`。 |
| `scripts/pair_ble.py` | 通过 BLE 与配件配对;可选择将其 `thread_provision`(配置)到你的 Thread 网络中。 |
| `scripts/pair_ip.py` | 通过指定的 IP 地址(其 Wi-Fi 地址或 SoftAP)与可访问的配件进行配对。 |
| `scripts/wac_configure_commit.go` | 对 BertoldVdb/WACResearch `waclib` 的轻量级封装 —— `configure`(在 SoftAP 上发送 Wi-Fi 凭证)和 `commit`(在目标网络上执行 `/configured`)。 |
| `scripts/ha_inject_pairing.py` | 将 `pairing_data` JSON 作为 `homekit_controller` 配置条目移植到 HA 中。 |
所有脚本均通过 CLI 参数进行配置,并且 **不包含任何机密或特定于站点的值** —— 你需要提供自己的 SSID、PSK、IP、设置码和 Thread dataset。你的 Thread 操作型 dataset 以及任何 `pairing_data` 文件均为机密信息;请勿提交或分享它们。
## 免责声明
这些方法使用逆向工程或未公开的 Apple 协议来配置 **你自己的** 设备。不提供任何担保。本项目与 Apple Inc. 或 Eve Systems 没有任何关联、认可或赞助。使用风险自负。
## 许可证
MIT —— 详见 [LICENSE](LICENSE)。
标签:Home Assistant, HomeKit, Thread, WiFi配置, 日志审计, 智能家居, 物联网, 逆向工具