爱意满满的作品展示区。
jackroyal

写了个 HA 集成支持米家/美的设备输出到小度智能音箱

  •  
  •   jackroyal · 3h 7m ago · 99 views

    背景

    由于家里的设备品牌主要是米家/美的/小度音箱, 多年来米家墙壁开关都只能用小爱同学控制, 而美的空调又只能用小度同学控制, 语音操作体验有点割裂, 借着现在 vibe coding 的春风, 写了一个 HA 集成xiaodu bridge来解决这个问题.

    核心原理: HA 集成提供 OAuth Server 和设备云服务, 利用小度音箱自定义的智能家居技能(云云接入), 实现米家/美的设备接入小度智能音箱, 同时外输给 iPhone homekit, 支持多 iPhone 手机控制.

    美的已经支持云厂商接入小度音箱, 为啥也要通过这个集成接入呢? 用过就知道, 美的云服务的状态同步比较差劲, 空调关着小度 app 还是开启状态.

    整体运转流程:

    米家 / 美的 / Sonoff / 其他 HA 集成
            ↓
    Home Assistant 实体 + 区域
            ↓
    xiaodu bridge ( DuerOS 语义模型 + OAuth 服务端)
            ↓
    小度音箱 / 小度 App / Homekit Bridge
    

    实现方式

    集成在 HA 里直接充当 DuerOS 智能家居的 OAuth 服务端(授权 / Token / WebService 三个端点)。核心是两件事:

    1. 把 HA 实体组装成 DuerOS 语义设备:浴霸是一台浴霸(照明/取暖/换气聚合),洗衣机、晾衣杆、扫地机有专用档案,灯、开关、插座、空调、窗帘、风扇、传感器走通用合成
    2. 状态双向流动:控制请求经 WebService 转成 HA 服务调用,状态变化主动 Change Report 推给小度

    主要特点

    • 语义设备模型:复合设备(浴霸等)= 一台小度设备,不是一堆零散开关
    • 房间分组:HA 区域同步成小度房间,「打开客厅的灯」直接可用
    • 定时开关持久化,HA 重启不丢
    • 单实例 + 最小权限 token:token 只能打本集成端点,碰不到 HA API
    • 纯 Python 、无第三方依赖,276 个测试用例

    安装

    要求 HA 2025.1+,小度云端能访问 HA 的公网 HTTPS 地址。

    1. HACS → Custom repositories 添加 https://github.com/Jackroyal/xiaodu-bridge (还没上架 HACS 默认商店)
    2. 重启 HA → 添加集成 → 填 OAuth 配置(先在小度开发者平台建技能,把三个地址填回去)
    3. 集成里选要暴露的设备 → 小度侧触发发现

    链接

    github 仓库:https://github.com/Jackroyal/xiaodu-bridge

    我家的其他设备接入到 HA 中: https://mp.weixin.qq.com/s/vCMu2KMSknTfMnio1MwWNA

    xiaodu bridge 详细的安装部署记录:https://mp.weixin.qq.com/s/ITsERPt-xfy3WXboo9siJw?

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   937 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:20 · PVG 03:20 · LAX 12:20 · JFK 15:20
    ♥ Do have faith in what you're doing.