- 最新动态
- 产品介绍
- 快速入门
- 用户指南
- 开发指南
-
API参考
- 北向API参考
- 北向JAVA SDK API参考
- 北向PHP SDK API参考
- 北向Python SDK API参考
- Agent Lite API参考(Android)
- Agent Lite API参考(C)
- Agent Lite API参考(Java)
- MQTT接口参考
-
常见问题
- 常见问题导航
- 产品规格
- 产品使用
-
二次开发
-
产品开发常见问题
- Profile定义
- 插件开发
-
设备开发
- 在物联网平台注册完设备,真实设备无法接入物联网平台
- 终端设备接入物联网平台时,出现513错误
- 物联网平台支持的DTLS加密算法有哪些
- AT+CGDCONT=1,"IP","CTNB" 中 CTNB 是什么
- 设备如何选择PSM、DRX、eDRX模式
- 设备收不到平台下发的命令
- 设备已经上报数据,但是物联网平台未收到
- 设备上报了数据,且日志无报错,但在历史数据中没有数据
- 设备收到命令需要多长时间
- 设备上报数据后,收不到物联网平台回复的数据上报响应
- 设备在一个位置上报数据成功,在另一个位置上报失败
- 设备上报了命令执行结果,但是命令状态未切换为成功
- 物联网平台支持大小端模式切换吗
- 省电模式DRX模式,设备1-2天未上报数据,下发命令失败
-
应用开发常见问题
-
接口调用
- 本地可以成功调用物联网平台的鉴权接口,但是在应用服务器调用失败
- 应用服务器调用接口报错如何定位
- 在线应用模拟器下发命令失败
- 模拟器下发命令成功,调用API下发命令失败
- 应用服务器下发命令失败,收到403的错误,提示回调地址冲突
- 应用服务器如何下发缓存命令
- 历史命令中显示的超期是什么意思
- 物联网平台下发命令有重发机制吗
- 历史命令中显示超时是什么意思
- 平台能批量下发命令吗
- 平台接口只能用Java调用吗
- 物联网平台的命令状态总共有几种
- 调用注册设备接口失败
- 之前调用接口成功,一段时间后参数不变,但是调用接口失败
- 之前对单个设备下发命令成功,一段时间后下发命令失败
- 历史数据中有数据,但是调用查询设备历史数据接口没有返回值
- 通过调用接口在物联网平台注册设备,一段时间后注册设备被平台删除
-
订阅与推送
- 调用订阅接口时,提示回调地址不合法
- 调用删除单个订阅接口时,subscriptionId如何获取
- 应用服务器收不到平台推送的数据
- 如何导出https推送证书
- 设备数据变化通知和批量设备数据变化通知的区别是什么
- 应用服务器如何获取设备的IMEI号
- 应用服务器收到数据,但是平台显示推送失败
- 历史数据中有数据,但是有时能推送到应用服务器,有时推不到
- 应用服务器如何获取物联网平台推送消息时使用的地址
- 物联网平台是否具有重推机制
- 应用服务器如何收到命令状态变化的通知
- 已订阅消息确认通知和命令响应通知,为何应用服务器收不到推送消息
- 物联网平台只支持HTTPS的回调地址吗
- 在同一个应用下,物联网平台可以将不同设备上报的数据,推送到两个服务器吗
- 订阅地址可以用域名吗
- 回调地址可以修改吗
- 调用订阅接口时,回调地址如何获取
-
接口调用
- 软/固件升级常见问题
- 其他常见问题
-
产品开发常见问题
- 通用参考
展开导读
链接复制成功!
decode接口说明
decode接口的入参binaryData为设备发过来的CoAP报文的payload部分。
设备的上行报文可以分为两种情况:设备上报数据、设备对平台命令的应答(对应下图中的消息①和⑤;消息④是模组回复的协议ACK,无需插件处理)。两种情况下解码输出的字段不同。
字段名 |
类型 |
参数描述 |
是否必填 |
---|---|---|---|
identifier |
String |
设备在应用协议里的标识,IoT平台通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。 |
否 |
msgType |
String |
固定值"deviceReq",表示设备上报数据。 |
是 |
hasMore |
Int |
表示设备是否还有后续数据上报,0表示没有,1表示有。 后续数据是指,设备上报的某条数据可能分成多次上报,在本次上报数据后,IoT平台以hasMore字段判定后续是否还有消息。hasMore字段仅在PSM模式下生效,当上报数据的hasMore字段为1时,IoT平台暂时不下发缓存命令,直到收到hasMore字段为0的上报数据,才下发缓存命令。如上报数据不携带hasMore字段,则IoT平台按照hasMore字段为0处理。 |
否 |
data |
ArrayNode |
设备上报数据的内容(详见表2)。 |
是 |
字段名 |
类型 |
参数描述 |
是否必填 |
---|---|---|---|
serviceId |
String |
服务的id。 |
是 |
serviceData |
ObjectNode |
一个服务的数据,具体字段在profile里定义。 |
是 |
eventTime |
String |
设备采集数据时间(格式:yyyyMMddTHHmmssZ)。 如:20161219T114920Z。 |
否 |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
{ "identifier":"123", "msgType":"deviceReq", "hasMore":0, "data": [{"serviceId":"NBWaterMeterCommon", "serviceData":{ "meterId":"xxxx", "dailyActivityTime":120, "flow": "565656", "cellId":"5656", "signalStrength":"99", "batteryVoltage":"3.5" } "eventTime":"20160503T121540Z"} , {"serviceId":"waterMeter", "serviceData":{"internalTemperature":256}, "eventTime":"20160503T121540Z"} ] } } |
字段名 |
类型 |
参数描述 |
是否必填 |
---|---|---|---|
identifier |
String |
设备在应用协议里的标识,IoT平台通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。 |
否 |
msgType |
String |
固定值"deviceRsp",表示设备的应答消息。 |
是 |
mid |
Int |
2字节无符号的命令id。在设备需要返回命令执行结果(deviceRsp)时,用于将命令执行结果(deviceRsp)与对应的命令进行关联。 IoT平台在通过encode接口下发命令时,把IoT平台分配的mid放入码流,和命令一起下发给设备;设备在上报命令执行结果(deviceRsp)时,再将此mid返回IoT平台。否则IoT平台无法将下发命令和命令执行结果(deviceRsp)进行关联,也就无法根据命令执行结果(deviceRsp)更新命令下发的状态(成功或失败)。 |
是 |
errcode |
Int |
请求处理的结果码,IoT平台根据该参数判断命令下发的状态。 0表示成功,1表示失败。 |
是 |
body |
ObjectNode |
命令的应答,具体字段由profile定义。
说明:
body体不是数组。 |
否 |
示例:
1 2 3 4 5 6 7 8 9 |
{ "identifier": "123", "msgType": "deviceRsp", "mid": 2016, "errcode": 0, "body": { "result": 0 } } |