全部产品

空间管理

更新时间:2021-01-28 17:46

本篇描述了园区引擎实例的空间管理能力,以及设备绑定到空间的操作。

一、空间创建

1.登录数字园区引擎平台,点击空间管理,创建空间结构,如下图所示。

2.填写空间信息和用户,完成空间创建。如下图所示。

二、设备绑定空间

1.单击左侧导航栏的设备管理,把当前账号下的设备全部添加到当前实例中,用于设备对实例空间的绑定。如下图所示。

2.按照需求绑定当前账号下的设备,包括被授权的设备。

三、绑定设备

1.如下图,找到对应的位置,进行设备绑定。点击查看设备

2.单击已绑定设备列表的左上方的绑定设备,将项目内其他设备也绑定至空间单元中

四、填写设备绑定到空间的配置信息

例如人行车行设备添加出入方向的备注信息。在绑定设备的时候添加备注信息。

根据需求对设备的备注进行具体的配置。如下图所示。

进口方向示例:

{"direction":"in"}

出口方向示例:

{"direction":"out"}

API对接: 空间对接API的接口连接为:https://si.iot.aliyun.com/asp/apiservice?groupCode=Space

1

五、获取设备信息接口

用于获取项目下所有已绑定空间的设备信息接口信息。

接口描述

API版本

1.0.1

授权类型

APPSIGN

协议

HTTPS

请求方法

Post

域名(环境变量中获取)

api.link.aliyun.com

路径

/campus/paas/openapi/space/device/list

入参说明

入参名称

数据类型

是否必须

入参描述

appId

字符串

-

pageNo

整形

1

pageSize

整形

20

categoryKey

字符串

-

spaceId

字符串

-

appId

字符串

-

具体复杂数组可参照接口文档:获取项目下所有已绑定空间的设备信息接口

出参列表

出参名称

数据类型

出参描述

code

整形

响应码, 200: 成功

message

字符串

错误消息

localizedMsg

字符串

本地语言错误消息

data

长整型

响应结果 返回的长整型数据是增加的数据的id

请求示例
    /**
     * 系统环境变量中获取的
     */
    public static final String appkey = System.getenv("iot.hosting.appKey");
    public static final String appSecret = System.getenv("iot.hosting.appSecret");
public static void main(String[] args) throws UnsupportedEncodingException {
    IoTApiClientBuilderParams ioTApiClientBuilderParams =
      new IoTApiClientBuilderParams();
    ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
    ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
    SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
    IoTApiRequest request = new IoTApiRequest();
    //设置api的版本
    request.setApiVer("0.0.3");
    //如果需要登陆,设置当前的会话的token
    request.setIotToken("xxxxxxxxxxxxxxx");
  // 接口参数
    request.putParam("appId","value1");
    request.putParam("pageNo","value2");
    request.putParam("pageSize","value3");
    request.putParam("categoryKey","value4");
    request.putParam("spaceId","value5");
    //请求参数域名、path、request
  ApiResponse response = syncClient.postBody("api.link.aliyun.com",
      "/user/rbac/permission/batchcreate", request, true);
    System.out.println( "response code = " + response.getCode()
      + " response = " + new String(response.getBody(), "UTF-8"));
}

返回结果示例 JSON

{
    "code": 200,
    "data": {
        "data": [
            {
                "categoryKey": "Gateway",
                "deviceName": "xxxxxxxxxx",
                "productKey": "xxxxxxxxxx",
                "productName": "xxxxxxxxxx",
                "spacePath": "/xxxxxxxxxx/xxxxxxxxxx/"
            },
            {
                "categoryKey": "Curtain",
                "deviceName": "xxxxxxxxxx",
                "productKey": "xxxxxxxxxx",
                "productName": "xxxxxxxxxx",
                "spacePath": "/xxxxxxxxxx/xxxxxxxxxx/"
            }
        ],
        "pageNo": 1,
        "pageSize": 20,
        "total": 100
    },
    "message": "success"
}

失败返回结果示例 JSON

{
    "code": 28402,
    "localizedMsg": "无权访问该项目",
    "message": "no access to the project"
}

2.3 UpdateCampusSpace

  • API版本:1.0.0

  • 授权类型:APPSIGN

  • 协议:HTTPS

  • 请求方法:POST

  • 域名:api.link.aliyun.com

  • 路径:/campus/paas/openapi/space/update

  • API描述:更新指定空间的详情内容

  • 版本描述:初始化版本

入参列表

入参名称

数据类型

是否必须

缺省默认值

入参示例

入参描述

appId

字符串

-

-

统一应用id

—-

—-

—-

—-

—-

spaceInfo

复杂对象

-

-

