对于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 | 车辆注销的流水号。 |