华为云用户手册

  • 典型场景 物联网平台 支持创建设备的“影子”。设备影子用于存储设备最新上报的服务属性数据,以及第三方应用对服务属性的配置(服务属性为设备Profile文件中定义的service属性)。若设备处于离线或异常状态时,第三方应用无法通过命令下发的方式向设备下发配置,此时可把要下发的配置设置到设备影子,当设备重新上线时,设备影子会把配置下发给设备。第三方应用可调用此接口在设备影子上配置要下发给设备的配置信息。 每个设备有且只有一个设备影子,设备影子上有desired和report区。 desired区用于存储对设备服务属性的配置。若设备当前在线,desired区的配置会即时下发给设备;若设备当前不在线,desired区的配置会在设备上线时再下发给设备。 report区用于存储设备最新上报的服务属性数据。当设备上报数据时,平台会把数据同步到设备影子的report区。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100425 The special deviceCapability is not exist. 设备模板不存在。 处理建议:请检查设备模板是否已在物联网平台上传。 200 100431 The serviceType is not exist. 服务类型不存在。 处理建议: 请检查该设备的Profile文件是否已上传到物联网平台。 请检查请求参数是否正确,或者serviceId在Profile文件中是否存在。 400 107002 The properties is empty in database. 设备属性不存在。 处理建议:请检查接口请求中的serviceId是否有误。 400 107003 The request properties is unknown. 设备状态为未知。 处理建议:请检查设备与平台的连接是否正常。 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 100443 The property is forbidden to write. 设备属性不可写。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 pp_key or access_token is invalid. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 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 100023 The data in dataBase is abnomal. 数据库异常。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 500 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 错误码 Http状态码 错误码 错误描述 说明 400 120015 Bad request error. 请求错误。 处理建议:请检查请求参数的是否有误。 400 123016 The parameter is error, targetversion not match with device. 参数不正确,目标版本与指定设备不匹配。 处理建议:请检查接口请求中deviceType、manufacturerName、model,与参数fileId指定的目标版本包信息是否一致。 400 123019 manufacturerName is null. 厂商名称内容为空。 处理建议:请检查接口请求中的manufacturerName是否为空。 400 123020 deviceType is null 设备类型内容为空。 处理建议:请检查接口请求中的deviceType是否为空。 400 123021 model is null. 设备型号内容为空。 处理建议:请检查接口请求中的model是否为空。 400 123022 deviceGroups and devices cannot be null together deviceGroups和devices不能同时为空。 处理建议:deviceGroups与devices必须要选择一个进行赋值。 400 123023 deviceGroups and devices cannot be exist together deviceGroups和devices不能同时存在。 处理建议:deviceGroups与devices只能选择一个进行赋值。 400 123024 The number of deviceGroups or devices reached upper limit deviceGroups或devices内容数量达到上限。 处理建议:请检查deviceGroups或devices的内容,数量不能超过256个。 400 123025 executeType is error or can not to be null. executeType有误或不能为空。 处理建议:请检查接口请求中的executeType是否为空或者是否有误。 400 123026 startTime or endTime is null or error. startTime或endTime为空或有误。 处理建议:请检查接口请求中的startTime和endTime是否为空或者格式有误。 400 123028 retryTimes is null or beyond the limit. retryTimes为空或超出上限。 处理建议:请检查接口请求中的retryTimes是否为空,或者不能小于1或者大于5。 400 123032 startTime can not be later than the endTime. startTime的时间不能比endTime晚。 处理建议:请检查接口请求中的startTime是否晚于endTime。 400 123033 startTime can not be earlier than the now. startTime的时间不能比当前时间早。 处理建议:请检查接口请求中的startTime是否早于当前时间。 400 123034 endtime must be greater than 5 minutes. endtime要比startTime大5分钟。 处理建议:请检查接口请求中的startTime和endTime间隔时间必须大于5分钟。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 404 123002 Device or package file not found. 设备或包不存在 处理建议:请检查接口请求中的fileId是否正确。
  • 参数说明 参数 必选/可选 类型 位置 描述 deviceId 必选 String path 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 cascade 可选 String query 仅当设备下连接了非直连设备时生效,不设置时可填写None。 “true”,级联删除,即删除直连设备和其下的非直连设备。 “false”,删除直连设备,但是不删其下的非直连设备,并将非直连设备的属性变为直连设备属性。 appId 可选 String query 如果是本应用的设备,此参数值可以填写None,否则填写授权应用的appId。 accessToken 必选 String header 填写鉴权接口获取的accessToken。
  • 错误码 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是否有误。 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 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 典型场景 设备Profile文件中定义了物联网平台可向设备下发的命令,第三方应用可调用此接口向设备下发命令,配置或修改设备的服务属性,以实现对设备的控制。 物联网平台有两种命令下发机制: 立即下发:平台收到命令后立即下发给设备,保证实时性,不保证串行性。 缓存下发:平台收到命令后缓存起来,在设备可达时排队串行下发,平台收到前一个命令的响应(模组自动回复的ACK)才会下发后一个命令,保证串行性,不保证实时性。 此接口适用于使用LWM2M/CoAP协议接入的设备,例如NB-IoT设备。
  • 错误码 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 发生拥塞,当前的网络已经被流控。 处理建议:请稍后重新再尝试下发命令。
  • 示例 1 2 3 4 5 6 7 8 9 10 //设置登录配置(deviceId,secret,appid是bind返回的参数) private void configLoginPara() { LoginConfig.setConfig(LoginConfig. LOG IN_CONFIG_DEVICEID, GatewayInfo.getDeviceID()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_APPID, GatewayInfo.getAppID()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_SECRET, GatewayInfo.getSecret()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_IOCM_ADDR, GatewayInfo.getHaAddress()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_IOCM_PORT, "8943"); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_MQTT_ADDR, GatewayInfo.getHaAddress()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_MQTT_PORT, "8883"); }
  • 参数说明 字段 必选/可选 类型 描述 key 必选 int 设备登录的配置项。 设备ID:LoginConfig.LOGIN_CONFIG_DEVICEID。 AppId:LoginConfig.LOG IN_CONFIG_APPID。 密码:LoginConfig.LOGIN_CONFIG_SECRET。 HTTP地址:LoginConfig.LOGIN_CONFIG_IOCM_ADDR。 HTTP端口:LoginConfig.LOGIN_CONFIG_IOCM_PORT。 MQTT地址:LoginConfig.LOGIN_CONFIG_MQTT_ADDR。 MQTT端口:LoginConfig.LOGIN_CONFIG_MQTT_PORT。 value 必选 String 设置的值。 设备ID:从绑定成功的回调中获取。 AppId:从绑定成功的回调中获取。 密码:从绑定成功的回调中获取。 HTTP地址:Agent Lite对接平台设备接入地址。 HTTP端口:8943。 MQTT地址:Agent Lite对接平台设备接入地址。 MQTT端口:8883。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 100217 The application hasn't been authorized. 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 200 100601 The number of device in the group has reach the max. 设备组内设备达到最大值。 处理建议:请确认当前设备组内的设备数量在maxDevNum设置值的范围内。 200 100602 The device group name has been used. 设备组的名字已经存在。 处理建议:请修改接口请求中的设备组名称。 200 100603 The device group is not existed. 设备组不存在。 处理建议:请检查设备组ID是否正确。 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. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 示例 1 HubService.deviceStatusUpdate(0, deviceId, “ONLINE”, “NONE”); 然后等待命令执行结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 开发者注册广播接收器对设备状态更新结果进行相应的处理 BroadcastReceiver mReceiverDevStatus; mReceiverDevStatus = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //获取IotaMessage IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(HubService.HUB_BROADCAST_IE_IOTAMSG); //获取响应的错误码 String result = iotaMsg.getString(HubService.HUB_IE_RESULT); String deviceId = iotaMsg.getString(HubService.HUB_IE_DEVICEID); ... return true; } } mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); IntentFilter filterDiscon= new IntentFilter(HubService. TOPIC_DEVSTATUS_UPDATA_RSP); mLocalBroadcastManager.registerReceiver(mReceiverDevStatus, filterDiscon);
  • 参数说明 字段 必选/可选 类型 描述 cookie 可选 int Cookie有效值为1-65535。 deviceId 必选 String 设备Id。 status 必选 String 设备状态。 在线: ONLINE。 离线: OFFLINE。 statusDetail 必选 String 设备状态详细信息。 无:NONE 配置等待:CONFIGURATION_PENDING。 通信错误:COMMUNICATION_ERROR。 配置错误:CONFIGURATION_ERROR。 桥接器离线:BRIDGE_OFFLINE。 固件升级:FIRMWARE_UPDATING。 循环任务:DUTY_CYCLE。 未激活:NOT_ACTIVE。
  • 返回结果 广播名称 广播参数 成员 描述 TOPIC_DEVSTATUS_UPDATA_RSP IotaMessage对象 (使用intent.getSerializableExtra(HubService.HUB_BROADCAST_IE_IOTAMSG)方法获取) HUB_IE_RESULT 设备状态更新结果。 HUB_IE_DEVICEID 设备ID。 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 执行失败。
  • 示例 1 2 3 4 5 6 7 // 开发者注册该函数进行解绑定直连设备的处理 HW_iNT Gateway_UnbindRecvtHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { // Delete Config file,free resources. return 0; } //初始化时进行注册该函数 HW_BroadCastReg(“IOTA_TOPIC_CMD_UNBIND_RECEIVE”, Gateway_UnbindRecvtHandler);
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 400 100216 The application input is invalid. 应用输入无效。 处理建议:请参考请求参数说明检查接口请求中的参数是否有误。 400 100419 The deviceId and gatewayId can't be both null. deviceId和gatewayId不能同时为空。 处理建议:请检查请求参数中deviceId和gatewayId是否填写。 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. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 参数说明 参数 必选/可选 类型 位置 描述 qddhInDTO 必选 QueryDeviceDesiredHistoryInDTO query 见下表QueryDeviceDesiredHistoryInDTO的描述。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。 QueryDeviceDesiredHistoryInDTO 参数 必选/可选 类型 位置 描述 appId 必选 String query 如果是本应用的设备,此参数值可以填写null,否则填写授权应用的appId。 deviceId 必选 String query 设备ID,用于唯一标识一个设备。 gatewayId 必选 String query 网关ID,用于标识一个网关设备。 serviceId 可选 String query 设备的服务标识。 property 可选 String query 服务属性数据。 pageNo 可选 Integer query 查询的页码。 值为空时查询内容不分页 值大于等于0的整数时分页查询 值等于0时查询第一页 pageSize 可选 Integer query 查询每页信息的数量, 缺省值:1。 startTime 可选 String query 查询产生时间在startTime之后的历史数据。时间格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。 endTime 可选 String query 查询产生时间在endTime之前的历史数据。时间格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。
  • 参数说明 字段 必选/可选 类型 描述 key 必选 int 设备登录的配置项。 设备ID:LoginConfig.LOGIN_CONFIG_DEVICEID。 AppId:LoginConfig.LOGIN_CONFIG_APPID。 密码:LoginConfig.LOGIN_CONFIG_SECRET。 HTTP地址:LoginConfig.LOGIN_CONFIG_IOCM_ADDR。 HTTP端口:LoginConfig.LOGIN_CONFIG_IOCM_PORT。 MQTT地址:LoginConfig.LOGIN_CONFIG_MQTT_ADDR。 MQTT端口:LoginConfig.LOGIN_CONFIG_MQTT_PORT。 value 必选 String 设置的值。 设备ID:从绑定成功的广播中获取。 AppId:从绑定成功的广播中获取。 密码:从绑定成功的广播中获取。 HTTP地址:Agent Lite对接平台地址。 HTTP端口:8943。 MQTT地址:Agent Lite对接平台地址。 MQTT端口:8883。
  • 示例 保存绑定响应消息携带的参数。 1 2 3 4 5 6 7 8 9 private void saveBindPara(IotaMessage iotaMsg) { LogUtil.i(this, TAG, "saveBindParaAndGotoLogin"); String appId = iotaMsg.getString(BindService.BIND_IE_APPID); String deviceId = iotaMsg.getString(BindService.BIND_IE_DEVICEID); String secret = iotaMsg.getString(BindService.BIND_IE_DEVICESECRET); String haAddress = AgentLiteUtil.get(ConfigName.platformIP); saveGatewayInfo(appId, deviceId, secret, haAddress, null); } 设置登录配置。 1 2 3 4 5 6 7 8 9 private void configLoginPara() { LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_DEVICEID, GatewayInfo.getDeviceID()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_APPID, GatewayInfo.getAppID()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_SECRET, GatewayInfo.getSecret()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_IOCM_ADDR, GatewayInfo.getHaAddress()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_IOCM_PORT, "8943"); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_MQTT_ADDR, GatewayInfo.getHaAddress()); LoginConfig.setConfig(LoginConfig.LOGIN_CONFIG_MQTT_PORT, "8883"); }
  • 错误码 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 发生拥塞,当前的网络已经被流控。
  • 参数说明 参数 必选/可选 类型 位置 描述 qdgmInDTO 必选 QueryDeviceGroupMembersInDTO query 见下表QueryDeviceGroupMembersInDTO的描述。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。 QueryDeviceGroupMembersInDTO 参数 必选/可选 类型 位置 描述 devGroupId 必选 String query 设备组ID,在增加设备组后由物联网平台返回获得。 accessAppId 可选 String query 如果是本应用的设备组,此参数值可以填写null,否则填写授权应用的appId。 pageNo 可选 Integer query 分页查询参数,默认值为0。 值为空时,查询内容不分页。 值为大于等于0的整数时,分页查询。 值为0时查询第一页。 pageSize 可选 Integer(1000) query 每页设备记录数量,默认值为10。
  • 错误码 Http状态码 错误码 错误描述 说明 400 107001 The serviceId is not exist. 服务ID不存在。 处理建议:请检查接口请求中的serviceId是否有误。 400 107002 The properties is empty in database. 设备属性不存在。 处理建议:请检查接口请求中的serviceId是否有误。 400 107003 The request properties is unknown. 设备状态为未知。 处理建议:请检查设备与平台的连接是否正常。 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. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 错误码 Http状态码 错误码 错误描述 说明 400 120015 Bad request error. 请求错误。 处理建议:请检查接口请求中fileId的格式是否正确。 403 1010009 app throttle exceed. 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 403 1010005 Invalid access token or appId. 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 404 123002 Device or package file not found. 设备或包不存在 处理建议:请检查接口请求中的fileId是否正确。
  • 1. Json编码 使用Json组件进行编码的流程。 创建Json编码对象。 1 HW_JSONOBJ HW_JsonObjCreate() 获取Json对象根节点。 1 HW_JSON HW_JsonGetJson(HW_JSONOBJ hjson) 往Json对象中添加键值对: 添加pcVal为字符串的Json键值对。 1 HW_INT HW_JsonAddStr(HW_JSON pstJson, HW_CHAR *pcKey, HW_CHAR *pcVal) 添加uiVal为整数的Json键值对。 1 HW_INT HW_JsonAddUint(HW_JSON pstJson, HW_CHAR *pcKey, HW_UINT uiVal) 添加bVal为bool的Json键值对。 1 HW_INT HW_JsonAddBool(HW_JSON pstJson, HW_CHAR *pcKey, HW_BOOL bVal) 添加值为Json的Json键值对,获取到的为子Json对象。 1 HW_JSON HW_JsonAddJson(HW_JSON pstJson, HW_CHAR *pcKey) 添加值为Json数组Json键值对,获取到的为子Json数组对象。 1 HW_JSON_ARRAY HW_JsonAddArray(HW_JSON pstJson, HW_CHAR *pcKey) 往Json数组中添加键值对: 添加pcVal为字符串的Json键值对。 1 HW_INT HW_JsonArrayAddStr(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_CHAR *pcVal) 添加uiVal为整数的Json键值对。 1 HW_INT HW_JsonArrayAddUint(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_UINT uiVal) 添加bVal为bool的Json键值对。 1 HW_INT HW_JsonArrayAddBool(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_BOOL bVal) 添加pucValue为Json的Json值,获取到的为子Json对象。 1 HW_JSON HW_JsonArrayAddJson(HW_JSON_ARRAY pstArray) 添加pucValue为Json数组Json键值对,获取到的为子Json数组对象。 1 HW_JSON_ARRAY *HW_JsonArrayAddArray(HW_JSON_ARRAY *pstArray) *HW_JsonArrayAddArray(HW_JSON_ARRAY *pstArray) 获取Json字符串 。 1 HW_CHAR *HW_JsonEncodeStr(HW_JSONOBJ hJson); 删除Json对象 。 1 HW_VOID HW_JsonObjDelete(HW_JSONOBJ *phJson); Json编码示例: 待解析Json格式: { "temperature":22, "otherInfo":{ "batteryLevel":"low" } } 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 /*变量定义*/ HW_JSONOBJ jsonObj; HW_JSON rootjson; HW_JSON json; HW_CHAR *pcJsonStr; /*创建Json编码对象*/ hJsonObj = HW_JsonObjCreate(); /*获取跟节点Json对象*/ rootjson = HW_JsonGetJson(hJsonObj); /*往根节点中添加键值对*/ HW_JsonAddUint(rootjson, "temperature", 22); /*从根节点中获取子Json对象*/ json = HW_JsonAddJson(rootjson, "otherInfo"); /*在子Json中添加键值对*/ HW_JsonAddStr(json, " batteryLevel", "low"); /*获取Json字符串*/ pcJsonStr = HW_JsonEncodeStr(hjsonObj); /*删除之前创建的Json编码对象,释放资源*/ HW_JsonObjDelete(&hJsonObj);
  • 示例 开发者调用设备状态更新接口。 1 HubService.deviceStatusUpdate(0, deviceId, “ONLINE”, “NONE”); 开发者调用设备状态更新接口需前要实现Agent Lite提供的观察者接口。 1 2 3 4 5 public class Subscribe implements MyObserver { public Subscribe (Observable hubService) { hubService. registerObserver (this); } @Override同设备添加
  • 参数说明 字段 必选/可选 类型 描述 cookie 可选 int Cookie有效值为1-65535。 deviceId 必选 String 设备Id。 status 必选 String 设备状态。 在线: ONLINE。 离线: OFFLINE。 statusDetail 必选 String 设备状态详细信息。 无:NONE。 配置等待:CONFIGURATION_PENDING。 通信错误:COMMUNICATION_ERROR。 配置错误:CONFIGURATION_ERROR。 桥接器离线:BRIDGE_OFFLINE。 固件升级:FIRMWARE_UPDATING。 循环任务:DUTY_CYCLE。 未激活:NOT_ACTIVE。
  • 参数说明 参数 必选/可选 类型 位置 描述 sdbdInDTO 必选 SubDeviceBusinessDataInDTO body 见下表SubDeviceBusinessDataInDTO 的描述。 accessToken 必选 String header 填写鉴权接口获取的accessToken。 SubDeviceBusinessDataInDTO 参数 必选/可选 类型 位置 描述 ownerFlag 可选 String(256) query callbackUrl的所有者标识。 ownerflag为“false”时,表示callbackUrl的owner是授权应用。 ownerflag为“true”时,表示callbackUrl的owner为被授权应用。 appId 可选 String(256) body 设备所属的appId。 notifyType 必选 String body 通知类型,第三方应用可以根据通知类型接收物联网平台推送的对应通知消息。 bindDevice(绑定设备,订阅后推送绑定设备通知) deviceAdded(添加新设备,订阅后推送注册设备通知) deviceInfoChanged(设备信息变化,订阅后推送设备信息变化通知) deviceDataChanged(设备数据变化,订阅后推送设备数据变化通知) deviceDatasChanged(设备数据批量变化,订阅后推送批量设备数据变化通知) deviceCapabilitiesChanged(设备服务能力变化,订阅后推送设备服务能力变化通知) deviceCapabilitiesAdded(设备服务能力增加,订阅后推送设备服务能力增加通知) deviceCapabilitiesDeleted(设备服务能力删除,订阅后推送设备服务能力删除通知) deviceDeleted(删除设备,订阅后推送删除设备通知) messageConfirm(消息确认,订阅后推送设备消息确认通知) commandRsp(命令响应,订阅后推送设备命令响应通知) deviceDesiredPropertiesModifyStatusChanged(设备影子状态变更,订阅后推送设备影子状态变更通知) callbackUrl 必选 String(1024) body 订阅的回调地址,用于接收对应类型的通知消息。 必须使用HTTPS信道回调地址,同时回调地址中必须指定回调地址的端口。例如:https://XXX.XXX.XXX.XXX:443/callbackurltest 说明: HTTP信道只可用于调测。 channel 可选 String(32) Body 传输通道,若是MQTT客户端订阅,则取值为MQTT,其他情况为HTTP。
  • 错误码 Http状态码 错误码 错误描述 说明 400 100222 The request callbackurl is illegal. 回调地址非法。 处理建议:请检查请求体中的回调地址是否有误。 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是否有误。 409 100227 The resource is conflicted. 资源冲突,通知类型已经被订阅。 处理建议:请检查要订阅的通知类型是否已被订阅。
  • 错误码 Http状态码 错误码 错误描述 说明 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 100225 The resource is not found 找不到资源。 处理建议:请检查订阅类型是否有误。
  • 参数说明 参数 必选/可选 类型 位置 描述 dbsInDTO 必选 DeleteBatchSubInDTO body 见下表DeleteBatchSubInDTO的描述。 accessToken 必选 String header 填写鉴权接口获取的accessToken。 DeleteBatchSubInDTO 参数 必选/可选 类型 位置 描述 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(固件升级结果通知) callbackUrl 可选 String(256) query 订阅回调的URL地址。
  • 错误码 Http状态码 错误码 错误描述 说明 200 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 200 101001 Resource doesn't exist. 资源不存在。 200 105001 The batchTask count has reached the limit. 单个用户未完成的批量任务数大于等于1个时,返回任务达到数量限制。 200 105002 The batchTask name has exist. 任务名字已存在。 处理建议:修改任务名称。 400 105201 The tagName and tagValue has been used on the platform. 平台已使用tagName和tagValue 。 400 50400 The input is invalid. 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 401 100028 The user has no right. 用户没有操作权限。 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 105202 The tag is not existed. 标签不存在。 500 100203 The application is not existed. 应用不存在。 处理建议: 请检查HTTP请求头域中携带的appId是否有误。 请检查请求路径(url)中传入的appId是否有误。 500 50252 Internal server error. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
共100000条