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