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 |
设备的连接状态,包含 |
allocateStatus |
String |
设备的分配状态,包含 |
PvsDeviceStatus 结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
currentStatus |
String |
设备当前状态,包含 |
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"
}
}