Update Device¶
更新设备。assetId
(或productKey
和deviceKey
)为请求字段,其他字段为更新字段。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产 |
Write |
请求格式¶
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。 如何获取Asset ID信息>> |
productKey |
Query |
可选 |
String |
Product Key. |
deviceKey |
Query |
可选 |
String |
Device Key. |
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);
}
}