V2.5 Replace DPS Device¶
替换 DPS 设备。将原设备的主数据、创建批次标签和设备描述复制到指定的新设备上,并将原设备删除。
使用此 API 前,确保已安装 EnOS 2.4 CU2 或更新版本。
前提条件¶
确保已在 EnOS 管理控制台 中为 DPS 设备创建了主数据组和注册组。
请求格式¶
POST https://{apigw-address}/dps-service/v2.5/pvs/device?action=replace
请求参数(URI)¶
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 设备所属的组织 ID。如何获取 orgId 信息>> |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
sn | 必需 | String | 原设备的 SN 号,由系统生成,环境内唯一。 |
replacementSn | 必需 | String | 新设备的 SN 号,由系统生成,环境内唯一。注意新旧设备必须属于同一注册组,且新设备不可处于已分配状态。 |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
data | PvsDevice 结构体 | DPS 设备的信息。更多信息,参见 PvsDevice 结构体。 |
PvsDevice 结构体 ¶
名称 | 数据类型 | 描述 |
---|---|---|
sn | String | 系统生成的设备 SN 号,环境内唯一。 |
groupId | String | 注册组 ID。 |
regionId | String | 设备被分配至的 region ID。 |
orgId | String | 设备被分配至的组织 ID。 |
productKey | String | 设备在 EnOS 管理控制台 中对应的 product key。 |
batchOrder | Integer | 设备创建批次编号。 |
batchTag | StringI18n | 设备创建批次标签。国际化名称表示方法 >> |
deviceData | Map | 设备主数据。 |
desc | String | 设备描述。 |
status | PvsDeviceStatus 结构体 | 设备当前状态。更多信息,参见 PvsDeviceStatus 结构体。 |
reprovisioning | Boolean |
|
allocateErrorMsg | String | 设备上一次的分配失败信息。 |
createBy | String | 创建人的用户 ID。 |
createTime | Long | 设备的创建时间。 |
updateBy | String | 更新人的用户 ID。 |
updateTime | Long | 设备的修改时间。 |
manufacturerOrgId | String | 设备预注册的组织 ID。 |
connectStatus | String | 设备的连接状态,包含 init 、connected 和 failed 。 |
allocateStatus | String | 设备的分配状态,包含 init 和 allocated 。 |
PvsDeviceStatus 结构体 ¶
名称 | 数据类型 | 描述 |
---|---|---|
currentStatus | String | 设备当前状态,包含 init 、allocated 、connected 、finished 和 discarded 。 |
connectedTime | Long | 设备的连接时间。 |
allocatedTime | Long | 设备的分配时间。 |
finishedTime | Long | 设备激活完成的时间。 |
discardedTime | Long | 设备废弃的时间。 |
错误码¶
代码 | 错误信息 | 描述 |
---|---|---|
35400 | OrgId/Sn is required | 组织 ID 或设备创建信息为空/不合法。 |
35400 | Target device and replacement device should belong to the same group | 新旧设备必须属于同一注册组。 |
35404 | Sn not found | 设备 SN 号不存在。 |
35603 | Replacement device is allocated | 新设备处于已分配状态。 |
示例¶
请求示例¶
url: https://{apigw-address}/dps-service/v2.5/pvs/device?action=replace&orgId=yourOrgId
method: POST
requestBody:
{
"sn": "existingSn",
"replacementSn" : "newSn"
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "96f072bf-27d6-4c1d-b4a1-5df4e6367ad8",
"data": {
"sn": "existingSn",
"groupId": "groupId",
"regionId": "regionId",
"orgId": "yourorgId",
"productKey": "productKey",
"batchOrder": 3,
"batchTag": {
"defaultValue": "tag1",
"i18nValue": {}
},
"deviceData": {
"date": "2022-10-26",
"energyType": "steam",
"accessCapacity": null,
"regionId": "regionId",
"timezone": "+09:00",
"assetId": "assetId",
"energyUseLink": "consumption",
"isDtu": null,
"deviceSn": "existingDeviceSn",
"deviceName": {
"i18nValue": {}
},
"orgId": "yourorgId",
"isDtuSub": null
},
"desc": "test",
"status": {
"currentStatus": "allocated",
"connectedTime": null,
"allocatedTime": 1666847119072,
"finishedTime": null,
"discardedTime": null
},
"reprovisioning": false,
"allocateErrorMsg": null,
"createBy": null,
"createTime": 1666846864447,
"updateBy": null,
"updateTime": 1666846864447,
"connectStatus": "init",
"allocateStatus": "allocated"
}
}