华为云用户手册

  • 典型场景 物联网平台 支持创建设备的“影子”。设备影子用于存储设备最新上报的服务属性数据,以及第三方应用对服务属性的配置(服务属性为设备Profile文件中定义的service属性)。若设备处于离线或异常状态时,第三方应用无法通过命令下发的方式向设备下发配置,此时可把要下发的配置设置到设备影子,当设备重新上线时,设备影子会把配置下发给设备。第三方应用可调用此接口在设备影子上配置要下发给设备的配置信息。 每个设备有且只有一个设备影子,设备影子上有desired和report区。 desired区用于存储对设备服务属性的配置。若设备当前在线,desired区的配置会即时下发给设备;若设备当前不在线,desired区的配置会在设备上线时再下发给设备。 report区用于存储设备最新上报的服务属性数据。当设备上报数据时,平台会把数据同步到设备影子的report区。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100418 The deviceData is not existed. 设备信息不存在。 处理建议: 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 Header中携带的appId有误,请确认该appId下是否有该deviceId。 如果URL中携带了可选参数appId,请检查该appId是否有误。 400 100022 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 403 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 100001 Internal server error. 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100220 Get AppKey from header failed. 获取appKey失败。 处理建议 : 请检查接口请求的header中是否携带appId。 503 100501 Congestion occurs, and the current network has been flow-controlled 发生拥塞,当前的网络已经被流控。
  • 错误码 Http状态码 错误码 错误描述 说明 403 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 404 100403 The device is not existed. 设备不存在。 处理建议:物联网平台未找到deviceId对应的设备,请检查deviceId是否有误。 500 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 示例 开发者调用该接口进行设备删除 。 1 HubService.rmvDevice(122, deviceId); 结果处理: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //java code BroadcastReceiver mRmvdeviceRsp; mRmvdeviceRsp = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //Do Something IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(HubService. HUB_BROADCAST_IE_IOTAMSG); int result = iotaMsg.getUint(HubService.HUB_IE_RESULT, 0); int cookie = iotaMsg.getUint(HubService.HUB_IE_COOKIE, 0); return; } }; mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); IntentFilter filterRmvDev = new IntentFilter(HubService.TOPIC_RMVDEV_RSP); mLocalBroadcastManager.registerReceiver(mDeldeviceRsp, filterRmvDev);
  • 返回结果 广播名称 广播参数 成员 描述 TOPIC_ RMVDEV_RSP IotaMessage (使用intent.getSerializableExtra(HubService.HUB_BROADCAST_IE_IOTAMSG)方法获取) HUB_IE_RESULT 删除设备结果。 HUB_IE_COOKIE Cookie有效值为1-65535。 HUB_IE_RESULT: 枚举项 枚举值 类型 描述 HUB_RESULT_SUC CES S 0 NA 添加/删除执行成功。 HUB_RESULT_DEVICE_EXIST 1 NA 设备已存在。 HUB_RESULT_DEVICE_NOTEXIST 2 NA 设备不存在。 HUB_RESULT_DEVICE_FAILED 255 NA 执行失败。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100603 The device group is not existed. 设备组不存在。 处理建议:请检查设备组ID是否正确。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 参数说明 参数 必选/可选 类型 位置 描述 quplInDTO 必选 QueryUpgradePackageListInDTO query 见下表QueryUpgradePackageListInDTO的描述。 accessToken 必选 String header 填写鉴权接口获取的accessToken。 QueryUpgradePackageListInDTO 参数 必选/可选 类型 位置 描述 fileType 可选 String(256) query 版本包类型。 “firmwarePackage”:固件包 “softwarePackage”:软件包 deviceType 可选 String(256) query 版本包适用的设备类型。 model 可选 String(256) query 版本包适用的设备型号。 manufacturerName 可选 String(256) query 版本包适用的设备厂商名称。 version 可选 String(256) query 版本包的版本号。 pageNo 可选 Integer query 分页查询参数,默认值“0”。 值为空时,查询内容不分页。 值为大于等于0的整数时,分页查询。 值为0时查询第一页。 pageSize 可选 Integer query 查询结果分页时的每页结果数量,取值范围1-100,默认值“10”。
  • 错误码 Http状态码 错误码 错误描述 说明 400 120015 Bad request error. 请求错误。 处理建议:请检查接口请求中pageNo和pageSize的值是否在正常范围内。 400 123029 pageNo or pageSize beyond the limit. pageNo或pageSize超出上限。 处理建议:修改pageNo或pageSize为合法取值。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。
  • 示例 开发者调用数据发布接口。 1 DataTransService. mqttDataPub(1211, "/huawei/v1/devices/336d9bac-9ebf-44e9-95cf-efac5f05da3a/services/Storage", 1, bstrBody); 开发者调用数据发布接口前需要实现Agent Lite提供的观察者接口。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class Subscribe implements MyObserver { public Subscribe (Observable dataTransService) { dataTransService. registerObserver (this); } @Override public void update(IotaMessage arg0) { // TODO Auto-generated method stub System.out.println("AgentLiteDataTrans收到通知:" + arg0); int mMsgType = arg0.getMsgType(); switch(mMsgType) { //数据上报应答 case IodevService.IODEV_MSG_DATA_REPORT_RSP: getDataReportAnswer(arg0); break; //被动接收命令 case IodevService.IODEV_MSG_RECEIVE_CMD: getCmdReceive(arg0); break; //MQTT消息推送 case IodevService.IODEV_MSG_MQTT_PUB_RSP: //logoutResultAction(iotaMsg); break; case IodevService.IODEV_MSG_MQTT_SUB_RSP: //TopicSubcribeResultAction(iotaMsg); break; case IodevService.IODEV_MSG_MQTT_DATA_RECV_RSP: //DataRecvAction(iotaMsg); break; default: break; } }
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100418 The deviceData is not existed. 设备信息不存在。 处理建议: 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 Header中携带的appId有误,请确认该appId下是否有该deviceId。 如果URL中携带了可选参数appId,请检查该appId是否有误。 200 100428 The device is not online. 设备不在线。 处理建议:请检查设备与物联网平台的连接是否正常。 200 100431 The serviceType is not exist. 服务类型不存在。 处理建议: 请检查该设备的Profile文件是否已上传到物联网平台。 请检查请求参数是否正确,或者serviceId在Profile文件中是否存在。 200 100434 The device command is not existed. 设备命令不存在。 处理建议:请检查接口请求中的设备命令ID是否正确。 200 100435 The device command already canceled, expired or executed, Cannot cancel. 设备命令已经取消,过期或执行,不能取消。 400 100022 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 100001 Internal server error. 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100023 The data in dataBase is abnomal. 数据库异常。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100220 Get AppKey from header failed. 获取appKey失败。 处理建议 : 请检查接口请求的header中是否携带appId。 500 101016 Get iotws address failed. 获取iotws地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 101017 Get newCallbackUrl from oss failed. 从oss获取新的回调地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 503 100501 Congestion occurs, and the current network has been flow-controlled 发生拥塞,当前的网络已经被流控。
  • 参数说明 参数 必选/可选 类型 位置 描述 udcInDTO 必选 UpdateDeviceCommandInDTO body 见下表UpdateDeviceCommandInDTO的描述。 deviceCommandId 必选 String path 要修改的命令ID,在调用创建设备命令接口后获得。 appId 必选 String query 如果是本应用的设备命令,此参数值可以填写null,否则填写授权应用的appId。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。 UpdateDeviceCommandInDTO 参数 必选/可选 类型 描述 status 必选 String 命令执行结果,可选值:CANCELED,撤销命令。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100418 The deviceData is not existed. 设备信息不存在。 处理建议: 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 Header中携带的appId有误,请确认该appId下是否有该deviceId。 如果URL中携带了可选参数appId,请检查该appId是否有误。 200 100428 The device is not online. 设备不在线。 处理建议:请检查设备与物联网平台的连接是否正常。 200 100431 The serviceType is not exist. 服务类型不存在。 处理建议: 请检查该设备的Profile文件是否已上传到物联网平台。 请检查请求参数是否正确,或者serviceId在Profile文件中是否存在。 400 100022 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 400 100223 Command counts has reached the upLimit. 缓存的命令数已到达限制。处于PENDING状态的命令条数不超过限定值。默认限定值为20。 处理建议:如当前平台缓存的命令还需执行,请让设备上报数据触发缓存命令的下发;如当前平台缓存的命令有不需要执行的命令,请调用“修改设备命令V4”接口,将命令的状态从PENDING修改未CANCELED。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 100612 Device is zombie. 设备为僵尸设备。(距离设备上次上线时间超过阈值,默认7天) 处理建议:请把设备上线后再重新下发命令。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 100001 Internal server error. 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100023 The data in dataBase is abnomal. 数据库异常。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100220 Get AppKey from header failed. 获取appKey失败。 处理建议 : 请检查接口请求的header中是否携带appId。 500 101016 Get iotws address failed. 获取iotws地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 101017 Get newCallbackUrl from oss failed. 从oss获取新的回调地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 503 100501 Congestion occurs, and the current network has been flow-controlled 发生拥塞,当前的网络已经被流控。 处理建议:请稍后重新再尝试下发命令。
  • 典型场景 设备Profile文件中定义了物联网平台可向设备下发的命令,第三方应用可调用此接口向设备下发命令,配置或修改设备的服务属性,以实现对设备的控制。 物联网平台有两种命令下发机制: 立即下发:平台收到命令后立即下发给设备,保证实时性,不保证串行性。 缓存下发:平台收到命令后缓存起来,在设备可达时排队串行下发,平台收到前一个命令的响应(模组自动回复的ACK)才会下发后一个命令,保证串行性,不保证实时性。 此接口适用于使用LWM2M/CoAP协议接入的设备,例如NB-IoT设备。
  • 错误码 Http状态码 错误码 错误描述 说明 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。
  • 示例 1 2 3 HW_BYTES bstrBody; ………… IOTA_MqttDataPub (1211, "/huawei/v1/devices/336d9bac-9ebf-44e9-95cf-efac5f05da3a/services/Storage", 1, bstrBody); 数据上报结果接收。 1 2 3 4 5 6 7 8 9 10 11 12 //开发者注册该函数进行设备服务数据上报后的处理 HW_iNT Device_DataPubResultHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { uiResult = HW_MsgGetUint(pstMsg, EN_IOTA_DATATRANS_IE_RESULT); if (HW_SUCCESS != uiResult) { // retry with uiCookie return 0; } return 0; } //在设备添加成功后立即注册服务数据上报结果接收广播 HW_BroadCastReg(“IOTA_TOPIC_MQTT_DATA_PUB_RSP”, Device_AddResultHandler);
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 400 100022 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 400 100440 The isSecure is invalid. isSecure参数值有误。 400 50400 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 403 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 403 500004 The amount of frozen devices has reached the limit. 被冻结设备已达到上限。 404 100403 The device is not existed. 设备不存在。 处理建议:物联网平台未找到deviceId对应的设备,请检查deviceId是否有误。 404 100418 The deviceData is not existed. 设备信息不存在。 处理建议: 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 Header中携带的appId有误,请确认该appId下是否有该deviceId。 如果URL中携带了可选参数appId,请检查该appId是否有误。 500 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 500 100441 The amount of nonSecure device has reached the limit. 非安全设备数量已达到上限。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 参数说明 参数 必选/可选 类型 位置 描述 qbsInDTO 必选 QueryBatchSubInDTO query 见下表QueryBatchSubInDTO的描述。 accessToken 必选 String header 填写鉴权接口获取的accessToken。 QueryBatchSubInDTO 参数 必选/可选 类型 位置 描述 appId 可选 String(256) query 设备或者规则等订阅内容主体所属的appId。 notifyType 可选 String(256) query 通知类型,第三方应用可以根据通知类型对消息分别进行处理。 bindDevice(绑定设备) deviceAdded(添加新设备) deviceInfoChanged(设备信息变化) deviceDataChanged(设备数据变化) deviceDatasChanged(设备数据批量变化) deviceCapabilitiesChanged(设备服务能力变化,订阅后推送设备服务能力变化通知) deviceCapabilitiesAdded(设备服务能力增加,订阅后推送设备服务能力增加通知) deviceCapabilitiesDeleted(设备服务能力删除,订阅后推送设备服务能力删除通知) deviceDeleted(删除设备) messageConfirm(消息确认) commandRsp(命令响应) deviceDesiredPropertiesModifyStatusChanged(修改设备影子状态变更) swUpgradeStateChangeNotify(软件升级状态变更通知) swUpgradeResultNotify(软件升级结果通知) fwUpgradeStateChangeNotify(固件升级状态变更通知) fwUpgradeResultNotify(固件升级结果通知) pageNo 可选 Integer query 分页查询参数。 值为空时,查询内容不分页 值大于等于0的时分页查询 值等于0时查询第一页 pageSize 可选 Integer query 分页查询参数,取值大于等于1的整数,缺省值:“10”。
  • 错误码 Http状态码 错误码 错误描述 说明 400 100224 The resource exceeds 1000, please refinement query conditions. 查到端资源超出1000条,请重新设定查询条件。 处理建议:请缩小查询条件范围。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100601 The number of device in the group has reach the max. 设备组内设备达到最大值。 处理建议:请确认当前设备组内的设备数量在maxDevNum设置值的范围内。 200 100603 The device group is not existed. 设备组不存在。 处理建议:请检查设备组ID是否正确。 400 100604 The device group request parameter is invalid. 请求参数不合法。 处理建议: 请检查接口请求中的设备ID是否有误。 请检查设备组是否达到最大设备数量限制。 400 50400 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 403 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的Token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 示例 开发者调用数据发布接口。 1 DataTransService. mqttDataPub(1211, "/huawei/v1/devices/336d9bac-9ebf-44e9-95cf-efac5f05da3a/services/Storage", 1, bstrBody); 开发者调用数据发布接口前需要实现AgentLite提供的观察者接口。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class Subscribe implements MyObserver { public Subscribe (Observable dataTransService) { dataTransService. registerObserver (this); } @Override public void update(IotaMessage arg0) { // TODO Auto-generated method stub System.out.println("AgentLiteDataTrans收到通知:" + arg0); int mMsgType = arg0.getMsgType(); switch(mMsgType) { //数据上报应答 case IodevService.IODEV_MSG_DATA_REPORT_RSP: getDataReportAnswer(arg0); break; //被动接收命令 case IodevService.IODEV_MSG_RECEIVE_CMD: getCmdReceive(arg0); break; //MQTT消息推送 case IodevService.IODEV_MSG_MQTT_PUB_RSP: //logoutResultAction(iotaMsg); break; case IodevService.IODEV_MSG_MQTT_SUB_RSP: //TopicSubcribeResultAction(iotaMsg); break; case IodevService.IODEV_MSG_MQTT_DATA_RECV_RSP: //DataRecvAction(iotaMsg); break; default: break; } }
  • 参数说明 字段 必选/可选 类型 描述 cookie 可选 int Cookie有效值1-65535。 requstId 必选 String 请求ID,匹配之前平台下发的服务命令。可以从接收设备命令的广播中获取requestId。 主动数据上报:requestId为NULL。 命令结果上报:当上报的数据匹配到某一次命令请求时,需要填写此次命令请求的请求ID。 deviceId 必选 String 设备ID。 serviceId 必选 String 服务ID。 serviceProperties 必选 String 服务属性。
  • 示例 用户根据Profile格式使用Json组件拼装服务属性的内容(serviceProperties)。 1 DataTransService.dataReport(1211, NULL, "xxxx_xxxx_xxxx_xxxx", "DoorWindow", “{\“status\”:\“OPEN\”}”); 数据上报结果接收: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //开发者注册广播接收器对设备服务数据上报结果进行相应的的处理 BroadcastReceiver mReportDataRsp; mReportDataRsp = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //Do Something IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(DataTransService. DATATRANS_BROADCAST_IE_IOTAMSG); int cookie = iotaMsg.getUint(DataTransService.DATATRANS_IE_COOKIE, 0); int ret = iotaMsg.getUint(DataTransService.DATATRANS_IE_RESULT, 0); return; } }; mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); IntentFilter filterReportData = new IntentFilter(DataTransService.TOPIC_DATA_REPORT_RSP); mLocalBroadcastManager.registerReceiver(mReportDataRsp, filterReportData);
  • 返回结果 广播名称 广播参数 成员 描述 TOPIC_DATA_REPORT_RSP IotaMessage (使用intent.getSerializableExtra(DataTransService.DATATRANS_BROADCAST_IE_IOTAMSG)方法获取) DATATRANS_IE_RESULT 数据上报结果。 DATATRANS_IE_COOKIE Cookie有效值为1-65535。
  • 示例 开发者需要实现Agent Lite提供的观察者接口。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class AgentLiteDataTrans implements MyObserver { public AgentLiteDataTrans (Observable dataTransService) { dataTransService. registerObserver (this); } @Override public void update(IotaMessage arg0) { // TODO Auto-generated method stub System.out.println("AgentLiteDataTrans收到通知:" + arg0); int mMsgType = arg0.getMsgType(); switch(mMsgType) { //数据上报应答 case IodevService.IODEV_MSG_DATA_REPORT_RSP: getDataReportAnswer(arg0); break; //被动接收命令 case IodevService.IODEV_MSG_RECEIVE_CMD: getCmdReceive(arg0); break; //MQTT消息推送 case IodevService.IODEV_MSG_MQTT_PUB_RSP: //logoutResultAction(iotaMsg); break; default: break; } }
  • 示例 用户根据Profile格式使用Json组件拼装服务属性的内容(pcServiceProperties)。 1 2 3 HW_UINT *uiLen; IOTA_ServiceDataReport(1211, NULL, "xxxx_xxxx_xxxx_xxxx" , "DoorWindow", “{\“status\”:\“OPEN\”}”); 数据上报结果接收。 1 2 3 4 5 6 7 8 9 10 11 12 //开发者注册该函数进行设备服务数据上报后的处理 HW_iNT Device_DataReportResultHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { uiResult = HW_MsgGetUint(pstMsg, EN_IOTA_DATATRANS_IE_RESULT); if (HW_SUCCESS != uiResult) { // retry with uiCookie return 0; } return 0; } //在设备添加成功后立即注册服务数据上报结果接收广播 HW_BroadCastReg(“IOTA_TOPIC_DATATRANS_REPORT_RSP/XXXX_XXXX_XXXX_XXXX”, Device_AddResultHandler);
  • 参数说明 字段 必选/可选 类型 描述 uiCookie 可选 unsign int Cookie有效值1-65535。 pcRequstId 必选 String 请求ID,用来匹配之前平台下发的服务命令。当该次数据上报为此前某一次命令请求的响应时,需要填写此次命令请求的请求ID,该参数必须带结束符‘\0’。 pcDeviceId 必选 String 设备ID,该参数必须带结束符‘\0’。 pcServiceId 必选 String 服务ID,该参数必须带结束符‘\0’。 pcServiceProperties 必选 String 服务属性,该参数必须带结束符‘\0’。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100602 The device group name has been used. 设备组名字已经存在。 处理建议:请修改接口请求中的设备组名称。 200 100607 The devGroup has reached the limit. 设备组数目达到限制。 处理建议:请检查已创建的设备组数量是否已达到License限定的数量上限。 400 100609 Too much devices to add. 添加太多设备至设备组。 处理建议:请确认deviceIds中的设备ID数量在maxDevNum设置值的范围内。 400 50400 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100418 The deviceData is not existed. 设备信息不存在。 处理建议: 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 Header中携带的appId有误,请确认该appId下是否有该deviceId。 如果URL中携带了可选参数appId,请检查该appId是否有误。 200 100428 The device is not online. 设备不在线。 处理建议:请检查设备与物联网平台的连接是否正常。 200 100431 The serviceType is not exist. 服务类型不存在。 处理建议: 请检查该设备的Profile文件是否已上传到物联网平台。 请检查请求参数是否正确,或者serviceId在Profile文件中是否存在。 400 100022 The input is invalid. 输入参数无效。 处理建议: 请确认startTime和endTime都不为空,且endTime比startTime晚。 请确认pageNo不为空,且pageNo大于0。 请检查pageSize不为空,且pageSize大于1。 403 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 500 100001 Internal server error. 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100023 The data in dataBase is abnomal. 数据库异常。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100220 Get AppKey from header failed. 获取appKey失败。 处理建议 : 请检查接口请求的header中是否携带appId。 500 101016 Get iotws address failed. 获取iotws地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 101017 Get newCallbackUrl from oss failed. 从oss获取新的回调地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 503 100501 Congestion occurs, and the current network has been flow-controlled 发生拥塞,当前的网络已经被流控。
  • 错误码 Http状态码 错误码 错误描述 说明 400 120015 Bad request error. 请求错误。 处理建议:请检查接口请求中fileId的格式是否正确。 400 123029 pageNo or pageSize beyond the limit. pageNo或pageSize超出上限。 处理建议:修改pageNo或pageSize为合法取值。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 404 123009 The requested task does not exist. 查询的任务不存在。 处理建议:请检查接口请求中的operationId内容是否正确。
  • 参数说明 参数 必选/可选 类型 位置 描述 qutlInDTO 必选 QueryUpgradeTaskListInDTO query 见下表QueryUpgradeTaskListInDTO的描述。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。 QueryUpgradeTaskListInDTO 参数 必选/可选 类型 位置 描述 operationType 可选 String(256) query 操作类型。 firmware_upgrade software_upgrade operationStatus 可选 String(256) query 操作任务的状态。 wait:等待 processing:正在执行 failed:失败 success:成功 stop:停止 deviceType 可选 String(256) query 操作任务针对的设备类型。 model 可选 String(256) query 操作任务针对的设备型号。 manufacturerName 可选 String(256) query 操作任务针对的设备厂家名称。 deviceId 可选 String(256) query 操作任务针对的设备ID。 pageNo 可选 Integer query 分页查询参数,默认值0。 值为空时,查询内容不分页。 值为大于等于0的整数时,分页查询。 值为0时查询第一页。 pageSize 可选 Integer query 查询结果分页时的每页结果数量,取值范围1-100,默认值10。
共100000条