Create Device¶
Create a device.
Operation Permissions¶
Required Authorization  | 
Required Operation Permission  | 
|---|---|
Device Management  | 
Full Access  | 
Prerequisite¶
Ensure the product to create this device under exists.
Request Format¶
POST https://{apigw-address}/connect-service/v2.1/devices?action=create
Request Parameters (URI)¶
Name  | 
Location (Path/Query)  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|---|
orgId  | 
Query  | 
Mandatory  | 
String  | 
The organization ID which the asset belongs to. How to get orgId>>  | 
Request Parameters (Body)¶
Name  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|
productKey  | 
Mandatory  | 
String  | 
The product key.  | 
timezone  | 
Mandatory  | 
String  | 
Timezone of the device’s location. For details, see Timezone representation >>  | 
deviceName  | 
Mandatory  | 
StringI18n  | 
The device name. For more details on the structure and locales supported, see Internationalized name struct>>  | 
deviceAttributes  | 
Optional  | 
Map  | 
The device attributes.  | 
deviceKey  | 
Optional  | 
String  | 
The device key.  | 
deviceDesc  | 
Optional  | 
String  | 
The device description.  | 
deviceTags  | 
Optional  | 
Map  | 
The device tags. (The Key and Value are of String type.) For details, see How to use tag>>  | 
Response Parameters¶
Name  | 
Data Type  | 
Description  | 
|---|---|---|
data  | 
DeviceCreateResult Struct  | 
The returned results of the device creation. For details, see DeviceCreateResult Struct.  | 
DeviceCreateResult Struct  ¶
Name  | 
Data Type  | 
Description  | 
|---|---|---|
productKey  | 
String  | 
The product key.  | 
deviceKey  | 
String  | 
The device Key.  | 
deviceSecret  | 
String  | 
The device connection key.  | 
assetId  | 
String  | 
The asset ID.  | 
Error Codes¶
Code  | 
Data Type  | 
Description  | 
|---|---|---|
11702  | 
DeviceKey existed  | 
The   | 
11714  | 
Generate deviceKey failed  | 
The key of the device cannot be assigned temporarily (when the   | 
11739  | 
Exceed max device size  | 
A product can have a max of 10,000 devices under it. This operation will exceed the limit.  | 
Samples¶
Request Sample¶
url: https://{apigw-address}/connect-service/v2.1/devices?action=create&orgId=yourOrgId
method: POST
requestBody:
{
    "deviceTags":{
        "test":"test for tags"
    },
    "timezone":"+08:00",
    "productKey":"yourProductKey",
    "deviceAttributes":{
        "testatt":111111
    },
    "deviceName":{
        "defaultValue":"testCreateDevice",
        "i18nValue":{
        }
    },
    "deviceDesc":"test for createdevice"
}
Return Sample¶
{
    "code":0,
    "msg":"OK",
    "requestId":"fd79d0f5-69c5-4fa8-add4-69f5ca1b635f",
    "data":{
        "assetId":"Uvmm5AXU",
        "productKey":"yourProductKey",
        "deviceKey":"yourDeviceKey",
        "deviceSecret":"yourDeviceSecret"
    }
}
Java SDK Sample¶
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("testDevice");
        request.setDeviceName(stringI18n);
        Map < String, Object > deviceAttributes = new HashMap < > ();
        //        deviceAttributes.put("testatt",111111);
        Map < String, String > deviceTags = new HashMap < > ();
        deviceTags.put("test", "test for tags");
        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);
    }
}