本文為介紹為智能家居設備制定的藍牙Mesh擴展消息定義,便于更多的智能家居設備通過藍牙Mesh技術來接入生活物聯網平臺。自有品牌項目與天貓精靈生態項目均遵循本協議。
背景信息
藍牙技術聯盟(Bluetooth SIG)定義的SIG Mesh的模型目前尚未覆蓋所有的智能家居設備,我們采用廠商自定義模型(Vendor Model)來實現智能家居設備的控制和狀態上報。在天貓精靈生態項目中,Mesh網關包括天貓精靈音箱與天貓精靈App。在自有品牌項目中,Mesh網關包括自有品牌項目Mesh網關產品與云智能App。注意以下部分消息僅在天貓精靈生態項目中支持。
Vendor Model
SIG定義Vendor Model格式為4字節(其中2字節的Company ID和2字節的Vendor-assigned Model ID),其中Alibaba的Company ID為0x01A8,如下表所示。
字段 | 字節數 | 說明 |
---|---|---|
16-bit Company Identifier | 2 | 0x01A8 |
16-bit vendor-assigned model Identifier | 2 | - |
下表為兩個VendorModel ID,用于消息擴展用。
Model Name | SIG Model ID |
---|---|
Vendor Model Server | 0x01A80000 |
Vendor Model Client | 0x01A80001 |
擴展消息操作碼
- 1字節Opcode的最高位為0,所以1字節Opcode的取值范圍從0x00-0x7e(其中0x7f用于將來擴展用)。
- 2字節Opcode第一字節的最高位為1,第2位為0,所以2字節OpCode的取值范圍從0x8000到0xbfff,都為SIG分配。
- 3字節Opcode第一字節的最高兩位均為1,后兩字節z是由SIG分配的Company ID,Company ID使用小端優先的方式傳輸,阿里巴巴使用的Company ID為0x01a8。6 bit的x可由廠商定義64個Opcodes。
Opcode Format | 說明 |
---|---|
0b0xxxxxxx(排除0b01111111) | 1字節Opcode。 |
0b01111111 | 保留,用于將來擴展。 |
0b10xxxxxx xxxxxxxx | 2字節Opcode。 |
0b11xxxxxx zzzzzzzz zzzzzzzz | 3字節Opcode。 |
操作碼定義
智能生活平臺藍牙Mesh擴展消息Opcode定義如下表所示。
Vendor Message Name | Opcode |
---|---|
Vendor Message Attribute Get | 0xD001A8 |
Vendor Message Attribute Set | 0xD101A8 |
Vendor Message Attribute Set Unacknowledged | 0xD201A8 |
Vendor Message Attribute Status | 0xD301A8 |
Vendor Message Attribute Indication | 0xD401A8 |
Vendor Message Attribute Confirmation | 0xD501A8 |
Vendor Message Attribute Indication To Tmall Genie | 0xDE01A8 |
Vendor Message Attribute Confirmation From Tmall Genie | 0xDF01A8 |
Vendor Message Transparent msg | 0xCF01A8 |
Vendor Message Transparent Indication | 0xCE01A8 |
Vendor Message Transparent ACK | 0xCD01A8 |
Vendor Model屬性消息結構
- Vendor Message Attribute Get
該消息用于Vendor Model Client獲取Vendor Model Server的一個或多個屬性值,消息格式如下。
字段 字節數 說明 Opcode 3 0xD001A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 讀取的Attribute類型 Attribute Type最多可有15個。當Vendor Model Server收到Attribute Get消息后,必須向Vendor Model Client回復Attribute Status。如Vendor Model Client在下發該命令之后未收到Vendor Model Server返回的Attribute Status,可以再次下發該指令。
- Vendor Message Attribute Set
該消息用于Vendor Model Client設置Vendor Model Server的一個或多個屬性值,消息格式如下。
字段 字節數 說明 Opcode 3 0xD101A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 設置的Attribute類型 Attribute Parameter N 設置的Attribute參數 Attribute Type和Attribute Parameter最多可有15個。當Vendor Model Server收到Attribute Set消息后,必須向Vendor Model Client回復Attribute Status。如Vendor Model Client在下發該命令之后未收到Vendor Model Server返回的Attribute Status,可以再次下發該指令。
- Vendor Message Attribute Set Unacknowledged
該消息用于Vendor model Client設置Vendor Model Server的一個或多個屬性值,消息格式如下。
字段 字節數 說明 Opcode 3 0xD201A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 設置的Attribute類型 Attribute Parameter N 設置的Attribute參數 Attribute Type和Attribute Parameter最多可有15個。當Vendor Model Server收到Attribute Set Unacknowledged消息后,不需要向Vendor Model Client發送Attribute Status消息。
- Vendor Message Attribute Status
該消息用于Vendor Model Server回復Attribute Get和Attribute Set命令或上報設備狀態信息給Vendor Model Client,消息格式如下。
字段 字節數 說明 Opcode 3 0xD301A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 上報的Attribute類型 Attribute Parameter N 上報的Attribute參數 Vendor Model Client收到Attribute Status后,不需要回復消息給Vendor Model Server。
- Vendor Message Attribute Indication
該消息用于Vendor Model Server發送屬性給Vendor Model Client,消息格式如下。
字段 字節數 說明 Opcode 3 0xD401A8 TID 1 Transaction Identifier,每條新消息遞增,回復控制命令的TID為下發消息的TID;設備狀態主動改變上報的TID從128到191循環。 Attribute Type 2 上報的Attribute類型 Attribute Parameter N 上報的Attribute參數 Attribute Type和Attribute Parameter最多可有15個。當Vendor Model Client收到Attribute Indication消息后,必須向Vendor Model Server回復Attribute Confirmation。如Vendor Model Server在發出該命令之后未收到Vendor Model Client回復的confirmation,可以再次發送該指令。
- Vendor Message Attribute Confirmation
該消息用于Vendor Model Client回復給Vendor Model Server,用于表示已收到Vendor Model Server發出的Indication,消息格式如下。
字段 字節數 說明 Opcode 3 0xD501A8 TID 1 Transaction Identifier,收到的Indication消息的TID Vendor Model Server收到Attribute Confirmation后,不需要回復消息給Vendor Model Client。
- Vendor Message Attribute Indication To TmallGenie
該消息用于天貓精靈生態項目Vendor Model Server發送屬性給Vendor Model Client,該消息由天貓精靈音箱直接處理,消息格式如下。
字段 字節數 說明 Opcode 3 0xDE01A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 上報的Attribute類型 Attribute Parameter N 上報的Attribute參數 Attribute Type和Attribute Parameter最多可有15個。當Vendor Model Client收到Attribute Indication消息后,必須向Vendor Model Server回復Attribute Confirmation。如Vendor Model Server在發出該命令之后未收到Vendor Model Client回復的Confirmation,可以再次發送該指令。
- Vendor Message Attribute Confirmation From TmallGenie
該消息用于天貓精靈生態項目Vendor Model Client回復給Vendor Model Server,用于表示天貓精靈音箱已收到Vendor Model Server發出的Indication,消息格式如下。
字段 字節數 說明 Opcode 3 0xDF01A8 TID 1 Transaction Identifier,每條新消息遞增 Attribute Type 2 設置的Attribute類型 Attribute Parameter N 設置的Attribute參數 Attribute Type和Attribute Parameter的個數從0到15。Vendor Model Server收到Attribute Confirmation后,不需要回復消息給Vendor Model Client。
Vendor Model透傳消息結構
- Vendor Message Transparent Message
該消息用于Mesh設備與天貓精靈音箱與天貓精靈App之間透傳數據,Payload數據格式由各廠家自己實現。
字段 字節數 說明 Opcode 3 0xCF01A8 TID 1 Transaction Identifier,每條新消息遞增,回復控制命令的TID為下發消息的TID;設備狀態主動改變上報的TID從0到255循環。 Payload N 由廠商自定義 - Vendor Message Transparent Indication
該消息用于天貓精靈生態項目中Vendor Model Server發送屬性給Vendor Model Client,消息格式如下。
字段 字節數 說明 Opcode 3 0xCE01A8 TID 1 Transaction Identifier,每條新消息遞增,回復控制命令的TID為下發消息的TID;設備狀態主動改變上報的TID從128到191循環。 Payload N 由廠商自定義 - Vendor Message Transparent ACK
該消息用于天貓精靈生態項目中Vendor Model Client回復給Vendor Model Server,用于表示已收到Vendor Model Server發出的Transparent Indication,消息格式如下。
字段 字節數 說明 Opcode 3 0xCD01A8 TID 1 Transaction Identifier,收到的Indication消息的TID。
Vendor Message 示例數據
- Vendor Model Client設置目標溫度
本示例為Vendor Model Client設置目標溫度為22攝氏度。
- Vendor Model Client下發設置目標溫度的Attribute Set命令。
0xD1 0xA8 0x01 0x01 0x0C 0x01 0x4B 0x73 Opcode TID Attribute Type Attribute Value 0xD101A8 01 目標溫度(0x010C) 目標溫度值:22攝氏度(0x734B = 295.15K) - Vendor Model Server設置目標溫度成功時返回的Attribute Status如下。
0xD3 0xA8 0x01 0x01 0x0C 0x01 0x4B 0x73 Opcode TID Attribute Type Attribute Value 0xD301A8 01 目標溫度(0x010C) 目標溫度值:22攝氏度(0x734B = 295.15K) - Vendor Model Server設置目標溫度失敗時返回的Attribute Status如下。
0xD3 0xA8 0x01 0x01 0x00 0x00 0x0C 0x01 0x80 Opcode TID Error Code Type Attribute Type Error Code 0xD301A8 01 0x0000 目標溫度(0x010C) 狀態碼:設備未準備好(0x80)
- Vendor Model Client下發設置目標溫度的Attribute Set命令。
- Vendor Model Client讀取數據
本示例為Vendor Model Client讀取前后位置,當前溫度,當前濕度。
- Vendor Model Client發送Attribute Get讀取前后位置、當前溫度、當前濕度屬性的值如下。
0xD0 0xA8 0x01 0x01 0x10 0x01 0x0D 0x01 0x0F 0x01 Opcode TID Attribute Type Attribute Type Attribute Type 0xD001A8 01 前后位置(0x0110) 當前溫度(0x010D) 當前濕度(0x010F) - Vendor Model Server讀取三個屬性成功時返回的Attribute Status如下。
D3 A8 01 01 10 01 32 0D 01 4B 73 0F 01 2D 00 Opcode TID Attribute Type Attribute Value Attribute Type Attribute Value Attribute Type Attribute Value 0xD301A8 01 前后位置(0x0110) 前后位置:50(0x32) 當前溫度(0x010D) 當前溫度:22攝氏度(0x734B=295.15K) 當前濕度(0x010F) 當前濕度:45%(0x002D) - Vendor Model Server讀取溫度失敗時返回的Attribute Status如下。
D3 A8 01 01 10 01 32 00 00 0D 01 81 0F 01 2D 00 Opcode TID Attribute Type Attr. Value Error Code Type Attribute Type Error Code Attribute Type Attribute Value 0xD301A8 01 前后位置 前后位置:50(0x32) 0x0000 當前溫度(0x010D) 錯誤碼:不支持的屬性(0x81) 當前濕度 當前濕度值:45%(0x002D)
- Vendor Model Client發送Attribute Get讀取前后位置、當前溫度、當前濕度屬性的值如下。
- Vendor Model Server上報溫度
本示例為Vendor Model Server發送溫度給Vendor Model Client。
- Vendor Model Server發送Attribute Indication上報溫度如下。
0xD4 0xA8 0x01 0x80 0x0D 0x01 0x4B 0x73 Opcode TID Attribute Type Attribute Value 0xD401A8 80 當前溫度(0x010D) 當前溫度值:22攝氏度(0x734B = 295.15K) - Vendor Model Client收到Attribute Indication后發送Confirmation如下。
0xD5 0xA8 0x01 0x80 Opcode TID 0xD501A8 80
- Vendor Model Server發送Attribute Indication上報溫度如下。
- Vendor Model Server上報漏水故障
本示例為Vendor Model Server上報漏水故障給Vendor Model Client。
- Vendor Model Server發送Attribute Indication上報漏水故障如下。
0xD4 0xA8 0x01 0x80 0x09 0xF0 0x00 0x00 0x00 0xAA Opcode TID Attribute Type Attribute Value Error Code Type Error Code Value 0xD401A8 80 事件 (0xF009) 故障事件(0x00) 錯誤碼屬性(0x0000) 錯誤碼:漏水故障(0xAA) - Vendor Model Client收到Attribute Indication后發送Confirmation如下。
0xD5 0xA8 0x01 0x80 Opcode TID 0xD501A8 80
- Vendor Model Server發送Attribute Indication上報漏水故障如下。