# 1.米家业务相关在线地址

小米/米家产品库 - Xiaomi Miot Spec (opens new window)

AIoT平台高仿真系统 - 设备租借 (opens new window)

AIoT认证测试平台 - 自动测试 (opens new window)

# 2.米家WiFi设备的架构和通信流程

# 2-1、整体架构

米家生态的通信流程通常分为三层:

1、设备端:WiFi模组(如ESP32/乐鑫方案)运行定制固件,支持与云端/App交互。

2、云端服务器:小米的IoT平台(Miot Cloud)负责设备管理、指令转发和数据存储。

3、客户端(插件/App):通过SDK或API与云端交互,间接控制设备。

# 2-2、关键通信流程

1、设备配网(Provisioning)

设备初次联网需通过「Smart Config」或「AP配网模式」:

  • Smart Config:手机App发送WiFi SSID/Password的加密广播包(UDP),设备监听并解析。

  • AP模式:设备开启热点,用户连接后通过HTTP页面提交WiFi信息。

  • 配网后:设备通过MQTT/TLS与小米云建立长连接,并上报设备信息(DID、Token等)。

2、认证与绑定

  • 设备唯一标识:每个设备拥有唯一的DID(Device ID)和Token(加密密钥)。

  • 绑定流程:用户通过App扫码或手动添加设备,云端验证Token后绑定设备到账户。

3. 通信协议

米家采用分层协议设计,核心协议包括:

  • 传输层:基于TLS加密的MQTT协议(长连接)+ HTTP(配置/OTA升级)。

  • 应用层:自定义二进制协议(部分设备开放HTTP API),数据格式通常为JSON或Protobuf。

MQTT 主题结构

设备与云端通过MQTT的Topic订阅/发布消息:

  • 指令下发:miio/command/{DID}

  • 状态上报:miio/report/{DID}

  • 设备心跳:miio/heartbeat/{DID}

4. 指令交互流程

以开关灯为例:

App/插件端:调用小米云API(如miot-spec.com)发送指令(JSON格式)。

云端:验证权限后,通过MQTT将指令转发到目标设备。

设备端:执行指令并返回状态码(如{"code":0}表示成功)。

云端:将状态同步到App/插件端。

5. 本地通信(可选)

部分设备支持局域网控制(绕过云端):

  • 协议:UDP广播 + 自定义二进制协议(如Xiaomi MIoT Spec Local)。

  • 发现设备:发送广播包到端口54321,设备响应IP和Token。

  • 指令加密:使用AES-CBC加密,密钥由Token派生。

# 2-3、插件端开发关键点

# 2-3-1、接入方式:

  • 云端API:通过小米开放平台(Open Cloud)申请API权限,使用OAuth 2.0授权。

  • 本地控制:需获取设备的Token和IP,直接发送加密指令(需逆向协议)。

# 2-3-2、SDK支持:

官方提供MiHome SDK或MIoT Spec,封装了协议细节。

第三方库(如python-miio)支持部分设备的本地控制。

# 2-3-3、数据格式示例(伪代码):

// 云端API指令
{
  "method": "set_properties",
  "params": [{
    "did": "123456",
    "siid": 2,  // 服务ID
    "piid": 1,  // 属性ID
    "value": true
  }]
}
1
2
3
4
5
6
7
8
9
10

# 2-4.安全机制

设备认证:Token绑定设备与账户,防止未授权访问。

通信加密:TLS 1.2(云端) + AES(本地)。

动态刷新:部分设备支持Token周期性更新。

# 3.联网方式对比

联网方式 功耗 覆盖范围 带宽 适用规模 典型应用
Wi-Fi 中(依赖路由) 中小型 智能电视、摄像头
Wi-Fi + BLE 中小型 智能音箱、中控面板
BLE 极低 短(10-50m) 点对点/少量设备 手环、智能锁
BLE-Mesh 低-中 中-大(接力) 中低 大型(数百节点) 商业照明、传感器网络
第三方云接入 依赖底层 全球 依赖网络 任意规模 跨区域设备管理
虚拟设备组 无影响 无限制 无影响 任意规模 场景化智能家居联动

# 选择建议

  • 低功耗+近距离:优先BLE。
  • 大规模组网:选择BLE-Mesh或Zigbee(未提及但常用)。
  • 高带宽+互联网接入:Wi-Fi或双模。
  • 快速商业化部署:第三方云接入。
  • 多设备协同:虚拟设备组+兼容协议(如Matter)。

# Wi-Fi、BLE、BLE Mesh 对比

接入方式 Wi-Fi BLE BLE Mesh
使用场景 有电源常供电、且用户多以 单个产品购买使用的产品,如空调、厨房电器 低功耗的硬件产品,如手环、按摩器等运动健康类产品 电工:灯、开关、插座、电风扇和窗帘
优势 上网简单,用户熟悉度高,不需要额外的 网关,可以和存量路由器直接通信 低成本、低功耗,近场与手机连接,不支持远程下行,支持上行(依赖网关) 低成本、低功耗,支持远程上下行 ( 依赖 Mesh 网关 ),和近场 BLE GATT 直连
缺点 成本高,功耗高 远程上行 需要依赖 BLE 网关,远程下行 不支持 需要依赖 Mesh 网关,上下行指令长度较小
  • 米家 BLE 设备通过网关只能上报数据,在没有网关时也可根据需要开发蓝牙直连功能控制设备。

  • 米家 BLE Mesh 设备实现远程控制需要有 Mesh 网关,在没有网关时也可根据需要开发蓝牙直连功能控制设备。

