Create Device¶
创建设备。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
设备管理 |
Full Access |
开始前准备¶
确保用于创建此设备的产品存在。
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/devices?action=create
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
productKey |
必需 |
String |
设备的 product key。 |
deviceName |
必需 |
StringI18n |
设备名称,见 国际化名称结构体 >> |
timezone |
必需 |
String |
设备所在时区。见 时区表示方法 >> |
deviceAttributes |
可选 |
Map |
设备属性。 |
deviceKey |
可选 |
String |
设备的 Device Key。 |
deviceDesc |
可选 |
String |
设备描述信息。 |
deviceTags |
可选 |
Map |
设备标签。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
DeviceCreateResult 结构体 |
设备创建返回结果,见 DeviceCreateResult 结构体>> |
DeviceCreateResult 结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
productKey |
String |
设备的 product key。 |
deviceKey |
String |
设备的 device key。 |
deviceSecret |
String |
设备的连接秘钥。 |
assetId |
String |
资产 ID。 |
错误码¶
名称 |
错误信息 |
描述 |
---|---|---|
11702 |
DeviceKey existed |
|
11714 |
Generate deviceKey failed |
暂时无法分配设备的key( |
11739 |
Exceed max device size |
该操作将导致超过产品下限定的设备数量。 |
示例 1¶
请求示例¶
url:https://{apigw-address}/connect-service/v2.1/devices?action=create&orgId=yourOrgId
method: POST
requestBody:
{
"productKey":"yourProductKey",
"deviceName":{
"defaultValue":"Device Name",
"i18nValue":{
"zh_CN": "设备名称",
"en_US": "Device Name"
}
},
"timezone":"+08:00",
"deviceAttributes":{
"serial":111111
},
"deviceDesc":"Device description",
"deviceTags":{
"tag1":"tag value"
}
}
返回示例¶
{
"code":0,
"msg":"OK",
"requestId":"fd79d0f5-69c5-4fa8-add4-69f5ca1b635f",
"data":{
"assetId":"Uvmm5AXU",
"productKey":"yourProductKey",
"deviceKey":"yourDeviceKey",
"deviceSecret":"yourDeviceSecret"
}
}
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.CreateDeviceRequest;
import com.envisioniot.enos.connect_service.v2_1.device.CreateDeviceResponse;
import java.util.HashMap;
import java.util.Map;
public class CreateDevice {
public static void main(String[] args) {
final String appKey = "yourAppKey";
final String appSecret = "yourAppSecret";
final String serverUrl = "yourServerUrl";
final String orgId = "yourOrgID";
CreateDeviceRequest request = new CreateDeviceRequest();
request.setOrgId(orgId);
request.setDeviceDesc("yourDeviceDesc");
request.setProductKey("yourProductKey");
StringI18n stringI18n = new StringI18n();
stringI18n.setDefaultValue("Device Name");
request.setDeviceName(stringI18n);
Map<String, Object> deviceAttributes = new HashMap<>();
// deviceAttributes.put("serial",111111);
Map<String, String> deviceTags = new HashMap<>();
deviceTags.put("tag1", "tag value");
request.setDeviceAttributes(deviceAttributes);
request.setDeviceTags(deviceTags);
request.setTimezone("+08:00");
CreateDeviceResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, CreateDeviceResponse.class);
}
}