Remove Sub-Device

将子设备从网关下移除(解除拓扑关系)。

操作权限

需授权的资源

所需操作权限

设备管理

Full Access

请求格式

POST https://{apigw-address}/connect-service/v2.1/device-topos?action=removeSubDevice

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织ID。 如何获取orgId信息>>

请求参数(Body)

名称

必需/可选

数据类型

描述

gateway

必需

DeviceIdentfier结构体

需要移除子设备的网关信息,见 DeviceIdentfier结构体>>

subDevices

必需

DeviceIdentfier结构体数组

需要从指定网关移除的子设备列表信息,见 DeviceIdentfier结构体>>

DeviceIdentifier结构体

备注

以下非必须字段中,必须提供 assetIdproductKey + deviceKey 的组合,用于指定设备。

名称

数据类型

描述

assetId

String

资产ID。 如何获取Asset ID信息>>

productKey

String

Product Key.

deviceKey

String

Device Key.

错误码

代码

数据类型

描述

11738

Not Gateway

参数gateway不是网关设备。

99400

Invalid arguments

参数错误。

示例

请求示例

url:https://{apigw-address}/connect-service/v2.1/device-topos?action=removeSubDevice&orgId=yourOrgId
method: POST
requestBody:
{
    "subDevices":[
        {
            "assetId":"yourAssetId"
        }
    ],
    "gateway":{
        "assetId":"yourAssetId2"
    }
}

返回示例

{
    "code":0,
    "msg":"OK",
    "requestId":"ea6608bb-b8cb-46f3-a836-ee24ea9a028c",
    "data":null
}

Java SDK调用示例

package com.envisioniot.enos.api.sample.connect_service.device.topo;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.device.topo.RemoveSubDeviceRequest;
import com.envisioniot.enos.connect_service.v2_1.device.topo.RemoveSubDeviceResponse;
import com.envisioniot.enos.connect_service.vo.DeviceIdentifier;

import java.util.ArrayList;
import java.util.List;


public class RemoveSubDevice {
    public static void main(String[] args) {
        final String appKey = "yourAppKey";
        final String appSecret = "yourAppSecret";
        String serverUrl = "yourServerUrl";

        String orgId = "yourOrgId";
        RemoveSubDeviceRequest request = new RemoveSubDeviceRequest();
        request.setOrgId(orgId);
        request.setGateway(new DeviceIdentifier("J1Rqyaqz"));

        List<DeviceIdentifier> deviceList = new ArrayList<>();
        deviceList.add(new DeviceIdentifier("zGeKTDrw"));
        deviceList.add(new DeviceIdentifier("Fi0HQ8FO"));
        request.setSubDevices(deviceList);

        RemoveSubDeviceResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(request, RemoveSubDeviceResponse.class);
    }
}