# Wi-Fi 和 Wi-Fi + BLE 对比

Wi-Fi + BLE 双模

  • BLE 角色:用于低功耗待机、设备发现和快速配网(如通过 BLE 广播 Wi-Fi 的 SSID/密码)。

  • Wi-Fi 角色:配网完成后切换至 Wi-Fi 进行高速数据传输。

BLE 一般只用于配网

传统Wi-Fi配网方式(AP模式/手动输入密码)

AP模式(热点配网)

  • 原理:

设备启动时,自身变成一个Wi-Fi热点(类似手机开热点)。

用户手机需要手动连接这个设备热点(如 Device_XXXX),然后在浏览器或App内输入家庭Wi-Fi的SSID和密码。

设备收到信息后,关闭热点模式,尝试连接家庭Wi-Fi。

  • 缺点:

用户需要 手动切换手机Wi-Fi(从家庭Wi-Fi切换到设备热点),操作繁琐。

实际案例对比

  • 场景1:智能灯泡配网

传统Wi-Fi方式:

1.断电重启灯泡,进入AP模式。

2.手机Wi-Fi列表里找到 Light_XXXX 并连接。

3.打开米家App,选择“添加设备”,手动输入家庭Wi-Fi密码。

4.等待配网,成功后手机需手动切换回家庭Wi-Fi。

BLE一键配网:

1.通电后,打开米家App,自动弹出“发现新设备”。

2.点击“确认配网”,App自动推送Wi-Fi信息。

3.灯泡连接成功,全程无需手动输入密码或切换Wi-Fi。

# 4. Wi-Fi设备和BLE-Mesh带网关设备的通信流程对比

# 4.1 Wi-Fi设备的通信流程

网络架构

直接连接互联网:Wi-Fi设备通过路由器直接接入云端,无需中间网关。

通信路径:设备 → 路由器 → 互联网(云服务器) → 用户手机/终端

通信特点

  • 协议栈:基于TCP/IP(HTTP/MQTT/CoAP),依赖Wi-Fi的IEEE 802.11标准。

  • 数据传输:

    • 设备与云端长连接(如MQTT心跳包),实时双向通信。
    • 用户通过手机App发送指令时,需经过云端中转(即使设备与手机在同一局域网)。
  • 优缺点:

    • ✅ 无需网关,部署简单。
    • ❌ 依赖互联网,断网时无法控制(除非设备支持本地局域网协议,如Home Assistant)。

典型场景
智能摄像头、Wi-Fi插座等直接联网设备。

# 4.2 BLE-Mesh带网关设备的通信流程

网络架构

分层组网:BLE-Mesh设备通过网关与云端交互,网关是本地与云端的桥梁。

通信路径:设备 → BLE-Mesh节点(中继) → 网关 → 互联网 → 用户手机/终端

通信特点

  • 协议栈:

    • 设备间:BLE Mesh协议(基于蓝牙4.0+,使用GATT广播或洪泛路由)。
    • 网关与云端:Wi-Fi/Ethernet + MQTT/HTTP。
  • 数据传输:

    • 本地控制:手机通过网关直接控制设备(不依赖云端,如米家蓝牙Mesh网关)。
    • 远程控制:指令需经网关上传至云端,再返回网关执行。
    • 自组网:节点间通过多跳中继传递数据,扩展覆盖范围。
  • 优缺点:

    • ✅ 断网时可本地控制(网关+手机在局域网内)。
    • ❌ 需额外网关硬件,成本较高。

典型场景
蓝牙Mesh灯泡、传感器等低功耗设备(如Yeelight吸顶灯)。

# 4.3 核心差异对比表

对比项 Wi-Fi设备 BLE-Mesh带网关设备
网络拓扑 星型(设备直连路由器) 网状(设备-网关-云端)
依赖网关
断网控制 通常不可用(除非支持本地协议) 可通过网关本地控制
覆盖范围 依赖路由器信号 通过Mesh节点中继扩展
功耗 高(持续Wi-Fi连接) 低(BLE间歇性通信)
典型协议 HTTP/MQTT over Wi-Fi BLE Mesh Profile + 网关转MQTT

# 4.4 通信流程示例

  • Wi-Fi智能灯泡控制

1.用户点击App开关 → 指令发送至云端。
2.云端通过互联网推送指令到家庭路由器。
3.路由器通过Wi-Fi将指令传给灯泡。

  • BLE-Mesh灯泡控制(带网关)

    • 场景1:远程控制
      1.用户点击App开关 → 指令发送至云端。
      2.云端推送指令到家庭网关(需网关在线)。
      3.网关通过BLE-Mesh将指令广播至灯泡(可能经多跳中继)。

    • 场景2:本地控制(断网时)
      1.手机直接连接网关(同一局域网)。
      2.网关通过BLE-Mesh本地控制灯泡。

lastUpdate: 4/19/2025, 2:33:34 PM