Skip to content

BLE Mesh 指令帧

帧结构

所有 BLE Mesh 指令均为 hex 字符串,格式:

53 <命令体> <签名>
  • 53 — 帧头
  • 命令体 — 由 genCommand() 生成
  • 签名 — 由 signCommand() 生成(防篡改)

msgType 定义

msgType说明
30控制指令(ble_in 下发)
80状态响应(ble_out 上报)
32查询指令
0c登录指令
04Mesh 配置
01BLE 名称设置
12扫描指令
92设备列表上报

genCommand 指令对照表

genCommand(type, data) 生成 53 + 命令体 + 签名。

命令体格式

30 <cmdLen> <naddr> <msgType> <参数>
字段长度说明
301 字节固定前缀
cmdLen1 字节后续数据长度(0405
naddr1 字节设备网络地址
msgType1 字节指令类型码
参数可变指令参数

开关控制

typecmdLenmsgType参数格式示例
controlSwitch04/0502/45<status_byte> / <status_byte><status_byte2>533004aabb02ff02 + sign
controlPlugcardSwitch0448<status_byte>插卡取电

status_byte 编码(4 路):

bit 7 6 5 4 3 2 1 0
     [4][3][2][1]    每路 2 bit: 10=开, 01=关, 00=不变

8 路开关(oe=true)使用 cmdLen=05、msgType=45,额外一个字节编码 5-8 路。

亮度控制

typecmdLenmsgType参数说明
setBrightnessPercentage0403<val>设置亮度百分比
increaseBrightnessPercentage042f<val>增加亮度
decreaseBrightnessPercentage0430<val>降低亮度
setBrightnessV2059c<index><val>设置子灯亮度
increaseBrightnessV205a1<index><val>增加子灯亮度
decreaseBrightnessV205a2<index><val>降低子灯亮度

色温控制

typecmdLenmsgType参数说明
setColorTemperature0404<val>设置色温
increaseColorTemperature0431<val>增加色温
decreaseColorTemperature0432<val>降低色温
setColorTemperatureV2059d<index><val>设置子灯色温
increaseColorTemperatureV205a5<index><val>增加子灯色温
decreaseColorTemperatureV205a6<index><val>降低子灯色温

窗帘控制

typecmdLenmsgType参数hex 示例
openCurtain040501533004aabb0501
closeCurtain040502533004aabb0502
stopCurtain040503533004aabb0503
openCurtainPos0406<pos>533004aabb0632 (pos=50)
closeCurtainPos0406<pos>同 openCurtainPos

空调控制

typecmdLenmsgType参数说明
openAC040202开空调
closeAC040201关空调
setACMode041d<mode>mode: 1=cold, 2=warm, 3=fan, 4=auto
setACTemperature041b<val>设置温度
increaseACTemperature0433<val>增加温度
decreaseACTemperature0434<val>降低温度
setFanSpeed041c<speed>speed: 1=high, 2=middle, 3=low, 4=auto
increaseFanSpeed043501增加风速
decreaseFanSpeed043601降低风速

红外控制

typecmdLenmsgType参数说明
ir_transmitter078f<ir_data>红外指令

ir_data 格式

<study><cmd_id><delay><reserved>
字段长度说明
study1 字节00=发送,01=学习
cmd_id1 字节红外指令码(见下表)
delay1 字节延时(单位 100ms)
reserved1 字节保留

红外指令码对照

动作TV机顶盒
turn_on0d2f
turn_off0d2f
increase_volume0426
decrease_volume0e30
set_volume_mute0022
increase_channel0527
decrease_channel0f31

其他指令

typecmdLenmsgType参数说明
setColorRgb064c<rgb>RGB 灯颜色
disableDevice04bc c0 26<01/00>禁用/启用设备

场景执行

genExecuteScene(id) → 53 30 04 bc c0 01 <id> <sign>
字段说明
53帧头
30控制指令
04数据长度
bc c0场景指令标识
01固定
<id>场景 ID(1 字节 hex)
<sign>签名

naddr 编码

encodeNaddr(data.naddr) 将设备的网络地址编码为 1 字节 hex。naddr 是 BLE Mesh 中的单播地址,范围 0x0001-0x7FFF,编码时取低 8 位。

签名

signCommand(cmd) 对命令体计算签名,附加在末尾。签名算法用于防止指令篡改,网关收到指令后会验证签名。