待更新的空间内容

出参列表

出参名称

数据类型

出参描述

code

整形

响应码, 200: 成功

—-

—-

—-

message

字符串

错误消息

localizedMsg

字符串

本地语言错误消息

请求示例

// https://github.com/aliyun/iotx-api-gateway-client
public static void main(String[] args) throws UnsupportedEncodingException {
    IoTApiClientBuilderParams ioTApiClientBuilderParams =
      new IoTApiClientBuilderParams();
    ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
    ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
    SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
    IoTApiRequest request = new IoTApiRequest();
    //设置api的版本
    request.setApiVer("1.0.0");
    request.setId("42423423");
    //如果需要登陆,设置当前的会话的token
    request.setIotToken("xxxxxxxxxxxxxxx");
    // 接口参数
    request.putParam("appId","value1");
    request.putParam("spaceInfo","value2");
    //请求参数域名、path、request
    ApiResponse response = syncClient.postBody("api.link.aliyun.com",
      "/campus/paas/openapi/space/update", request, true);
    System.out.println( "response code = " + response.getCode()
      + " response = " + new String(response.getBody(), "UTF-8"));
}

返回结果示例 JSON

{
    "id": "4de2c367-c1db-417c-aa15-8c585e595d92",
    "code": 200,
    "message": null,
    "localizedMsg": null,
    "data": null
}

失败返回结果示例 JSON

{
    "id": "37f7e5fa-d6a5-4efe-8abf-5bf23dca6284",
    "code": 403,
    "message": "request forbidden.",
    "localizedMsg": "请求被禁止",
    "data": null
}

2.4 DeleteCampusSpace

  • API版本:1.0.0

  • 授权类型:APPSIGN

  • 协议:HTTPS

  • 请求方法:POST

  • 域名:api.link.aliyun.com

  • 路径:/campus/paas/openapi/space/delete复制

  • API描述:删除园区行业指定的空间及空间下属资源

  • 版本描述:初始化版本

入参列表

入参名称

数据类型

是否必须

缺省默认值

入参示例

入参描述

appId

字符串

-

-

统一应用id

spaceIds

复杂对象数组

-

-

待删除的空间列表

出参列表

出参名称

数据类型

出参描述

code

整形

响应码, 200: 成功

message

字符串

错误消息

localizedMsg

字符串

本地语言错误消息

data

复杂对象数组

响应结果

调用示例


// 
https://github.com/aliyun/iotx-api-gateway-client
public
static
void
main(String[]args)
throws
UnsupportedEncodingException
{
   
IoTApiClientBuilderParamsioTApiClientBuilderParams=
new
IoTApiClientBuilderParams();
   
ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
   
ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
 
SyncApiClientsyncClient=
new
SyncApiClient(ioTApiClientBuilderParams);
   
IoTApiRequestrequest=
new
IoTApiRequest();
   
//设置api的版本
   
request.setApiVer("1.0.0");
   request.setId("42423423");
   
//如果需要登陆,设置当前的会话的token
   
request.setIotToken("xxxxxxxxxxxxxxx");
   
// 接口参数
   
request.putParam("appId","value1");
   
request.putParam("spaceIds","value2");
   
//请求参数域名、path、request
   
ApiResponseresponse=syncClient.postBody("api.link.aliyun.com",
     "/campus/paas/openapi/space/delete",request,
true
);
   
System.
out.println("response code = "+response.getCode()
     +" response = "+
new
String(response.getBody(),"UTF-8"));
}

返回结果示例 JSON

{
   "id":"4de2c367-c1db-417c-aa15-8c585e595d92",
   "code":200,
   "message":
null
,
   "localizedMsg":
null
,
   "data":[]
}

失败返回结果示例 JSON

{
   "id":"37f7e5fa-d6a5-4efe-8abf-5bf23dca6284",
   "code":403,
   "message":"request forbidden.",
   "localizedMsg":"请求被禁止",
   "data":
null
}

六、云端和边缘端数据同步API

地产平台通过封装LP云边同步能力,对外开放如下API:

0、获取边缘集群列表

1、数据同步预检查

2、触发数据同步

3、数据同步结果查询

接口定义

分页参数会出现在请求参数和返回结果中,用于下文中API调用参照.

  • 在请求参数中代表请求分页的页数(pageNo)和每页的记录数(pageSize);

  • 在响应结果中的页数(pageNo)和每页的记录数(pageSize)与请求参数一致,同时还有total字段代表数据总数。

所有的分页接口除特殊说明外,都遵循下面的约束

参数

类型

备注

pageNo

Integer

请求的页码非必填,默认为1,有效范围 [1, ∞)

pageSize

Integer

