Update Device

Update a device. The assetId (or productKey + deviceKey) parameter is to be specified in the request url, and other parameters are to be specified in the request body.

Operation Permissions

Required Authorization

Required Operation Permission

Asset

Write

Request Format

POST https://{apigw-address}/connect-service/v2.1/devices?action=update

Request Parameters (URI)

Note

Use one of the following methods to specify the device to be updated:

  • Include assetId in the request

  • Include productKey + deviceKey in the request

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>>

assetId

Query

Optional (See Note above)

String

The asset ID. How to get assetId>>

productKey

Query

Optional (See Note above)

String

The product key. To be used with deviceKey.

deviceKey

Query

Optional (See Note above)

String

The device key. To be used with productKey.

isPatchUpdate

Query

Optional

Boolean

  • true (default) = Only the fields specified in the parameters are updated. The values of those fields not specified will be retained.
  • false = The fields specified in the parameters are updated. Those fields not specified will have their existing values (if any) deleted.

Request Parameters (Body)

Name

Mandatory/Optional

Data Type

Description

timezone

Mandatory

String

Timezone of the device’s location.

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.

deviceTags

Optional

Map

The device tags. (The Key and Value are of String type.) For details, see How to use tag>>

deviceDesc

Optional

String

The device description.

Samples

Request Sample

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"
}

Return Sample

{
    "code": 0,
    "msg": "OK",
    "requestId": "0d61752e-0633-4846-abb1-b6fb39801a5f",
    "data": null
}

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.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);

    }
}