Search Sub-Device¶
Search for sub-devices under the specified gateway.
Request Format¶
POST https://{apigw-address}/connect-service/v2.1/device-topos?action=searchSubDevice
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 |
---|---|---|---|
gateway |
Mandatory |
DeviceIdentfier Struct |
Information of the gateway the sub-devices are under. For details, see DeviceIdentfier Struct. |
expression |
Optional |
String |
The query expression, which supports sql-like query. The fields that are supported for query include:
|
pagination |
Optional |
Pagination Request Struct |
Lists the paging requirements in a request. When not specified, 10 records are displayed per page by default. The maximum records per page is 200 but for optimal performance, it is recommended to have not more than 50 records per page. |
projection |
Optional |
Projection Struct |
Enables you to crop the data result set returned in the request if needed. Only the specified fields will be returned in the data result set if this parameter is used. Otherwise all fields are returned. For more details, see How does projection crop the result set>> |
DeviceIdentifier Struct ¶
Note
Use either the (assetId
) or (productKey
+ deviceKey
) for the following.
Name |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
assetId |
Optional (See Note above) |
String |
The asset ID. How to get assetId>> |
productKey |
Optional (See Note above) |
String |
The product key. To be used with |
deviceKey |
Optional (See Note above) |
String |
The device key. To be used with |
Response Parameters¶
Name |
Data Type |
Description |
---|---|---|
data |
Array of Device Structs |
A list of the devices returned. For the details of a Device Struct, see Device Struct. |
Device Struct ¶
Name |
Data Type |
Description |
---|---|---|
orgId |
String |
The organization ID which the asset belongs to. |
assetId |
String |
The asset ID. |
modelId |
String |
The model ID which the asset belongs to. |
modelIdPath |
String |
The model ID path. |
productKey |
String |
The product key. |
productName |
StringI18n |
The product name. |
productType |
String |
The product type. |
dataFormat |
String |
|
deviceKey |
String |
The device key. |
deviceName |
StringI18n |
The device name. |
deviceSecret |
String |
The device secret identifier. |
deviceDesc |
String |
The device description. |
timezone |
String |
Timezone of the device’s location. |
deviceAttributes |
Map |
The device attributes. The Key is the attribute ID, and the Value type depends on the attribute defined in the |
deviceTags |
Map |
The device tags. (The Key and Value are of String type.) |
mirrorSource |
String |
The device key of the mirror source. |
createTime |
Long |
The time when the device was created. |
status |
String |
The device status (online, offline, inactive, disable, or mirror)
|
activeTime |
Long |
The time when the device was activated. |
lastOnlineTime |
Long |
The last online time of the device. |
lastOfflineTime |
Long |
The last offline time of the device. |
measurepointLastUpdate |
Long |
The last time when a measurement point was updated. |
eventLastUpdate |
Long |
The last time when an event was updated. |
attributeLastUpdate |
Long |
The last time when an attribute was updated. |
featureLastUpdate |
Long |
The last time when a measurement point, an event, or an attribute was updated. |
firmwareVersion |
String |
The firmware version. |
Error Codes¶
Code |
Message |
Description |
---|---|---|
11738 |
Not Gateway |
The device specified in |
Samples¶
Request Sample¶
url: https://{apigw-address}/connect-service/v2.1/device-topos?action=searchSubDevices&orgId=yourOrgId
method: POST
requestBody: {"gateway":{"assetId":"yourAssetId"}}
Return Sample¶
{
"code": 0,
"msg": "OK",
"requestId": "498d1c5b-7c4f-401a-a9ff-9072931bec2e",
"data": [{
"orgId": "yourOrgId",
"assetId": "mAEsF3sm",
"modelId": "AlterTest0617",
"modelIdPath": "/AlterTest0617",
"productKey": "yourProductKey",
"productName": {
"defaultValue": "AlterTest0617_Product",
"i18nValue": {}
},
"productType": "Device",
"dataFormat": "Json",
"deviceKey": "yourDeviceKey",
"deviceName": {
"defaultValue": "testforCreatedevice",
"i18nValue": {}
},
"deviceSecret": "yourDeviceSecret",
"deviceDesc": "test for createdevice",
"timezone": "+08:00",
"deviceAttributes": {
"testatt": 111111
},
"deviceTags": {},
"mirrorSource": null,
"firmwareVersion": null,
"createTime": 1560755091998,
"status": "inactive",
"activeTime": 0,
"lastOnlineTime": 0,
"lastOfflineTime": 0,
"measurepointLastUpdate": null,
"eventLastUpdate": null,
"attributeLastUpdate": null,
"featureLastUpdate": null
}, {
"orgId": "yourOrgId",
"assetId": "gVRwKQ3C",
"modelId": "AlterTest0617",
"modelIdPath": "/AlterTest0617",
"productKey": "yourProductKey",
"productName": {
"defaultValue": "AlterTest0617_Product",
"i18nValue": {}
},
"productType": "Device",
"dataFormat": "Json",
"deviceKey": "yourDeviceKey",
"deviceName": {
"defaultValue": "AlterTest0617_Product",
"i18nValue": {}
},
"deviceSecret": "yourDeviceSecret",
"deviceDesc": null,
"timezone": "+10:00",
"deviceAttributes": {},
"deviceTags": {},
"mirrorSource": null,
"firmwareVersion": null,
"createTime": 1560730295671,
"status": "offline",
"activeTime": 1560730567958,
"lastOnlineTime": 1560743932166,
"lastOfflineTime": 1560744112166,
"measurepointLastUpdate": null,
"eventLastUpdate": null,
"attributeLastUpdate": null,
"featureLastUpdate": null
}],
"pagination":{"sortedBy":null,"pageNo":1,"pageSize":2,"totalSize":2}}
Java SDK Sample¶
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.SearchSubDeviceRequest;
import com.envisioniot.enos.connect_service.v2_1.device.topo.SearchSubDeviceResponse;
import com.envisioniot.enos.connect_service.vo.DeviceIdentifier;
public class SearchSubDevice {
public static void main(String[] args) {
final String appKey = "yourAppKey";
final String appSecret = "yourAppSecret";
String serverUrl = "yourServerUrl";
String orgId = "yourOrgId";
SearchSubDeviceRequest request = new SearchSubDeviceRequest();
request.setOrgId(orgId);
request.setGateway(new DeviceIdentifier("J1Rqyaqz"));
SearchSubDeviceResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, SearchSubDeviceResponse.class);
}
}