Update Device¶
更新设备。assetId
(或 productKey
和 deviceKey
)为请求字段,其他字段为更新字段。
操作权限¶
需授权的资源 | 所需操作权限 |
---|---|
设备管理 | Full Access |
约束条件¶
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/devices?action=update
请求参数(URI)¶
注解
以下非必须字段中,必须提供 assetId
或 productKey
+ deviceKey
的组合,用于指定设备。
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织 ID。如何获取 orgId 信息>> |
assetId | Query | 可选(见上述注解) | String | 资产 ID。如何获取 assetId 信息>> |
productKey | Query | 可选(见上述注解) | String | 设备的 product key,需与 deviceKey 一起使用。 |
deviceKey | Query | 可选(见上述注解) | String | 设备的 device key,需与 productKey 一起使用。 |
isPatchUpdate | Query | 可选 | Boolean | 是否是局部更新。
|
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
timezone | 可选 | String | 欲更新的设备所在时区。 |
deviceName | 可选 | StringI18n | 欲更新的设备名称。其结构参见 国际化名称结构体。 |
deviceAttributes | 可选 | Map | 欲更新的设备属性 |
deviceTags | 可选 | Map(key 为 String,value 为 String) | 欲更新的设备 tags。标签的作用与表示方法>> |
deviceDesc | 可选 | String | 欲更新的设备描述信息。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.1/devices?action=update&orgId=yourOrgId&assetId=yourAssetId
method: POST
requestBody:
{
"deviceTags": {
"test": "test_value"
},
"deviceAttributes": {
"int11": 617
},
"deviceName": {
"defaultValue": "testforname",
"i18nValue": {}
},
"deviceDesc": "test for updatedevice"
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "0d61752e-0633-4846-abb1-b6fb39801a5f",
"data": null
}
Java SDK 调用示例¶
package com.envisioniot.enos.api.sample.connect_service.device;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.common.StringI18n;
import com.envisioniot.enos.connect_service.v2_1.device.UpdateDeviceRequest;
import com.envisioniot.enos.connect_service.v2_1.device.UpdateDeviceResponse;
import java.util.HashMap;
import java.util.Map;
public class UpdateDevice {
public static void main(String[] args) {
final String appKey = "yourAppKey";
final String appSecret = "yourAppSecret";
String serverUrl = "yourServerUrl";
String orgId = "yourOrgId";
String assetId = "yourAssetId";
UpdateDeviceRequest request=new UpdateDeviceRequest();
request.setOrgId(orgId);
request.setAssetId(assetId);
request.setDeviceDesc("yourDeviceDesc");
request.setTimezone("yourTimeZone");
Map<String, Object> deviceAttributes=new HashMap<>();
deviceAttributes.put("yourAttributeId",yourAttributeValue);
Map<String, String> deviceTags=new HashMap<>();
deviceTags.put("yourTagKey","yourTagValue");
request.setDeviceAttributes(deviceAttributes);
request.setDeviceTags(deviceTags);
StringI18n stringI18n=new StringI18n();
stringI18n.setDefaultValue("testforname");
request.setDeviceName(stringI18n);
UpdateDeviceResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, UpdateDeviceResponse.class);
}
}