华为云用户手册

  • 错误码 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);
  • 参数说明 字段 必选/可选 类型 描述 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。
  • 示例 开发者调用设备状态更新接口。 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同设备添加
  • 错误码 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. 资源冲突,通知类型已经被订阅。 处理建议:请检查要订阅的通知类型是否已被订阅。
  • 参数说明 参数 必选/可选 类型 位置 描述 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。
  • 参数说明 参数 必选/可选 类型 位置 描述 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状态码 错误码 错误描述 说明 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 找不到资源。 处理建议:请检查订阅类型是否有误。
  • 错误码 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. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 错误码 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. 资源冲突,通知类型已经被订阅。 处理建议:请检查要订阅的通知类型是否已被订阅。
  • 参数说明 参数 必选/可选 类型 位置 描述 sddInDTO 必选 SubDeviceDataInDTO body 见下表SubDeviceDataInDTO的描述。 ownerFlag 必选 String(256) query callbackUrl的所有者标识,不指定该标识可填写null。 ownerflag为false时,表示callbackUrl的owner是授权应用。 ownerflag为true时,表示callbackUrl的owner为被授权应用。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。 SubDeviceDataInDTO 参数 必选/可选 类型 位置 描述 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信道只可用于调测。 appId 可选 String(256) body 设备或者规则等订阅内容主体所属的appId。 channel 可选 String(32) Body 传输通道,若是MQTT客户端订阅,则取值为MQTT,其他情况为HTTP。
  • 返回结果 广播名称 广播参数 成员 描述 IOTA_TOPIC_BIND_RSP HW_MSG对象 EN_IOTA_BIND_IE_TYPE 绑定返回结果。 EN_IOTA_BIND_IE_TYPE: 枚举项 枚举值 类型 描述 EN_IOTA_BIND_IE_RESULT 0 EN_IOTA_BIND_RESULT_TYPE 绑定结果。 EN_IOTA_BIND_IE_DEVICEID 1 String 平台分配的逻辑设备ID。 EN_IOTA_BIND_IE_DEVI CES ECRET 2 String 设备接入的鉴权密钥。 EN_IOTA_BIND_IE_APPID 3 String 开发者应用ID。 EN_IOTA_BIND_IE_IOCM_ADDR 4 String 服务器地址。 EN_IOTA_BIND_IE_IOCM_PORT 5 unsigned int 服务器端口。 EN_IOTA_BIND_IE_MQTT_ADDR 6 String MQTT服务器地址。 EN_IOTA_BIND_IE_MQTT_PORT 7 unsigned int MQTT服务器端口。 EN_IOTA_BIND_RESULT_TYPE: 枚举项 枚举值 描述 EN_IOTA_BIND_RESULT_SUCCESS 0 绑定成功。 EN_IOTA_BIND_RESULT_DEV_NOT_BIND 1 未扫码。 EN_IOTA_BIND_RESULT_VERIFYCODE_EXPIRED 2 验证码过期。 EN_IOTA_BIND_RESULT_FAILED 255 其余失败。
  • 示例 调用IOTA_Bind()接口进行设备绑定。 1 2 3 4 5 6 7 8 9 //开发者调用该接口进行设备绑定 ST_HW_DEVICE_INFO stDeviceInfo stDeviceInfo.pcNodeId = “SN Number”; stDeviceInfo.pcManufacturerId = “Huawei”; stDeviceInfo.pcDeviceType = “Gateway”; stDeviceInfo.pcModel = “HW_GW101”; stDeviceInfo.pcProtocolType = “HuaweiM2M”; IOTA_Bind(“SN Number”, &stDeviceInfo); 当设备成功绑定之后,Agent Lite会返回给UI如下几个参数,需要UI进行持久化存储,设备登录前需要提前进行配置。 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 //注册广播接收处理函数 HW_BroadCastReg(“IOTA_TOPIC_BIND_RSP”, Device_RegResultHandler); // 开发者注册该函数处理绑定结果 HW_iNT Device_RegResultHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { HW_cHAR *pcDeviceId; HW_cHAR *pcDeviceSecret; HW_cHAR *pcAppId; HW_cHAR *pcIoCMServerAddr; HW_UiNT uiIoCMServerPort; HW_cHAR *pcMqttServerAddr; HW_UiNT uiMqttServerPort; If (HW_SUCCESS != HW_MsgGetUint(pstMsg, EN_IOTA_BIND_IE_RESULT, 0)) { Return 0; } pcDeviceId = HW_MsgGetStr(pstMsg, EN_IOTA_BIND_IE_DEVICEID); pcDeviceSecret = HW_MsgGetStr(pstMsg, EN_IOTA_BIND_IE_DEVICESECRET); pcAppId = HW_MsgGetStr(pstMsg, EN_IOTA_BIND_IE_APPID); pcIoCMServerAddr = HW_MsgGetStr(pstMsg, EN_IOTA_ BIND_IE_IOCM_ADDR ); uiIoCMServerPort = HW_MsgGetUint(pstMsg, EN_IOTA_BIND_IE_IOCM_PORT, 0); pcMqttServerAddr = HW_MsgGetStr(pstMsg, EN_IOTA_ BIND_IE_IOCM_ADDR ); uiMqttServerPort = HW_MsgGetUint(pstMsg, EN_IOTA_BIND_IE_IOCM_PORT, 0); Config_save(“DeviceId”,pcDeviceId); Config_save(“DeviceSecret”,pcDeviceSecret); Config_save(“AppId”,pcAppId); Config_save(“IoCMAddr”,pcIoCMServerAddr); Config_save(“IoCMPort”,pcIoCMServerPort); Config_save(“MqttAddr”,pcMqttServerAddr); Config_save(“MqttPort”,pcMqttServerPort); return 0; }
  • 参数说明 字段 必选/可选 类型 描述 pcVerifyCode 必选 String 设备绑定验证码,pcVerifyCode必须带结束符‘\0’。 如果通过控制台注册设备,则pcVerifyCode填写为设备注册时设置的preSecret(预置密钥)。 如果通过开发中心注册设备,则pcVerifyCode填写为设备注册时设置的nodeId(设备标识)。 pstInfo 必选 ST_IOTA_DEVICE_INFO 设备信息,pstInfo结构体中的成员必须带结束符‘\0’。 ST_IOTA_DEVICE_INFO: 字段 必选/可选 类型 描述 pcNodeId 必选 String 关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。 pcName 可选 String 设备名称。 pcDescription 可选 String 设备描述。 pcManufacturerId 必选 String 厂商ID。 pcManufacturerName 可选 String 厂商名。 pcMac 可选 String 设备MAC地址。 pcLocation 可选 String 设备的位置。 pcDeviceType 必选 String 设备类型。 pcModel 必选 String 型号。 直连设备:与Profile中定义的model保持一致即可。 Z-Wave设备: ProductType + ProductId,格式(使用16 进制): XXXX-XXXX 补0对齐,如001A-0A12,其他协议再定。 pcSwVersion 可选 String 软件版本。 Z-Wave:主版本号.次版本号, 如:1.1 pcFwVersion 可选 String 固件版本。 pcHwVersion 可选 String 硬件版本。 pcProtocolType 必选 String 协议类型 :Z-Wave。 pcBridgeId 可选 String 表示设备通过哪个Bridge接入平台。 pcStatus 可选 String 表示设备是否在线。 ONLINE 在线。 OFFLINE 离线。 statusDetail 可选 String 状态详情,如果pcStatus不为空,则该参数必选。 参数值: 无:NONE。 配置等待:CONFIGURATION_PENDING。 通信错误:COMMUNICATION_ERROR。 配置错误:CONFIGURATION_ERROR。 桥接器离线:BRIDGE_OFFLINE。 固件升级:FIRMWARE_UPDATING。 循环任务:DUTY_CYCLE。 未激活:NOT_ACTIVE。 pcMute 可选 String 表示设备是否被屏蔽。 TRUE FALSE
  • 接口功能 设备第一次接入物联网平台时需要进行绑定操作,上层应用通过调用该接口传入设备序列号或者MAC地址以及设备信息来绑定到物联网平台。 在绑定前需要调用绑定配置接口设置物联网平台的IP与端口,对应参数配置为EN_IOTA_CFG_IOCM_ADDR和EN_IOTA_CFG_IOCM_PORT。 设备绑定是指设备第一次接入物联网平台的过程,需要开发者先在物联网平台注册直连设备,之后在设备上发起绑定操作,将设备绑定到物联网平台上。如果未在物联网平台注册该设备,则绑定操作会失败,Agent Lite将会等待一段时间继续尝试。
  • 错误码 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. 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。
  • 参数说明 参数 必选/可选 类型 位置 描述 deviceId 必选 String path 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 appId 必选 String query 如果是本应用的设备,此参数值可以填写null,否则填写授权应用的appId。 accessToken 必选 String header 如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。
  • 示例 调用设备绑定接口。 1 BindService.bind(new IotaDeviceInfo("nodeId", "manufacturerId", " Gateway", "model", "protocolType")); 接收设备绑定响应消息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //当设备成功绑定之后,Agent Lite会返回给UI如下几个参数,需要UI进行持久化存储,设备登录前需要提前进行配置 BroadcastReceiver mBindRsp; mBindRsp = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //Do Something IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(BindService.BIND_BROADCAST_MSG_IE_IOTAMSG); int result = iotaMsg.getUint(BindService.BIND_IE_RESULT, 0); String deviceId = iotaMsg.getString(BindService.BIND_IE_DEVICEID); String Secret = iotaMsg.getString(BindService.BIND_IE_DEVICESECRET); String Appid = iotaMsg.getString(BindService.BIND_IE_APPID); String haAddr = iotaMsg.getString(BindService.BIND_IE_HA_ADDR); String lvsAddr = iotaMsg.getString(BindService.BIND_IE_LVS_ADDR); return; } }; mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); IntentFilter filterBind = new IntentFilter(BindService.TOPIC_BINDDEVICE_RSP); mLocalBroadcastManager.registerReceiver(mBindRsp, filterBind);
  • 返回结果 广播名称 广播参数 成员 描述 TOPIC_BINDDEVICE_RSP IotaMessage对象 (使用intent.getSerializableExtra(BindService.BIND_BROADCAST_MSG_IE_IOTAMSG)方法获取) BIND_IE_RESULT 绑定结果。 BIND_IE_DEVICEID 平台分配的逻辑设备ID。 BIND_IE_DEVICESECRET 设备接入的鉴权密钥。 BIND_IE_APPID 开发者应用ID。 BIND_IE_HA_ADDR HA服务器地址。 BIND_IE_LVS_ADDR LVS服务器地址。 BIND_IE_RESULT: 枚举项 枚举值 类型 描述 BIND_RESULT_SUCCESS 0 NA 绑定成功。 BIND_RESULT_DEV_NOT_BIND 1 NA 未扫码。 BIND_RESULT_VERIFYCODE_EXPIRED 2 NA 验证码过期。 BIND_RESULT_FAILED 255 NA 其余失败。
  • 参数说明 字段 必选/可选 类型 描述 verifyCode 必选 String 设备绑定验证码。 如果通过控制台注册设备,则verifyCode填写为设备注册时设置的preSecret(预置密钥)。 如果通过开发中心注册设备,则verifyCode填写为设备注册时设置的nodeId(设备标识)。 deviceInfo 必选 IotaDeviceInfo 设备信息。 IotaDeviceInfo: 字段 必选/可选 类型 描述 nodeId 必选 String 关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。 name 可选 String 设备名称。 description 可选 String 设备描述。 manufacturerId 必选 String 厂商ID。 manufacturerName 可选 String 厂商名。 mac 可选 String 设备MAC地址。 location 可选 String 设备的位置。 deviceType 必选 String 设备类型。 model 必选 String 型号。 直连设备:与Profile中定义的model保持一致即可。 Z-Wave设备: ProductType + ProductId,格式(使用16 进制): XXXX-XXXX 补0对齐,如001A-0A12,其他协议再定。 swVersion 可选 String 软件版本。 Z-Wave :主版本号.次版本号,如:1.1。 fwVersion 可选 String 固件版本。 hwVersion 可选 String 硬件版本。 protocolType 必选 String 协议类型 :Z-Wave。 bridgeId 可选 String 表示设备通过哪个Bridge接入平台。 status 可选 String 表示设备是否在线。 ONLINE:在线。 OFFLINE:离线。 statusDetail 可选 String 状态详情,如果pcStatus不为空,则该参数必选。 参数值: 无:NONE。 配置等待:CONFIGURATION_PENDING。 通信错误:COMMUNICATION_ERROR。 配置错误:CONFIGURATION_ERROR。 桥接器离线:BRIDGE_OFFLINE。 固件升级:FIRMWARE_UPDATING。 循环任务:DUTY_CYCLE。 未激活:NOT_ACTIVE。 mute 可选 String 表示设备是否被屏蔽。 TRUE。 FALSE。
  • 接口返回值 返回值 描述 true 成功。 false 失败。 此返回值是调用接口的同步返回结果,返回true只是说明接口调用成功,并不说明绑定成功,绑定成功需要收到BindService.TOPIC_BINDDEVICE_RSP广播。 当前绑定流程的重试策略为:如果绑定失败,则30秒后继续进行重试,如果重试超过5次(总计尝试超过6次),则返回失败,不再进行重试。如果想要重新发起绑定,需要重启设备。
  • 接口功能 设备第一次接入物联网平台时需要进行绑定操作,上层应用通过调用该接口传入设备序列号或者MAC地址以及设备信息来绑定到物联网平台。 在绑定前需要调用绑定配置接口设置物联网平台的IP与端口。 设备绑定是指设备第一次接入物联网平台的过程,需要开发者先在物联网平台注册直连设备,之后在设备上发起绑定操作,将设备绑定到物联网平台上。如果未在物联网平台注册该设备,则绑定操作会失败,Agent Lite将会等待一段时间继续尝试。
  • 错误码 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内容是否正确。
  • 参数说明 参数 必选/可选 类型 位置 描述 qustInDTO 必选 QueryUpgradeSubTaskInDTO query 见下表QueryUpgradeSubTaskInDTO的描述。 operationId 必选 String path 操作任务ID,在创建操作任务后由物联网平台返回获得。 accessToken 必选 String header 填写鉴权接口获取的accessToken。 QueryUpgradeSubTaskInDTO 参数 必选/可选 类型 位置 描述 subOperationStatus 可选 String query 子任务状态,不指定,则查询该任务下所有子任务执行详情。 “wait”:等待 “processing”:正在执行 “fail”:失败 “success”:成功 “stop”:停止 pageNo 可选 Integer query 分页查询参数,默认值“0”。 值为空时,查询内容不分页。 值为大于等于0的整数时,分页查询。 值为0时查询第一页。 pageSize 可选 Integer query 查询结果分页时的每页结果数量,取值范围1-100,默认值“10”。
  • 参数说明 字段 必选/可选 类型 描述 cookie 可选 int Cookie有效值为1-65535。 deviceInfo 必选 IotaDeviceInfo 设备信息。 IotaDeviceInfo: 字段 必选/可选 类型 描述 nodeId 必选 String 关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。 name 可选 String 设备名称。 description 可选 String 设备描述。 manufacturerId 必选 String 厂商ID。 manufacturerName 可选 String 厂商名。 mac 可选 String 设备MAC地址。 location 可选 String 设备的位置。 deviceType 必选 String 设备类型。 model 必选 String 型号。 直连设备:与Profile中定义的model保持一致即可。 Z-Wave设备: ProductType + ProductId,格式(使用16 进制): XXXX-XXXX 补0对齐,如:001A-0A12,其他协议再定。 swVersion 可选 String 软件版本。 Z-Wave :主版本号.次版本号,如:1.1。 fwVersion 可选 String 固件版本。 hwVersion 可选 String 硬件版本。 protocolType 必选 String 协议类型 :Z-Wave。 bridgeId 可选 String 表示设备通过哪个Bridge接入平台。 status 可选 String 表示设备是否在线。 ONLINE 在线。 OFFLINE 离线。 statusDetail 可选 String 状态详情,如果pcStatus不为空,则该参数必选。 参数值: 无:NONE。 配置等待:CONFIGURATION_PENDING。 通信错误:COMMUNICATION_ERROR。 配置错误:CONFIGURATION_ERROR。 桥接器离线:BRIDGE_OFFLINE。 固件升级:FIRMWARE_UPDATING。 循环任务:DUTY_CYCLE。 未激活:NOT_ACTIVE。 mute 可选 String 表示设备是否被屏蔽。 TRUE。 FALSE。
  • 示例 开发者调用设备添加接口。 1 HubService.addDevice(29011, new IotaDeviceInfo("nodeId", "manufacturerId", "deviceType", "model", "protocolType")); 开发者调用添加设备接口前需要实现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 public class AgentliteHub implements MyObserver { public AgentliteHub (Observable hubService) { hubService. registerObserver (this); } // 接收设备添加响应消息 @Override public void update(IotaMessage arg0) { // TODO Auto-generated method stub System.out.println("收到hubservice通知:" + arg0); int mMsgType = arg0.getMsgType(); switch(mMsgType) { //收到添加设备的应答 case IodevService.IODEV_MSG_ADD_DEVICE_RSP: getAddDeviceAnswer(arg0); break; //收到删除设备的应答 case IodevService.IODEV_MSG_RMV_DEVICE_RSP: getRmvDeviceAnswer(arg0); break; //收到更新设备信息的应答 case IodevService.IODEV_MSG_UPDATE_DEVSTATUS_RSP: getUpdateStatusAnswer(arg0); break; case IodevService.IODEV_MSG_RECEIVE_CMD: getUnbindAnswer(arg0); break; default: break; } }
  • 错误码 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是否有误。
共100000条