GitHub 仓库地址:https://github.com/jukanntenn/ha-xiaodu
这是一个把小度智能设备接入 Home Assistant 的自定义集成,内置巴法云(Bemfa)同步,接入后即可让小爱同学控制小度设备,再配合 Home Assistant 米家集成,即可实现小度设备与米家生态的联动。
动机
我家买的精装房,开发商预装的智能家居只支持小度:灯具、空调等设备全部接在小度体系内,只能通过小度 App 和小度音箱控制;而自购设备当然优先选择米家生态。于是两套系统互不相通,家里智能设备处于脑裂状态:
- 无法联动:小度设备进不了米家的自动化,米家的传感器也触发不了小度设备
- 无法语音控制:家里的语音入口是小爱同学,它控制不了小度设备
后来小米开源了 Home Assistant 米家集成,于是我将米家设备全部接入了 Home Assistant,然后又在 GitHub 找了一款将小度设备接入 Home Assistant 的社区集成 hass_xiaodu,可惜这个项目已停止维护,在新版 Home Assistant 上无法使用。
于是我决定自己开发一个。考虑到 AI 编程已经越来越成熟,我把这个项目作为一次 AI 辅助开发的实践,从分析小度云端 API 开始,逐步完成了整个集成,也就是本文要介绍的 ha-xiaodu。
项目特性
- 多品类设备支持:灯、插座、墙壁开关、空调、窗帘、智能门锁、晾衣架等多类设备
- 零门槛接入:只需填入百度 Cookie(BDUSS),全程 Config Flow 图形化配置
- 房间自动映射:按名称相似度将小度房间自动匹配到 Home Assistant 区域,映射可逐个调整
- 巴法云同步:内置巴法云同步,按集成引导完成接入后,在米家 App 中绑定巴法云账号并同步设备,即可用小爱同学语音控制所有已接入的设备
实际效果
支持的设备与实测情况
测试状态分两级:
- 自动化测试 ✓:基于真实抓取的设备数据在模拟环境中运行
- 真机实测 ✅:已在实际设备上验证
下表除开窗器外均已有自动化测试覆盖:
| 设备种类 | Home Assistant 实体 | 测试状态 | 备注 |
|---|---|---|---|
| 灯光 | 灯(Light) | ✅ | 家里的设备不支持亮度、色温等,真机仅验证了开关 |
| 插座 | 开关(Switch) | ✅ | |
| 空调 | 温控器(Climate) | ✅ | 家里的设备不支持温度调节,真机仅验证了开关 |
| 墙壁开关 | 开关(Switch) | ✓ | |
| 取暖器 | 开关(Switch) | ✓ | |
| 新风 | 开关(Switch) | ✓ | |
| 窗帘 | 窗帘(Cover) | ✓ | 支持位置控制 |
| 智能门锁 | 锁(Lock) | ✓ | 上锁 / 解锁 |
| 晾衣架 | 按钮(Button) | ✓ | 一键触发设备动作 |
| 开窗器 | 开关(Switch) | 尚未测试 |
受手头真机数量所限,很多品类的验证目前停留在自动化测试层面。如果你手上有这些设备,欢迎试用并反馈真机实测报告。
快速上手
以下是快速上手流程,更详细的安装和配置可参考 README。
- HACS → 集成 → 右上角菜单 → 自定义仓库,填入 https://github.com/jukanntenn/ha-xiaodu,类别选「集成」,然后搜索 Xiaodu 安装,重启 Home Assistant
- 设置 → 设备与服务 → 添加集成,搜索 Xiaodu,填入百度 BDUSS Cookie(获取方法见 README 的 FAQ)
- 依次选择要同步的家庭、勾选设备、确认房间映射,完成接入
- 可选:在配置流程中开启巴法云同步,再到米家 App 绑定巴法云账号,即可用小爱同学语音控制这些设备
欢迎试用、反馈与贡献
- 使用、配置、巴法云同步的问题 → Discussions 问答区;可复现的 bug 和具体功能请求 → Issues
- 任何变更(包括错字修正)都请先开 issue,PR 用
Fixes #NN关联;新手可以从 good first issue 入手
这个项目从第一行代码起就是 AI 辅助开发的产物,仓库也欢迎 AI 辅助贡献。我会降低 AI 参与贡献的门槛、明确贡献规则,力争把项目打造成一个 AI 友好的开源项目。
后续计划
接下来将修复 bug、稳定配置格式与行为,随着真机实测报告的积累扩大验证覆盖,并逐步支持更多设备品类。欢迎有条件的用户试用并反馈。
License 与免责声明
项目基于 MIT License 开源。
本项目开发初衷仅为学习及技术交流,切勿将其用于任何非法用途,否则一切后果自负,与项目的作者无关。
-- EOF --
-- EOF --
暂无评论,来抢沙发吧!