對於GB/T 32960協議雲網關裝置,裝置登入認證、登出和上報資料等訊息,可通過物聯網平台訊息轉寄的雲產品流轉功能轉寄到服務端(使用者的伺服器)。裝置上報資料訊息可通過訊息轉寄的AMQP訂閱功能推送至服務端。本文介紹訊息轉寄的使用說明,及對應訊息的Topic和資料格式。
使用說明
配置訊息轉寄時,您需注意以下事項:
僅支援在新版雲產品流轉功能下,為雲網關裝置配置資料流轉。具體操作,請參見配置資料流轉解析器。
GB/T 32960協議雲網關裝置不具備Topic訂閱能力,所以不支援將GB/T 32960協議雲網關裝置資料流轉至另一個Topic。
雲產品流轉的資料來源,僅支援自訂、裝置狀態變化通知和裝置生命週期變更,配置自訂資料來源時,需您手動輸入車輛裝置的VIN值。具體操作,請參見添加資料來源。
服務端訂閱中僅支援推送裝置上報訊息、裝置狀態變化通知和裝置生命週期變更的資料。具體操作,請參見配置AMQP服務端訂閱。
裝置對應訊息中參數取值符合標準GB/T 32960協議規範即可。詳細說明,請參見GB/T 32960的2016版本協議(通訊協議及資料格式)。
裝置登入通知
Topic:/sys/${productKey}/${deviceName}/device/message/uplink
。
{
"header": {
"command": 1,
"responseFlag": 254,
"vin": "onepart1234567891"
},
"body": {
"iccid": "12345678901234567890",
"month": 3,
"hour": 16,
"year": 23,
"subSystemNumber": 2,
"systemEncode": [
"12345678",
"87654321"
],
"systemEncodeLength": 8,
"day": 21,
"serialNo": 1,
"minute": 20,
"second": 12
}
}
參數名稱 | 資料類型 | 描述 |
header | Object | 訊息頭資料。 |
command | Integer | 命令標識。 |
responseFlag | Integer | 應答標識。 |
vin | String | 車輛的識別代碼。 |
body | Object | 訊息體資料。 |
iccid | String | 車輛的ICCID。 |
year | Integer | 車輛登入時間的年。 |
month | Integer | 車輛登入時間的月。 |
day | Integer | 車輛登入時間的日。 |
hour | Integer | 車輛登入時間的小時。 |
minute | Integer | 車輛登入時間的分鐘。 |
second | Integer | 車輛登入時間的秒數。 |
subSystemNumber | Integer | 可充電儲能子系統數。 |
systemEncode | List | 可充電儲能系統編碼列表。 |
systemEncodeLength | Integer | 可充電儲能系統編碼長度。 |
serialNo | Integer | 車輛登入的流水號。 |
裝置上下線狀態
Topic:/sys/${productKey}/${deviceName}/device/status/notify
。
裝置上線的資料格式:
{ "protocol": "gb32960", "status":"online", "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "productKey":"al12345****", "deviceName":"deviceName1234", "time":"2018-08-31 15:32:28.205", "utcTime":"2018-08-31T07:32:28.205Z", "lastTime":"2018-08-31 15:32:28.195", "utcLastTime":"2018-08-31T07:32:28.195Z", "clientIp":"192.0.2.1" }
裝置下線的資料格式:
{ "protocol": "gb32960", "status":"offline", "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "offlineReasonCode":427, "productKey":"al12345****", "deviceName":"deviceName1234", "time":"2018-08-31 15:32:28.205", "utcTime":"2018-08-31T07:32:28.205Z", "lastTime":"2018-08-31 15:32:28.195", "utcLastTime":"2018-08-31T07:32:28.195Z", "clientIp":"192.0.2.1" }
參數說明:
參數 | 類型 | 說明 |
protocol | String | GB/T 32960協議雲網關,取值 |
status | String | 裝置狀態。
|
iotId | String | 裝置在平台內的唯一標識。 |
offlineReasonCode | Integer | 裝置下線時,返回的錯誤碼。詳細說明,請參見裝置行為錯誤碼。 |
productKey | String | 裝置所屬產品的唯一標識。 |
deviceName | String | 裝置名稱。 |
lastTime | String | 該參數為歷史存量欄位,已無實際意義。 |
utcLastTime | String | |
time | String | 裝置上、下線的時間。 收到訊息的順序不是實際裝置上下線時間排序。裝置上下線順序需按照time具體值排序。 例如,您依次收到3條訊息:
這3條訊息展示了,裝置先下線,再上線,最後下線的過程。 |
utcTime | String | 裝置上、下線的UTC時間。 |
clientIp | String | 裝置公網出口IP。 |
裝置上報資料
Topic:/sys/${productKey}/${deviceName}/device/message/uplink
。
{
"header": {
"command": 123,
"responseFlag":1,
"vin":""
},
"body": {
"data":""
}
}
參數名稱 | 資料類型 | 描述 |
header | Object | 訊息頭資料。 |
command | Integer | 命令標識。 |
responseFlag | Integer | 應答標識。 |
vin | String | 車輛的識別代碼。 |
body | Object | 訊息體資料,data資料格式為Base64編碼格式。 |
裝置登出通知
Topic:/sys/${productKey}/${deviceName}/device/message/uplink
。
{
"header": {
"command": 4,
"responseFlag": 254,
"vin": "onepart1234567891"
},
"body": {
"month": 3,
"hour": 16,
"year": 23,
"day": 21,
"minute": 20,
"second": 12,
"serialNo": 1
}
}
參數名稱 | 資料類型 | 描述 |
header | Object | 訊息頭資料。 |
command | Integer | 命令標識。 |
responseFlag | Integer | 應答標識。 |
vin | String | 車輛的識別代碼。 |
body | Object | 訊息體資料。 |
year | Integer | 車輛登出時間的年。 |
month | Integer | 車輛登出時間的月。 |
day | Integer | 車輛登出時間的日。 |
hour | Integer | 車輛登出時間的小時。 |
minute | Integer | 車輛登出時間的分鐘。 |
second | Integer | 車輛登出時間的秒數。 |
serialNo | Integer | 車輛登出的流水號。 |