每页的记录数非必填,默认为20,有效范围[1,100]

path

版本

是否需要登录

/home/paas/cluster/edge/query

1.0.0

字段

类型

是否必传

备注

pageNo

Integer

请求的页码,详细见详细见上述的分页参数定义。

pageSize

Integer

每页的记录数,详细见详细见上述的分页参数定义。

字段

类型

备注

code

Integer

返回码

message

String

返回信息

data

JSONObject

-data

ClusterDTOList

分页数据对象列表ClusterDTOList

-pageNo

Integer

请求的页码,详细见详细见上述的分页参数定义。

-pageSize

Integer

请求的页码,详细见详细见上述的分页参数定义。

-total

Integer

总记录数

分页数据对象ClusterDTOList

id

String

集群ID

name

String

集群名称

gmtCreate

String

集群创建时间

gmtModified

String

集群修改时间

请求示例

{
 "pageNo":1,
 "pageSize":20
}

返回示例

{
 "code":200,
 "message":
null
,
 "localizedMsg":
null
,
 "data":{
   "pageNo":1,
   "pageSize":20,
   "total":10,
     "data":[{
       "id":"xxx",
     "name":"cluster01",
       "gmtCreate":"2020-03-04 18:00:00",
       "gmtModified":"2020-03-04 18:00:00"
       }]
   }
}

path

版本

是否需要登录

/home/paas/data/edge/sync/precheck

1.0.0

字段

类型

是否必传

备注

clusterId

String

集群ID

opsType

String

SYNC_DATA - 同步数据CLEAR_DATA - 清理数据

dataTypeList

JSONArray

数据类型列表

字段

类型

备注

code

Integer

返回码

message

String

返回信息

data

String

SYNCING - 同步中NO - 不需要同步YES - 需要同步

请求示例

{
 "clusterId":"xxx",
 "opsType":"SYNC_DATA",
 "dataTypeList":[
     "ACCOUNT",
   "SPACE"
   "RTPC"
   "ALARM"
 ]
}

返回示例

{
 "code":200,
 "message":
null
,
 "localizedMsg":
null
,
 "data":"XXX"
}

path

版本

是否需要登录

/home/paas/data/edge/sync/dispatch

1.0.0

字段

类型

是否必传

备注

clusterId

String

集群ID

opsType

String

SYNC_DATA - 同步数据CLEAR_DATA - 清理数据

dataTypeList

JSONArray

数据类型列表

字段

类型

备注

code

Integer

返回码

message

String

返回信息

data

String

taskGroupId - 任务组ID

请求示例

{
 "clusterId":"xxx",
 "opsType":"SYNC_DATA",
 "dataTypeList":[
     "ACCOUNT",
   "SPACE"
 ]
}

返回示例

{
 "code":200,
 "message":
null
,
 "localizedMsg":
null
,
 "data":"XXX"
}

path

版本

是否需要登录

/home/paas/data/edge/sync/query

1.0.0

字段

类型

是否必传

备注

clusterId

String

集群ID

opsType

String

SYNC_DATA - 同步数据CLEAR_DATA - 清理数据

dataTypeList

JSONArray

数据类型列表

字段

类型

备注

code

Integer

返回码

message

String

返回信息

data

JSONObject

-dataSyncStatus

String

同步的结果NONE - 无任务SYNCING - 同步中SUCCESS - 同步成功FAIL - 同步失败

-preCheckResult

String

是否需要同步SYNCING - 同步中NO - 不需要同步YES - 需要同步

-taskGroupId

String

任务组id,便于工单排查

请求示例

{
 "clusterId":"xxx",
 "opsType":"SYNC_DATA",
 "dataTypeList":[
     "ACCOUNT",
   "SPACE"
 ]
}

返回示例

{
 "code":200,
 "message":
null
,
 "localizedMsg":
null
,
 "data":{
   "dataSyncStatus":"SUCCESS",
   "preCheckResult":"NO",
   "taskGroupId":"XXX"
 }
}

path

版本

是否需要登录

/home/paas/data/edge/sync/querybytaskgroupid

1.0.0

字段

类型

是否必传

备注

taskGroupId

String

任务组ID

字段

类型

备注

code

Integer

返回码

message

String

返回信息

data

String

同步的结果NONE - 无任务SYNCING - 同步中SUCCESS - 同步成功FAIL - 同步失败

请求示例

{
 "clusterId":"xxx",
 "opsType":"SYNC_DATA",
 "dataTypeList":[
     "ACCOUNT",
   "SPACE"
 ]
}

返回示例

{
 "code":200,
 "message":
null
,
 "localizedMsg":
null
,
 "data":"SUCCESS"
}