
# 创建边缘设备
#### 功能介绍
应用服务器可调用此接口创建边缘设备，边缘设备包含机电设备，控制器，HLinkG设备，且都必须指定边缘网关。机电设备可以指定产品，控制器和HLinkG设备不能指定产品，会自动绑定到对应内置产品，且控制器和HLinkG设备必须关联模块。**创建机电设备需要指定edge_device_type字段为ELEC。**
#### URI
POST /v1/iotfm/edge/devices
#### 请求参数
表1请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token   | 是    | String | **参数说明** ：用户Token。通过调用 [生成Token](https://support.huaweicloud.com/api-ocsmartcampus/ocsmartcampus_06_0008.html) 接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 |
| X-Instance-Id  | 是    | String | **参数说明**：实例ID。通过访问智能设施云平台界面后获取，智能设施云平台资源均为实例级隔离，所有业务接口必须填写正确的实例ID才能被成功调用。 **取值范围**：长度8-36，只允许大小写字母、数字和-字符的组合。           |
| X-Root-Zone-Id | 否    | String | **参数说明**：项目ID。 **取值范围**：长度不超过24，只允许字母、数字的组合。                                                                            |
   
表2请求Body参数 
| 参数                   | 是否必选 | 参数类型                                                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| device_name          | 是    | String                                                                                                     | **参数说明**：设备名称。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| device_description   | 否    | String                                                                                                     | **参数说明**：设备描述。 **取值范围**：长度不超过256，只允许中文、字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| node_id              | 是    | String                                                                                                     | **参数说明**：设备标识码，通常使用IMEI、MAC地址或SN号作为node_id。 **取值范围**：长度不超过64，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| zone_id              | 否    | String                                                                                                     | **参数说明**：区域ID。 **取值范围**：长度不超过24，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| zone_code            | 否    | String                                                                                                     | **参数说明**：空间编码。 **取值范围**：长度为1-32，只允许大小写字母、数字、#、_、.和-的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| product_id           | 否    | String                                                                                                     | **参数说明**：产品ID。 **取值范围**：长度不超过36，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| brand_id             | 否    | String                                                                                                     | **参数说明**：产品品牌ID。 **取值范围**：长度不超过36，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| manufacturer_info    | 否    | [ManufacturerInfo] object   | **参数说明**：厂商信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| gateway_id           | 是    | String                                                                                                     | **参数说明**：网关ID。 **取值范围**：长度不超过64，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| parent_device_id     | 否    | String                                                                                                     | **参数说明**：父设备ID。用于标识设备所属的父设备，即父设备的设备ID。 **取值范围**：长度不超过128，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| access_info          | 否    | [AccessInfo] object               | **参数说明**：边缘设备的接入认证信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| extension_info       | 否    | Map\<String,String\>                                                                                       | **参数说明**：设备扩展信息。最多填写10个扩展字段。 **取值范围**： key取值长度不超过36，只允许字母、数字、以及_-字符的组合。 value取值长度不超过64，只允许中文、字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| spec_properties      | 否    | Array of [SpecProperty] objects | **参数说明**：设备规格属性列表。 **取值范围**：数组长度不超过100。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| edge_device_type     | 是    | String                                                                                                     | **参数说明**：边缘设备类型。 **取值范围**： - ELEC：机电设备   - HlinkG：HlinkG设备   - CONTROLLER：控制器                                                                                             |
| module_id            | 否    | String                                                                                                     | **参数说明**：模块ID。控制器和HLinkG类设备必须绑定HLinkG类型的模块。 **取值范围**：长度不超过128，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| device_report_period | 否    | Integer                                                                                                    | **参数说明**：设备上报周期。 **取值范围**：只允许数字，单位：秒，范围：5-86400(24小时)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| controller_type      | 否    | String                                                                                                     | **参数说明**：控制器类型。 - DDC：DDC类型   - VAV：VAV类型   - IOM：IOM类型   - DIO：DIO类型    |
   
 表3ManufacturerInfo 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                        |
|:---|:---|:---|:---|
| manufacturer_name | 否    | String | **参数说明**：设备厂商。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。 |
| manufacturer_code | 否    | String | **参数说明**：设备厂商编码。 **取值范围**：长度不超过32，只允许字母、数字、以及_-字符的组合。              |
| model             | 否    | String | **参数说明**：设备型号。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。  |
   
 表4AccessInfo 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                              |
|:---|:---|:---|:---|
| secret | 否    | String | **参数说明**：设备IoT鉴权密码。 **取值范围**：长度不超过32，只允许字母、数字以及_-字符的组合。 |
   
 表5SpecProperty 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                            |
|:---|:---|:---|:---|
| property_code  | 是    | String | **参数说明**：属性编码。 **取值范围**：长度不超过40，只允许英文字母大小写、数字、下划线的组合。 |
| property_value | 是    | Object | **参数说明**：属性值。                                                                                 |
   
#### 响应参数
**状态码：201**
表6响应Body参数 
| 参数                   | 参数类型                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| device_name          | String                                                                                                      | **参数说明**：设备名称。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| device_description   | String                                                                                                      | **参数说明**：设备描述。 **取值范围**：长度不超过256，只允许中文、字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| node_id              | String                                                                                                      | **参数说明**：设备标识码，通常使用IMEI、MAC地址或SN号作为node_id。 **取值范围**：长度不超过64，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| zone_id              | String                                                                                                      | **参数说明**：区域ID。 **取值范围**：长度不超过24，只允许字母、数字的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| zone_code            | String                                                                                                      | **参数说明**：空间编码。 **取值范围**：长度为1-32，只允许大小写字母、数字、#、_、.和-的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| product_id           | String                                                                                                      | **参数说明**：产品ID。 **取值范围**：长度不超过36，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| brand_id             | String                                                                                                      | **参数说明**：产品品牌ID。 **取值范围**：长度不超过36，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| device_id            | String                                                                                                      | **参数说明**：设备ID。 **取值范围**：长度不超过128，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| manufacturer_info    | [ManufacturerInfo] object   | **参数说明**：厂商信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| extension_info       | Map\<String,String\>                                                                                        | **参数说明**：设备扩展信息。最多填写10个扩展字段。 **取值范围**： key取值长度不超过36，只允许字母、数字、以及_-字符的组合。 value取值长度不超过64，只允许中文、字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                           |
| create_time          | String                                                                                                      | **参数说明**：创建时间。 **取值范围**："yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| spec_properties      | Array of [SpecProperty] objects | **参数说明**：设备规格属性列表。 **取值范围**：数组长度不超过100。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| access_info          | [AccessInfo] object               | **参数说明**：设备的接入认证信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| gateway_id           | String                                                                                                      | **参数说明**：网关ID。 **取值范围**：长度不超过64，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| parent_device_id     | String                                                                                                      | **参数说明**：父设备ID。用于标识设备所属的父设备，即父设备的设备ID。 **取值范围**：长度不超过128，只允许字母、数字、以及_-字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| edge_device_type     | String                                                                                                      | **参数说明**：边缘设备类型。 **取值范围**： - ELEC：机电设备   - HlinkG：HlinkG设备   - CONTROLLER：控制器    |
| device_report_period | Integer                                                                                                     | **参数说明**：设备上报周期。 **取值范围**：只允许数字，单位：秒，范围：5-86400(24小时)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表7ManufacturerInfo 
| 参数                | 参数类型   | 描述                                                                                                          |
|:---|:---|:---|
| manufacturer_name | String | **参数说明**：设备厂商。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。 |
| manufacturer_code | String | **参数说明**：设备厂商编码。 **取值范围**：长度不超过32，只允许字母、数字、以及_-字符的组合。                |
| model             | String | **参数说明**：设备型号。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-字符的组合。  |
   
 表8SpecProperty 
| 参数             | 参数类型   | 描述                                                                                            |
|:---|:---|:---|
| property_code  | String | **参数说明**：属性编码。 **取值范围**：长度不超过40，只允许英文字母大小写、数字、下划线的组合。 |
| property_value | Object | **参数说明**：属性值。                                                                                 |
   
 表9AccessInfo 
| 参数     | 参数类型   | 描述                                                                                             |
|:---|:---|:---|
| secret | String | **参数说明**：设备IoT鉴权密码。 **取值范围**：长度不超过32，只允许字母、数字以及_-字符的组合。 |
   
**状态码：400**
表10响应Body参数 
| 参数         | 参数类型   | 描述                                                                        |
|:---|:---|:---|
| error_code | String | **参数说明**：错误码。 **取值范围**：长度8-36。    |
| error_msg  | String | **参数说明**：错误描述。 **取值范围**：长度2-512。 |
   
#### 请求示例
- 创建边缘设备（机电设备）
  ```
  POST https://{endpoint}/v1/iotfm/edge/devices
  {
    "device_name" : "机电设备",
    "zone_id" : "18bc8551638d8ce541c32cf5",
    "product_id" : "18c9fa374df47041550bea48",
    "brand_id" : "18c9fa374df47041550bea48",
    "node_id" : "123123123",
    "gateway_id" : "937032984819937280",
    "edge_device_type" : "ELEC",
    "extension_info" : { }
  }
  ```
  
- 创建边缘设备（控制器设备）
  ```
  POST https://{endpoint}/v1/iotfm/edge/devices
  {
    "device_name" : "控制器",
    "controller_type" : "DDC",
    "zone_id" : "18bc8551638d8ce541c32cf5",
    "node_id" : "123123123",
    "gateway_id" : "937032984819937280",
    "edge_device_type" : "CONTROLLER",
    "extension_info" : {
      "subtype" : "terminalDev"
    },
    "module_id" : "user_hlink_test01"
  }
  ```
  
- 创建边缘设备（HLinkG设备）
  ```
  POST https://{endpoint}/v1/iotfm/edge/devices
  {
    "device_name" : "HLinkG设备",
    "zone_id" : "18ca01863e83e9e30b8ecf49",
    "node_id" : "123123123",
    "gateway_id" : "937032984819937280",
    "edge_device_type" : "HlinkG",
    "extension_info" : {
      "subtype" : "hlink"
    },
    "module_id" : "user_hlink_test01"
  }
  ```
  
 
#### 响应示例
**状态码：201**
Created
- 示例 1
  ```
  {
    "device_name" : "机电设备",
    "node_id" : "123123123",
    "zone_id" : "18bc8551638d8ce541c32cf5",
    "product_id" : "18c9fa374df47041550bea48",
    "brand_id" : "18c9fa374df47041550bea48",
    "device_id" : "123123123",
    "extension_info" : { },
    "create_time" : "2023-12-26T12:38:42.259Z",
    "spec_properties" : [ ],
    "access_info" : { },
    "gateway_id" : "937032984819937280",
    "parent_device_id" : "937032984819937280",
    "edge_device_type" : "ELEC"
  }
  ```
  
- 示例 2
  ```
  {
    "device_name" : "控制器",
    "node_id" : "123123123",
    "zone_id" : "18bc8551638d8ce541c32cf5",
    "product_id" : "1876a3839f4a344a3c4a04b6edge_cont",
    "brand_id" : "18c9fa374df47041550bea48",
    "device_id" : "123123123",
    "extension_info" : {
      "subtype" : "terminalDev",
      "module_id" : "user_hlink_test01"
    },
    "create_time" : "2023-12-26T12:55:12.257Z",
    "spec_properties" : [ ],
    "access_info" : { },
    "gateway_id" : "937032984819937280",
    "parent_device_id" : "937032984819937280",
    "edge_device_type" : "CONTROLLE",
    "controller_type" : "DDC"
  }
  ```
  
- 示例 3
  ```
  {
    "device_name" : "HLinkG设备",
    "node_id" : "123123123",
    "zone_id" : "18bc8551638d8ce541c32cf5",
    "product_id" : "1876a3839f4a344a3c4a04b6edge_HlinkG",
    "brand_id" : "18c9fa374df47041550bea48",
    "device_id" : "123123123",
    "extension_info" : {
      "subtype" : "terminalDev",
      "module_id" : "user_hlink_test01"
    },
    "create_time" : "2023-12-26T12:55:12.257Z",
    "spec_properties" : [ ],
    "access_info" : { },
    "gateway_id" : "937032984819937280",
    "parent_device_id" : "937032984819937280",
    "edge_device_type" : "HLINKG"
  }
  ```
  
 
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 201 | Created     |
| 400 | Bad Request |
   
