API列表

address: https://api-aep.xiot.senthink.com

path: 参考各接口说明中的请求地址

接口调用必须携带公共请求头,公共请求头如下。

Headers:
参数名称 参数值 是否必须 备注
appId 添加api应用生成的appId
sign 计算的签名值,参考签名计算示例
nonce 随机数,可以使用随机数或者uuid
authorization 鉴权令牌,通过获取token接口获取 除token相关接口外必须
Content-Type application/json或multipart/form-data 未特殊说明接口均为application/json

公共错误码

code 描述 处理建议
40001 账号权限不足 检查账号权限
60001 操作失败,稍后重试 检查请求参数格式,或稍后再试
60003 参数错误 检查请求参数是否缺失,数据格式是否正确
60006 sign值校验错误 检查sign值加密方式
60007 token校验错误 检查token或重新获取鉴权参数
60009 数据不存在 检查请求参数对应数据是否存在

鉴权

获取鉴权参数

请求地址: /oauth/login 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
refresh_token string 刷新token 刷新认证时必须
client_id string appId
client_secret string appSecret
grant_type string 认证类型 password: 默认认证, refresh_token: 刷新认证

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
access_token string token
token_type string token类型 bearer
refresh_token string 刷新token
expires_in integer 过期时间(秒)
scope string 权限范围
user_id string 用户id
user_name string 用户名
company_id string 用户所属企业
role_type integer 用户角色 1:员工,2.企业
jti string jti

请求示例

1、获取鉴权参数

{
    "client_id":"yourAppId",
    "client_secret":"yourAppSecret",
    "grant_type":"password"
}

2、刷新鉴权参数

{
    "refresh_token":"yourRefreshToken",
    "client_id":"yourAppId",
    "client_secret":"yourAppSecret",
    "grant_type":"refresh_token"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "access_token": "theAccessToken",
        "token_type": "bearer",
        "refresh_token": "theRefreshToken",
        "expires_in": 259200,
        "scope": "all",
        "user_id": "yourUserId",
        "user_name": "yourUsername",
        "company_id": "yourCompanyId",
        "role_type": 1,
        "jti": "4b02c4d4-e5d3-42b6-ab67-0062fad87324"
    }
}

错误码

code 描述 处理建议
30001 客户端认证失败 检查请求参数内容是否正确
30003 不支持的认证模式 修改认证类型
30006 无效的refresh_token 确认refresh_token或使用密码认证方式
40001 无权限访问! 检查账号权限
60001 操作失败,稍后重试 检查请求参数格式,或稍后再试
60003 参数错误 检查请求参数格式

产品模块

添加产品

请求地址: /openApi/v2/product/add 传参方式: POST

备注: 无

请求参数

Body:

1.公共参数

参数名称 类型 是否必须 名称 备注 参数值
name string 产品名称 长度4~30个字符,中文算2个字符
deviceType integer 节点类型 0:设备, 1:网关
accessType integer 接入类型 节点类型为网关时只能选1 1:设备直连, 2:云云对接, 3:网关接入
payloadFormat integer 数据格式 云云对接产品、网关接入产品只能选1 0:透传, 1:非透传
dataFormat integer 消息格式 payloadFormat为0时非必须,为1时必须;, protocol为2或3时只能选2 0:十六进制, 1:Json, 2:自定义
productDesc string 产品说明 长度限制100个字符以内

2.其他参数

2.1 产品为设备:deviceType = 0

2.1.1 设备直连:accessType = 1

参数名称 类型 是否必须 名称 备注 参数值
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 通信协议 0:TCP, 1:MQTT, 2:MQTT开放协议
securityType integer 安全类型 设备直连时必须;, 通信协议为MQTT开放协议时只能选2 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
authType integer 认证加密方式 通信协议为MQTT开放协议时非必须,其余必须 0:AES128
encrypted integer 数据是否加密 通信协议为MQTT开放协议时非必须,其余必须 0:不加密, 1:加密

2.1.2 云云对接:accessType = 2

参数名称 类型 是否必须 名称 参数值
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 通信协议 3:电信CTWING
ctwingAppId string 电信应用ID
ctwingAppKey string 电信应用key
ctwingAppSecret string 电信应用密钥
ctwingMasterKey string 电信Masterkey
ctwingProductId string 电信产品productId
ctwingPayloadFormat integer 电信产品数据格式 0:电信非透传, 1:电信透传

2.1.3 网关接入:accessType = 3

参数名称 类型 是否必须 名称 参数值
securityType integer 安全类型 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
gatewayProtocol integer 通信协议 0:Zigbee, 1:Lora, 2:自定义

2.2 产品为网关:deviceType = 1

参数名称 类型 是否必须 名称 参数值
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 通信协议 1:MQTT
securityType integer 安全类型 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
authType integer 认证加密方式 0:AES128
encrypted integer 数据是否加密 0:不加密, 1:加密

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
productId string 产品productId
productKey string 产品密钥
name string 产品名称
accessType integer 接入类型 1:设备直连, 2:云云对接, 3:网关接入
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 协议类型 0:TCP, 1:MQTT, 2:MQTT开放协议, 3:电信CTWING
deviceType integer 设备类型 0:设备, 1:网关
securityType integer 安全类型 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
authType integer 认证类型 0:AES128
encrypted integer 是否加密 0:不加密, 1:加密
payloadFormat integer 数据格式 0:透传, 1:非透传
dataFormat integer 消息格式 0:十六进制, 1:Json, 2:自定义
productDesc string 产品描述
createAt string 创建时间
deviceNum integer 产品设备数

示例

1、产品为设备:设备直连

请求示例

{
    "name":"OpenAPIV2产品MQTT测试001",
    "deviceType":0,
    "accessType":1,
    "payloadFormat":1,
    "dataFormat":0,
    "authType":0,
    "encrypted":0,
    "netType":0,
    "protocol":1,
    "securityType":1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "productId": "98FF3568",
        "productKey": "FD2BC404DDA7840C6126B84259689BA3",
        "name": "OpenAPIV2产品MQTT测试001",
        "accessType": 1,
        "netType": 0,
        "protocol": 1,
        "deviceType": 0,
        "securityType": 1,
        "authType": 0,
        "encrypted": 0,
        "payloadFormat": 1,
        "dataFormat": 0,
        "productDesc": null,
        "createAt": "2022-12-14 11:08:09",
        "deviceNum": 0
    }
}

2、产品为设备:云云对接

请求示例

{
    "name":"OpenAPIV2产品Ctwing测试001",
    "deviceType":0,
    "accessType":2,
    "payloadFormat":1,
    "dataFormat":2,
    "authType":0,
    "encrypted":0,
    "netType":0,
    "protocol":3,
    "ctwingAppId":"67844",
    "ctwingAppKey":"WTazSGDqTuh",
    "ctwingAppSecret":"Cx6E1ccFn3",
    "ctwingMasterKey":"2d2b8c70eadc4e56b35de494b85319f4",
    "ctwingProductId":"15495260",
    "ctwingPayloadFormat":0
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "productId": "78D5BFFA",
        "productKey": "514D12A9F605634EBD19E0B573B54D41",
        "name": "OpenAPIV2产品Ctwing测试001",
        "accessType": 2,
        "netType": 0,
        "protocol": 3,
        "deviceType": 0,
        "securityType": null,
        "authType": null,
        "encrypted": null,
        "payloadFormat": 1,
        "dataFormat": 2,
        "productDesc": null,
        "createAt": "2022-12-14 11:27:54",
        "deviceNum": 0
    }
}

3、产品为设备:网关接入

请求示例

{
    "name":"OpenAPIV2产品网关接入测试001",
    "deviceType":0,
    "accessType":3,
    "payloadFormat":1,
    "dataFormat":1,
    "securityType":1,
    "gatewayProtocol":1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "productId": "11E1E03F",
        "productKey": "64A4A764F37EFBEFAC05B1DF9EC9091B",
        "name": "OpenAPIV2产品网关接入测试001",
        "accessType": 3,
        "netType": null,
        "protocol": 1,
        "deviceType": 0,
        "securityType": 1,
        "authType": null,
        "encrypted": null,
        "payloadFormat": 1,
        "dataFormat": 1,
        "productDesc": null,
        "createAt": "2022-12-14 11:33:56",
        "deviceNum": 0
    }
}

4、产品为网关

请求示例

{
    "name":"OpenAPIV2产品节点网关测试001",
    "deviceType":1,
    "accessType":1,
    "payloadFormat":1,
    "dataFormat":0,
    "netType":0,
    "protocol":1,
    "securityType":1,
    "authType":0,
    "encrypted":0
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "productId": "59D3C6A3",
        "productKey": "675F55777B069113F7D3FFA6F9129E0A",
        "name": "OpenAPIV2产品节点网关测试001",
        "accessType": 1,
        "netType": 0,
        "protocol": 1,
        "deviceType": 1,
        "securityType": 1,
        "authType": 0,
        "encrypted": 0,
        "payloadFormat": 1,
        "dataFormat": 0,
        "productDesc": null,
        "createAt": "2022-12-14 11:39:22",
        "deviceNum": 0
    }
}

错误码

code 描述
66001 添加产品失败
66003 产品名称不符合格式
66004 产品描述超出限制
66005 接入方式错误

编辑产品

请求地址: /openApi/v2/product/edit 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
name string 产品名称
productDesc string 产品说明 长度限制100个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "productId": "98FF3568",
  "name":"OpenAPIV2产品MQTT测试0011",
  "productDesc": "api编辑产品"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60004 产品不存在
66003 产品名称不符合格式
66004 产品描述超出限制

删除产品

请求地址: /openApi/v2/product/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "productId": "8A0F0491"
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data": true
}

错误码

code 描述
60004 产品不存在
66002 删除产品失败

查询产品详情

请求地址: /openApi/v2/product/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
productId string 产品productId
productKey string 产品密钥
name string 产品名称
accessType integer 接入类型 1:设备直连, 2:云云对接, 3:网关接入
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 协议类型 0:TCP, 1:MQTT, 2:MQTT开放协议, 3:电信CTWING
deviceType integer 设备类型 0:设备, 1:网关
securityType integer 安全类型 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
authType integer 认证类型 0:AES128
encrypted integer 是否加密 0:不加密, 1:加密
payloadFormat integer 数据格式 0:透传, 1:非透传
dataFormat integer 消息格式 0:十六进制, 1:Json, 2:自定义
productDesc string 产品描述
createAt string 创建时间
deviceNum integer 产品设备数

请求示例

{
    "productId":"98FF3568"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "productId": "98FF3568",
        "productKey": "FD2BC404DDA7840C6126B84259689BA3",
        "name": "OpenAPIV2产品MQTT测试001",
        "accessType": 1,
        "netType": 0,
        "protocol": 1,
        "deviceType": 0,
        "securityType": 1,
        "authType": 0,
        "encrypted": 0,
        "payloadFormat": 1,
        "dataFormat": 0,
        "productDesc": null,
        "createAt": "2022-12-14 11:08:09",
        "deviceNum": 0
    }
}

错误码

code 描述
60004 产品不存在

获取产品列表

请求地址: /openApi/v2/product/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
productId string 产品productId
productKey string 产品密钥
name string 产品名称
accessType integer 接入类型 1:设备直连, 2:云云对接, 3:网关接入
netType integer 网络类型 0:WI-FI, 1:移动蜂窝数据, 2:以太网, 4:NB-IOT, -1:其他
protocol integer 协议类型 0:TCP, 1:MQTT, 2:MQTT开放协议, 3:电信CTWING
deviceType integer 设备类型 0:设备, 1:网关
securityType integer 安全类型 0:一型一密免注册, 1:一型一密预注册, 2:一机一密预注册
authType integer 认证类型 0:AES128
encrypted integer 是否加密 0:不加密, 1:加密
payloadFormat integer 数据格式 0:透传, 1:非透传
dataFormat integer 消息格式 0:十六进制, 1:Json, 2:自定义
productDesc string 产品描述
createAt string 创建时间
deviceNum integer 产品设备数

请求示例

{
  "page": 1,
  "pageSize": 100
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "productId": "A66AF6D8",
                "productKey": "6D63E72964F24B076D44689949242FB5",
                "name": "OpenAPIV2产品MQTT测试002",
                "accessType": 1,
                "netType": 0,
                "protocol": 1,
                "deviceType": 0,
                "securityType": 1,
                "authType": 0,
                "encrypted": 0,
                "payloadFormat": 1,
                "dataFormat": 0,
                "productDesc": null,
                "createAt": "2022-12-14 15:17:26",
                "deviceNum": 0
            }
        ],
        "current": 1,
        "size": 1,
        "total": 30
    }
}

获取产品物模型tsl

请求地址: /openApi/v2/product/getTsl 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
modelId string 物模型id
productId string 产品productId
productName string 产品名称
draftModelMetaData string 物模型草稿
modelMetaData string 已发布的物模型
draftAnalyzeScript string 解析脚本草稿
analyzeScript string 已发布的解析脚本

请求示例

{
  "productId": "1286A6CA"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "modelId": "636b1cd6b55f7227a27e5861",
        "productId": "1286A6CA",
        "productName": "测试物模型非透传json格式",
        "draftModelMetaData": "{\"profile\":{\"version\":\"1.0\",\"productKey\":\"40CE563F93E598FEF3A78E636D54B340\",\"productModelId\":\"636b1cd6b55f7227a27e5861\"},\"properties\":[{\"identifier\":\"test_int11\",\"name\":\"test_int11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}},\"accessMode\":\"r\"},{\"identifier\":\"test_int\",\"identifierOld\":\"test_int1\",\"name\":\"test_int\",\"dataType\":{\"type\":\"int32\",\"spec\":{\"min\":\"1\",\"max\":\"100\",\"step\":\"1\",\"unit\":\"\"}},\"accessMode\":\"rw\"},{\"identifier\":\"ttttest_bool\",\"identifierOld\":\"tttest_bool\",\"name\":\"ttttest_bool\",\"dataType\":{\"type\":\"bool\",\"spec\":{\"0\":\"关2\",\"1\":\"开2\"}},\"accessMode\":\"rw\"}],\"events\":[{\"identifier\":\"q\",\"identifierOld\":\"q\",\"name\":\"q\",\"type\":\"info\",\"outputData\":[{\"identifier\":\"q\",\"identifierOld\":\"q\",\"name\":\"qq\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}},{\"identifier\":\"q1\",\"name\":\"11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}}]}],\"services\":[{\"identifier\":\"qqqp\",\"identifierOld\":\"qqqp\",\"name\":\"qq\",\"callType\":\"async\",\"inputData\":[{\"identifier\":\"11\",\"identifierOld\":\"11\",\"name\":\"11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}},{\"identifier\":\"2\",\"name\":\"22\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}}],\"outputData\":[{\"identifier\":\"3\",\"identifierOld\":\"3\",\"name\":\"33\",\"dataType\":{\"type\":\"float\",\"spec\":{}}}]}]}",
        "modelMetaData": "{\"profile\":{\"version\":\"1.0\",\"productKey\":\"40CE563F93E598FEF3A78E636D54B340\",\"productModelId\":\"636b1cd6b55f7227a27e5861\"},\"properties\":[{\"identifier\":\"test_int11\",\"name\":\"test_int11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}},\"accessMode\":\"r\"},{\"identifier\":\"test_int\",\"identifierOld\":\"test_int1\",\"name\":\"test_int\",\"dataType\":{\"type\":\"int32\",\"spec\":{\"min\":\"1\",\"max\":\"100\",\"step\":\"1\",\"unit\":\"\"}},\"accessMode\":\"rw\"},{\"identifier\":\"ttttest_bool\",\"identifierOld\":\"tttest_bool\",\"name\":\"ttttest_bool\",\"dataType\":{\"type\":\"bool\",\"spec\":{\"0\":\"关2\",\"1\":\"开2\"}},\"accessMode\":\"rw\"}],\"events\":[{\"identifier\":\"q\",\"identifierOld\":\"q\",\"name\":\"q\",\"type\":\"info\",\"outputData\":[{\"identifier\":\"q\",\"identifierOld\":\"q\",\"name\":\"qq\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}},{\"identifier\":\"q1\",\"name\":\"11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}}]}],\"services\":[{\"identifier\":\"qqqp\",\"identifierOld\":\"qqqp\",\"name\":\"qq\",\"callType\":\"async\",\"inputData\":[{\"identifier\":\"11\",\"identifierOld\":\"11\",\"name\":\"11\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}},{\"identifier\":\"22\",\"identifierOld\":\"22\",\"name\":\"22\",\"dataType\":{\"type\":\"int32\",\"spec\":{}}}],\"outputData\":[{\"identifier\":\"3\",\"name\":\"33\",\"dataType\":{\"type\":\"float\",\"spec\":{}}}]}]}",
        "draftAnalyzeScript": "/**\n * 上行16进制字符串转物模型JSON入口\n * \n*/\nfunction rawDataToProtocol(strString) {\n// todo hex to jsonString    var jsonMap = new Object();\n    return jsonMap;\n}\n\n/**\n * 下行json格式数据转十六进制字符串入口\n * \n*/\nfunction protocolToRawData(json) {\n// todo json to hexStringvar hexString = \"\"    return hexString;\n}\n",
        "analyzeScript": null
    }
}

错误码

code 描述
60004 产品不存在

获取产品下相关的Topic

请求地址: /openApi/v2/product/getTopic 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
nodeEui string 设备号 传nodeEui就具体到设备,不传就加通配符

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
nodeTopic MqttTopic[] 设备topic
baseTopic MqttTopic[] 基础通信topic
throughTopic MqttTopic[] 透传调试topic
modelTopic MqttTopic[] 物模型jsonTopic
modelHexTopic MqttTopic[] 物模型hexTopic
customTopic MqttTopic[] 自定义topic
childTopic MqttTopic[] 子设备topic

MqttTopic 说明

参数名称 类型 名称 参数
function string 功能
topic string topic
permission integer 操作权限 1:订阅, 2:发布,
desc string 描述
subStatus integer 订阅状态 1:已订阅, 2:未订阅, 3:发布

示例

1、只传入产品productId

请求示例

{
  "productId": "A66AF6D8"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "nodeTopic": null,
        "baseTopic": [
            {
                "function": "认证",
                "topic": "/sys/device/auth",
                "permission": 2,
                "desc": "用于设备认证",
                "subStatus": null
            },
            {
                "function": "入网",
                "topic": "/sys/device/join",
                "permission": 2,
                "desc": "用于设备入网",
                "subStatus": null
            },
            {
                "function": "数据下行",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/downlink",
                "permission": 1,
                "desc": "平台下行topic(用于认证,心跳,入网的回复)",
                "subStatus": null
            },
            {
                "function": "心跳",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/heartbeat",
                "permission": 2,
                "desc": "用于心跳上报",
                "subStatus": null
            },
            {
                "function": "固件上报",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/firmware_report",
                "permission": 2,
                "desc": "用于固件上报",
                "subStatus": null
            },
            {
                "function": "固件上报应答",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/firmware_report_ack",
                "permission": 1,
                "desc": "固件上报服务端应答",
                "subStatus": null
            },
            {
                "function": "固件查询",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/ask_firmware",
                "permission": 1,
                "desc": "平台查询设备固件信息",
                "subStatus": null
            },
            {
                "function": "升级通知",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/ota_notify",
                "permission": 1,
                "desc": "平台通知设备升级",
                "subStatus": null
            },
            {
                "function": "升级通知回复",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/ota_notify_ack",
                "permission": 2,
                "desc": "设备收到ota通知之后回复平台",
                "subStatus": null
            },
            {
                "function": "查询配置",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/ask_config",
                "permission": 1,
                "desc": "平台查询设备配置信息",
                "subStatus": null
            },
            {
                "function": "配置上报",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/config_report",
                "permission": 2,
                "desc": "设备上报配置以及平台下发配置的回复均使用该topic",
                "subStatus": null
            },
            {
                "function": "下发配置",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/down_config",
                "permission": 1,
                "desc": "平台给设备下发配置",
                "subStatus": null
            },
            {
                "function": "下发订阅通配",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/#",
                "permission": 1,
                "desc": "下发订阅通配",
                "subStatus": null
            }
        ],
        "throughTopic": null,
        "modelTopic": null,
        "modelHexTopic": [
            {
                "function": "设备属性、事件上报",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/model/hex/report",
                "permission": 2,
                "desc": "设备物模型数据上报",
                "subStatus": null
            },
            {
                "function": "平台应答",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/model/hex/report_ack",
                "permission": 1,
                "desc": "平台响应设备数据上报",
                "subStatus": null
            },
            {
                "function": "平台下发属性查询、属性设置、服务调用",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/model/hex/downlink",
                "permission": 1,
                "desc": "平台下发数据",
                "subStatus": null
            },
            {
                "function": "设备应答",
                "topic": "/sys/8C3E488A/A66AF6D8/${deviceId}/model/hex/downlink_ack",
                "permission": 2,
                "desc": "设备响应平台下发数据",
                "subStatus": null
            }
        ],
        "customTopic": [
            {
                "function": null,
                "topic": "/sys/sub/8C3E488A/A66AF6D8/${deviceId}/custom/pubTest",
                "permission": 1,
                "desc": "test",
                "subStatus": null
            },
            {
                "function": null,
                "topic": "/sys/pub/8C3E488A/A66AF6D8/${deviceId}/custom/testPub",
                "permission": 2,
                "desc": "test1",
                "subStatus": null
            }
        ],
        "childTopic": null
    }
}

2、传入产品productId和设备号

请求示例

{
  "productId": "620cafcb",
  "nodeEui":"0001"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "nodeTopic": [
            {
                "function": "认证",
                "topic": "/sys/device/auth",
                "permission": 2,
                "desc": "用于设备认证",
                "subStatus": 3
            },
            {
                "function": "入网",
                "topic": "/sys/device/join",
                "permission": 2,
                "desc": "用于设备入网",
                "subStatus": 3
            },
            {
                "function": "数据下行",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/downlink",
                "permission": 1,
                "desc": "平台下行topic(用于认证,心跳,入网的回复)",
                "subStatus": 2
            },
            {
                "function": "心跳",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/heartbeat",
                "permission": 2,
                "desc": "用于心跳上报",
                "subStatus": 3
            },
            {
                "function": "固件上报",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/firmware_report",
                "permission": 2,
                "desc": "用于固件上报",
                "subStatus": 3
            },
            {
                "function": "固件上报应答",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/firmware_report_ack",
                "permission": 1,
                "desc": "固件上报服务端应答",
                "subStatus": 2
            },
            {
                "function": "固件查询",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/ask_firmware",
                "permission": 1,
                "desc": "平台查询设备固件信息",
                "subStatus": 2
            },
            {
                "function": "升级通知",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/ota_notify",
                "permission": 1,
                "desc": "平台通知设备升级",
                "subStatus": 2
            },
            {
                "function": "升级通知回复",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/ota_notify_ack",
                "permission": 2,
                "desc": "设备收到ota通知之后回复平台",
                "subStatus": 3
            },
            {
                "function": "查询配置",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/ask_config",
                "permission": 1,
                "desc": "平台查询设备配置信息",
                "subStatus": 2
            },
            {
                "function": "配置上报",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/config_report",
                "permission": 2,
                "desc": "设备上报配置以及平台下发配置的回复均使用该topic",
                "subStatus": 3
            },
            {
                "function": "下发配置",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/down_config",
                "permission": 1,
                "desc": "平台给设备下发配置",
                "subStatus": 2
            },
            {
                "function": "下发订阅通配",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/#",
                "permission": 1,
                "desc": "下发订阅通配",
                "subStatus": 2
            },
            {
                "function": "设备属性、事件上报",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/model/hex/report",
                "permission": 2,
                "desc": "设备物模型数据上报",
                "subStatus": 3
            },
            {
                "function": "平台应答",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/model/hex/report_ack",
                "permission": 1,
                "desc": "平台响应设备数据上报",
                "subStatus": 2
            },
            {
                "function": "平台下发属性查询、属性设置、服务调用",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/model/hex/downlink",
                "permission": 1,
                "desc": "平台下发数据",
                "subStatus": 2
            },
            {
                "function": "设备应答",
                "topic": "/sys/8C3E488A/A66AF6D8/0001/model/hex/downlink_ack",
                "permission": 2,
                "desc": "设备响应平台下发数据",
                "subStatus": 3
            },
            {
                "function": null,
                "topic": "/sys/pub/8C3E488A/A66AF6D8/0001/custom/testPub",
                "permission": 2,
                "desc": "test1",
                "subStatus": 3
            },
            {
                "function": null,
                "topic": "/sys/sub/8C3E488A/A66AF6D8/0001/custom/pubTest",
                "permission": 1,
                "desc": "test",
                "subStatus": 2
            }
        ],
        "baseTopic": null,
        "throughTopic": null,
        "modelTopic": null,
        "modelHexTopic": null,
        "customTopic": null,
        "childTopic": null
    }
}

错误码

code 描述
60004 产品不存在
60005 设备不存在

设备管理

添加设备

请求地址: /openApi/v2/node/add 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
nodeEui string 设备号 - 设备号在系统内具有产品下唯一性,支持英文字母、数字,长度限制4-32个字符; - 电信CTWING设备ID必须为15位数字。
deviceName string 设备名称 长度4-30个字符,中文算2个字符

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
nodeId string 设备id
nodeEui string 设备号
deviceSecret string 设备Secret
productId string 产品productId
productKey string 产品密钥

请求示例

{
    "productId":"5207C002",
    "nodeEui":"mqttDevice002",
    "deviceName":"qqqq"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "nodeId": "639ac12f8ceff74a36d5b66f",
        "nodeEui": "mqttDevice002",
        "deviceSecret": "DA1BA501D81C5C7777ED3C4B1456F704",
        "productId": "5207C002",
        "productKey": "82E9AD63B2C7D26A4B24355BE631E847"
    }
}

错误码

code 描述
60004 产品不存在
61003 设备已存在
61004 设备号不符合规范
61005 设备备注名称不符合规范

编辑设备

请求地址: /openApi/v2/node/edit 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
deviceName string 设备名称 长度4-30个字符,中文算2个字符

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "nodeId":"639abdbdc7df4956b4ec4aa9",
    "deviceName":"修改设备名称测试"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
61005 设备备注名称不符合规范

删除设备

请求地址: /openApi/v2/node/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "nodeId":"639abdbdc7df4956b4ec4aa9"
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data": true
}

错误码

code 描述
60005 设备不存在

分页查询设备

请求地址: /openApi/v2/node/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
connected integer 在线状态 0:离线, 1:在线, -1:未激活
enableStatus integer 启用状态 0:禁用, 1:启用
productId string 产品productId
nodeEui string 设备号

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
nodeId string 设备id
nodeEui string 设备号
deviceName string 设备名称
deviceSecret string 设备密钥
status integer 设备启用状态 0:禁用, 1:启用
connected integer 在线状态 -1:未激活, 0:离线, 1:在线
productId string 所属产品productId
productKey string 所属产品productKey
productName string 所属产品名称
deviceType integer 节点类型 0:设备, 1:网关
encrypted integer 是否加密 0:不加密, 1:加密
upNodeId string 子设备对应的网关设备的设备号
subDeviceCount integer 网关子设备数量
relationState integer 网关与子设备的关系 0:未关联, 1:已关联, 2:解除中
gatewayStatus integer 子设备所属网关设备的状态 -1:未激活, 0:离线, 1:在线
localLogReport integer 本地日志上报使能 0:禁用, 1:启用
otaType integer 设备升级方式 0:tcp, 1:http
hardVer string 硬件版本
softVer string 软件版本
versionReportAt string 版本上报时间
createAt string 创建时间
activeAt string 智能设备激活时间
lastJoinAt string 智能设备最近一次入网时间
lastDisconnectAt string 智能设备最近一次离线时间
lastHeartbeatAt string 智能设备最近一次心跳时间

请求示例

{
    "page":1,
    "pageSize":1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "nodeId": "639ac1e78ceff74a36d5b671",
                "nodeEui": "mqttDevice00",
                "deviceName": "mqttDevice00",
                "deviceSecret": "E2947CCCEBA91B04E85CF4A9359F7DE5",
                "status": 1,
                "connected": -1,
                "productId": "5207C002",
                "productKey": "82E9AD63B2C7D26A4B24355BE631E847",
                "productName": "OpenAPI产品MQTT测试001",
                "deviceType": 0,
                "encrypted": 0,
                "upNodeId": null,
                "subDeviceCount": 0,
                "relationState": 0,
                "gatewayStatus": null,
                "localLogReport": 1,
                "otaType": null,
                "hardVer": null,
                "softVer": null,
                "versionReportAt": null,
                "createAt": "2022-12-15 14:42:47",
                "activeAt": null,
                "lastJoinAt": null,
                "lastDisconnectAt": null,
                "lastHeartbeatAt": null
            }
        ],
        "current": 1,
        "size": 1,
        "total": 38
    }
}

设备详情

请求地址: /openApi/v2/node/query 传参方式: POST

备注

  • 无设备id时,设备号和产品productId必填
  • 当设备id、设备号、产品productId都有值的情况下,以设备id为准

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
nodeEui string 设备号
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
nodeId string 设备id
nodeEui string 设备号
deviceName string 设备名称
deviceSecret string 设备密钥
status integer 设备启用状态 0:禁用, 1:启用
connected integer 在线状态 -1:未激活, 0:离线, 1:在线
productId string 所属产品productId
productKey string 所属产品productKey
productName string 所属产品名称
deviceType integer 节点类型 0:设备, 1:网关
encrypted integer 是否加密 0:不加密, 1:加密
upNodeId string 子设备对应的网关设备的设备号
subDeviceCount integer 网关子设备数量
relationState integer 网关与子设备的关系 0:未关联, 1:已关联, 2:解除中
gatewayStatus integer 子设备所属网关设备的状态 -1:未激活, 0:离线, 1:在线
localLogReport integer 本地日志上报使能 0:禁用, 1:启用
otaType integer 设备升级方式 0:tcp, 1:http
hardVer string 硬件版本
softVer string 软件版本
versionReportAt string 版本上报时间
createAt string 创建时间
activeAt string 智能设备激活时间
lastJoinAt string 智能设备最近一次入网时间
lastDisconnectAt string 智能设备最近一次离线时间
lastHeartbeatAt string 智能设备最近一次心跳时间

请求示例

{
    "nodeId":"639ac12f8ceff74a36d5b66f"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "nodeId": "639ac12f8ceff74a36d5b66f",
        "nodeEui": "mqttDevice002",
        "deviceName": "qqqq",
        "deviceSecret": "DA1BA501D81C5C7777ED3C4B1456F704",
        "status": 1,
        "connected": -1,
        "productId": "5207C002",
        "productKey": "82E9AD63B2C7D26A4B24355BE631E847",
        "productName": "OpenAPI产品MQTT测试001",
        "deviceType": 0,
        "encrypted": 0,
        "localLogReport": 1,
        "otaType": null,
        "hardVer": null,
        "softVer": null,
        "versionReportAt": null,
        "createAt": "2022-12-15 14:39:43",
        "activeAt": null,
        "lastJoinAt": null,
        "lastDisconnectAt": null,
        "lastHeartbeatAt": null
    }
}

错误码

code 描述
60005 设备不存在

自定义topic在线调试

请求地址: /openApi/v2/node/customInstruct 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
instruction string 命令
topic string 自定义topic

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "nodeId": "639ac12f8ceff74a36d5b66f",
  "instruction": "FFFF",
  "topic": "/sys/sub/8C3E488A/A98F5743/lnmqtt0007/custom/test"
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data": true
}

错误码

code 描述
60005 设备不存在
62001 设备不在线
62002 设备已禁用

普通透传在线调试

请求地址: /openApi/v2/node/instruct 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 参数值
nodeId string 设备id
instruction string 命令
instructionType string 命令类型 0:十六进制, 1:字符串

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "nodeId": "639ac12f8ceff74a36d5b66f",
  "instruction": "FFFF",
  "instructionType": 0
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data":  true
}

错误码

code 描述
60005 设备不存在
62001 设备不在线
62002 设备已禁用

下发配置

请求地址: /openApi/v2/node/config 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
nodeId string 设备id
configData string 配置数据

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "nodeId": "620cafcb40539518e647cb39",
  "configData": "{data:\"1231\"}"  
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data":  true
}

错误码

code 描述
60005 设备不存在
62001 设备不在线
62002 设备已禁用
62003 不支持的命令类型

获取配置

请求地址: /openApi/v2/node/getConfig 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "nodeId": "620cafcb40539518e647cb39"
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data":  true
}

错误码

code 描述
60005 设备不存在
62001 设备不在线
62002 设备已禁用

批量导入设备

请求地址: /openApi/v2/node/batchAdd 传参方式: POST

备注: 同一个appId上次任务未结束,不能创建新任务

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
nodes nodeDetail[] 设备列表

nodeDetail 说明

参数名称 类型 是否必须 名称 备注
nodeEui string 设备号
deviceName string 设备名称

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
applyId string 批次号

请求示例

{
    "productId": "5207C002",
    "nodes": [{
            "nodeEui": "mqttDevice004",
            "deviceName": "004"
        },
        {
            "nodeEui": "mqttDevice005",
            "deviceName": "005"
        },
        {
            "nodeEui": "mqttDevice006",
            "deviceName": "006"
        },
        {
            "nodeEui": "mqttDevice008",
            "deviceName": "008"
        }
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "applyId": "af14f07d-8961-4a81-bd82-af29d7ca6432"
    }
}

错误码

code 描述
61001 设备导入失败
61002 导入超过上限
61003 设备已存在
61004 设备号不符合规范
61005 设备备注名称不符合规范

批量导入设备批次号查询接口

请求地址: /openApi/v2/node/queryBatchAddInfo 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
applyId string 批量插入批次号

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
successList successList[] 成功列表(分页)
failList failList[] 失败列表(不分页)
importStatus integer 导入状态 -1:导入失败, 0:导入中, 1:导入完成

successList 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
nodeId string 设备id
nodeEui string 设备号
deviceSecret string 设备Secret
productId string 产品productId
productKey string 产品密钥

failList 说明

参数名称 类型 名称 备注
nodeEui string 设备号
deviceName string 设备名称
failReason string 失败原因

请求示例

{
   "applyId":"7a6c09b5-b565-49fa-99b5-5d3c5facfbdf"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "importStatus": 1,
        "successList": {
            "records": [
                {
                    "nodeId": "63a16d278e5f354034bd69a3",
                    "nodeEui": "mqttDevice008",
                    "deviceSecret": "B3DB80BB4DE5302E3C6739715E0C1B8D",
                    "productId": "5207C002",
                    "productKey": "82E9AD63B2C7D26A4B24355BE631E847"
                }
            ],
            "current": 1,
            "size": 10,
            "total": 1
        },
        "failList": [
            {
                "nodeEui": "mqttDevice009",
                "deviceName": "009",
                "failReason": "deviceName格式非法"
            }
        ]
    }
}

子设备管理

批量添加或解除子设备

请求地址: /openApi/v2/subDevice/batchAddOrRelieve 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 参数值
gatewayNodeId string 网关设备id
subdeviceNodeIds string[] 子设备id集合
type boolean 操作类型 true:批量添加子设备, false:批量解除子设备

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "gatewayNodeId": "63a18ad6d2c8a94fe4cd337b",
    "subdeviceNodeIds": ["63a18b1ad2c8a94fe4cd3382", "63a18b25d2c8a94fe4cd3385"],
    "type": true
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
61014 子设备已存在关联网关

分页查询子设备列表

请求地址: /openApi/v2/subDevice/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
nodeId string 网关设备id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
nodeId string 设备id
nodeEui string 设备号
deviceName string 设备名称
deviceSecret string 设备密钥
status integer 设备启用状态 0:禁用, 1:启用
connected integer 在线状态 -1:未激活, 0:离线, 1:在线
productId string 所属产品productId
productKey string 所属产品productKey
productName string 所属产品名称
deviceType integer 节点类型 0:设备, 1:网关
encrypted integer 是否加密 0:不加密, 1:加密
upNodeId string 子设备对应的网关设备的设备号
subDeviceCount integer 网关子设备数量
relationState integer 网关与子设备的关系 0:未关联, 1:已关联, 2:解除中
gatewayStatus integer 子设备所属网关设备的状态 -1:未激活, 0:离线, 1:在线
localLogReport integer 本地日志上报使能 0:禁用, 1:启用
otaType integer 设备升级方式 0:tcp, 1:http
hardVer string 硬件版本
softVer string 软件版本
versionReportAt string 版本上报时间
createAt string 创建时间
activeAt string 智能设备激活时间
lastJoinAt string 智能设备最近一次入网时间
lastDisconnectAt string 智能设备最近一次离线时间
lastHeartbeatAt string 智能设备最近一次心跳时间

请求示例

{
    "nodeId": "63a18ad6d2c8a94fe4cd337b",
    "page":1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "nodeId": "63a18b1ad2c8a94fe4cd3382",
                "nodeEui": "test0001",
                "deviceName": "test0001",
                "deviceSecret": "4BE6AC005A6586EBD805FEF56DB39902",
                "status": 1,
                "connected": -1,
                "productId": "2141E406",
                "productKey": "34A3B1D8C42C698F0469DCEF0BB51C5F",
                "productName": "网关子设备产品",
                "deviceType": 0,
                "encrypted": null,
                "upNodeId": "8C3E488A-CFFC2801-testGateWay",
                "subDeviceCount": 0,
                "relationState": 0,
                "gatewayStatus": null,
                "localLogReport": 1,
                "otaType": null,
                "hardVer": null,
                "softVer": null,
                "versionReportAt": null,
                "createAt": "2022-12-20 18:14:50",
                "activeAt": null,
                "lastJoinAt": null,
                "lastDisconnectAt": null,
                "lastHeartbeatAt": null
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

设备分组管理

添加分组

请求地址: /openApi/v2/deviceGroup/add 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
name string 分组名称 支持中文、英文字母、数字和下划线(_),长度限制4~30个字符,中文算2个字符,企业下唯一
level integer 层级 0:1级分组, 1:2级分组, 2:三级分组
num string 分组编号
parentNum string 所属父分组的分组编号 在创建2级和3级分组时为必填
description string 分组描述 长度限制100个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
groupId string 分组id
name string 分组名称
num string 分组编号
parentNum string 所属父分组的分组编号
level integer 层级 0:1级分组, 1:2级分组, 2:三级分组
description string 分组描述
createAt string 创建时间

请求示例

{
  "name": "2222",
  "level": "0"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "groupId": "63a171660191fd310a0b12fb",
        "name": "2222",
        "num": "YmUce1VAKFziSANQ",
        "parentNum": null,
        "level": 1,
        "description": null,
        "createAt": "2022-12-20 16:25:10"
    }
}

错误码

code 描述
61006 添加设备分组失败
61008 设备分组名称不合法
61009 分组描述不合法
61010 分组所属父级不存在

编辑分组

请求地址: /openApi/v2/deviceGroup/edit 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
groupId string 分组id
name string 分组名称 支持中文、英文字母、数字和下划线(_),长度限制4~30个字符,中文算2个字符,企业下唯一
description string 分组描述 长度限制100个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
   "groupId": "63a1753a257ea9623fc1744e",
   "name":"3333",
   "description":"修改名称"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
61008 设备分组名称不合法
61009 分组描述不合法
61010 分组所属父级不存在

删除分组

请求地址: /openApi/v2/deviceGroup/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
groupId string 分组id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
   "groupId": "63a1753a257ea9623fc1744e"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
61007 删除设备分组失败

查询分组列表

请求地址: /openApi/v2/deviceGroup/list 传参方式: POST

备注: 无

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
groupId string 分组id
name string 分组名称
num string 分组编号
parentNum string 父级编号
level integer 层级 0:1级分组, 1:2级分组, 2:三级分组
description string 分组描述
createAt string 创建时间

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "groupId": "63637542f2c16c3e2ec2bb3a",
            "name": "测试分组",
            "num": "0rekF4H0cZ8IM5nK",
            "parentNum": null,
            "level": 1,
            "description": null,
            "createAt": "2022-11-03 16:01:06"
        },
        {
            "groupId": "63637551f2c16c3e2ec2bb3b",
            "name": "二级分组",
            "num": "Z4LSklduJ8LJ3gPC",
            "parentNum": "0rekF4H0cZ8IM5nK",
            "level": 2,
            "description": null,
            "createAt": "2022-11-03 16:01:21"
        },
        {
            "groupId": "6363755cf2c16c3e2ec2bb3c",
            "name": "三级分组",
            "num": "s60B3vEOiLEbvpQO",
            "parentNum": "Z4LSklduJ8LJ3gPC",
            "level": 3,
            "description": null,
            "createAt": "2022-11-03 16:01:32"
        }
       ]
}

查询分组下设备

请求地址: /openApi/v2/deviceGroup/listDeviceUderGroup 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
groupId string 分组id
productId string 产品productId
connect string 连接状态 -1:未激活, 0:离线, 1:在线

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
nodeId string 设备id
nodeEui string 设备号
deviceName string 设备名称
deviceSecret string 设备密钥
status integer 设备启用状态 0:禁用, 1:启用
connected integer 在线状态 -1:未激活, 0:离线, 1:在线
productId string 所属产品productId
productKey string 所属产品productKey
productName string 所属产品名称
deviceType integer 节点类型 0:设备, 1:网关
encrypted integer 是否加密 0:不加密, 1:加密
upNodeId string 子设备对应的网关设备的设备号
subDeviceCount integer 网关子设备数量
relationState integer 网关与子设备的关系 0:未关联, 1:已关联br>2:解除中
gatewayStatus integer 子设备所属网关设备的状态 -1:未激活, 0:离线, 1:在线
localLogReport integer 本地日志上报使能 0:禁用, 1:启用
otaType integer 设备升级方式 0:tcp, 1:http
hardVer string 硬件版本
softVer string 软件版本
versionReportAt string 版本上报时间
createAt string 创建时间
activeAt string 智能设备激活时间
lastJoinAt string 智能设备最近一次入网时间
lastDisconnectAt string 智能设备最近一次离线时间
lastHeartbeatAt string 智能设备最近一次心跳时间

请求示例

{
   "groupId": "63a1753a257ea9623fc1744e"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "nodeId": "63a12afd209856044ba0962d",
                "nodeEui": "mqttDevice003",
                "deviceName": "qqqq",
                "deviceSecret": "0A79EC7E6D5C3AAD0140F6B92039D42F",
                "status": 1,
                "connected": -1,
                "productId": "5207C002",
                "productKey": "82E9AD63B2C7D26A4B24355BE631E847",
                "productName": "OpenAPI产品MQTT测试001",
                "deviceType": 0,
                "encrypted": 0,
                "upNodeId": null,
                "subDeviceCount": 0,
                "relationState": 0,
                "gatewayStatus": null,
                "localLogReport": 1,
                "otaType": null,
                "hardVer": null,
                "softVer": null,
                "versionReportAt": null,
                "createAt": "2022-12-20 11:24:45",
                "activeAt": null,
                "lastJoinAt": null,
                "lastDisconnectAt": null,
                "lastHeartbeatAt": null
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

批量添加设备到分组

请求地址: /openApi/v2/deviceGroup/batchAddDevice 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeIds string 设备id组 设备id用逗号(,)连接的字符串
groupId string 分组id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data string 响应内容,返回成功和失败数量

请求示例

{
    "nodeIds": "6180a3bf7571341cc90f7b55,6180aa63ea679609a7aa24e7",
    "groupId": "61e8f9a501f61368266f0deb"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": "操作结果:{success: 2,fail: 0}"
}

错误码

code 描述
61011 设备所属分组超过上限
61012 分组添加设备超过上限
61013 设备已添加至分组,不可重复添加

移除分组下面的设备

请求地址: /openApi/v2/deviceGroup/removeDevice 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
groupId string 分组id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
   "groupId": "63a1753a257ea9623fc1744e",
   "nodeId":"63a16d278e5f354034bd69a3"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
60009 数据不存在

查询设备分组

请求地址: /openApi/v2/deviceGroup/listGroupUnderDevice 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
groupId string 分组id
name string 分组名称
num string 分组编号
parentNum string 父级编号
level integer 层级 0:1级分组, 1:2级分组, 2:三级分组
description string 分组描述
createAt string 创建时间

请求示例

{
   "nodeId": "63a12afd209856044ba0962d"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "groupId": "63a1753a257ea9623fc1744e",
            "name": "3333",
            "num": "R6YzRTXaynS4Xjep",
            "parentNum": null,
            "level": 1,
            "description": "修改名称",
            "createAt": "2022-12-20 16:41:30"
        }
    ]
}

错误码

code 描述
60005 设备不存在

物模型

属性设置

请求地址: /openApi/v2/model/propertySet 传参方式: POST

备注

  • 当产品为物模型产品时,下发指令设置产品属性
  • 调用前提,产品已定义物模型,且设置的属性为可写可读属性

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
identifier string 属性标识
value string 属性值

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "nodeId": "63a264fba4e4394a03996af1",
    "identifier": "prop_int",
    "value": "10"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
68001 产品未定义物模型
62001 设备不在线
60003 参数错误
68005 属性设置错误

属性查询

请求地址: /openApi/v2/model/propertyAsk 传参方式: POST

备注

  • 当产品为物模型产品时,下发指令查询产品属性
  • 调用前提,产品已定义物模型,且查询的属性已定义
  • 设备收到平台下发属性查询指令后应该通过属性上报方式上报属性

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
identifier string 属性标识

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "nodeId":"63a264fba4e4394a03996af1",
    "identifier":"prop_int"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
68001 产品未定义物模型
62001 设备不在线
60003 参数错误

服务调用

请求地址: /openApi/v2/model/serviceCall 传参方式: POST

备注

  • 当产品为物模型产品时,可以通过服务调用来进行指令下发;
  • 服务调用分为同步调用和异步调用,异步调用立即返回结果,同步调用其结果会在10s内返回,如果10s后才返回结果,则返回结果和异步调用结果一致
  • 调用前提,产品已定义物模型,并且调用的服务标识和参数和定义的一致

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
identifier string 服务标识
value string 输入参数 json格式,和定义服务的输入参数一致

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "nodeId":"63a264fba4e4394a03996af1",
    "identifier":"switch",
    "value":"{\"on\":15}"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
68001 产品未定义物模型
62001 设备不在线
60003 参数错误
68005 属性设置错误

设备物模型属性列表查询

请求地址: /openApi/v2/model/getPropertyReportList 传参方式: POST

备注

  • 无设备id时,设备号和产品productId必填
  • 当设备id、设备号、产品productId都有值的情况下,以设备id为准

请求参数

Body:
参数名称 类型 是否必须 名称 备注
nodeId string 设备id
nodeEui string 设备号
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object[] 物模型属性列表

data 说明

参数名称 类型 名称 备注
propertyId string 属性唯一id
time string 属性上报时间
productId string 产品productId
nodeEui string 设备号
identifier string 属性标识
accessMode string 读写模式
name string 属性名称
value string 属性值
label string 属性内容 属性为枚举、布尔格式时为value对应的内容,其他参数如有带单位的则为带单位的数据

请求示例

{
    "nodeId":"63a2b7d3a4e4394a03996b26"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "propertyId": "681f47d7-ff8e-47a0-a69d-3c8062c95d1b",
            "time": "2022-12-21 15:38:00",
            "productId": "65451EFB",
            "nodeEui": "10MQTTH0005435",
            "identifier": "prop_bool",
            "accessMode": "rw",
            "name": "prop_bool",
            "value": "1"
            "label": "开"
        },
        {
            "propertyId": "67d343b1-eaf2-4a65-9e6a-e8130b246911",
            "time": "2022-12-21 15:38:00",
            "productId": "65451EFB",
            "nodeEui": "10MQTTH0005435",
            "identifier": "prop_float",
            "accessMode": "rw",
            "name": "prop_float",
            "value": "1.25",
            "label": "1.25"
        },
        {
            "propertyId": "e75158db-4554-458d-a46f-96717462d673",
            "time": "2022-12-21 15:38:00",
            "productId": "65451EFB",
            "nodeEui": "10MQTTH0005435",
            "identifier": "prop_int",
            "accessMode": "rw",
            "name": "prop_int",
            "value": "-16",
            "label": "-16"
        },
        {
            "propertyId": "0068db3a-c99c-490a-b208-f47dcea02410",
            "time": "2022-12-21 15:38:00",
            "productId": "65451EFB",
            "nodeEui": "10MQTTH0005435",
            "identifier": "uint8_prop",
            "accessMode": "rw",
            "name": "uint8_prop",
            "value": "255",
            "label": "255"
        }
    ]
}

错误码

code 描述
60005 设备不存在

查询同一属性历史列表

请求地址: /openApi/v2/model/getPropertyReportSingleList 传参方式: POST

备注

  • 无设备id时,设备号和产品productId必填
  • 当设备id、设备号、产品productId都有值的情况下,以设备id为准
  • 请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
nodeId string 设备id
nodeEui string 设备号
productId string 产品productId
identifier string 属性标识
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
propertyId string 属性唯一id
time string 属性上报时间
productId string 产品productId
nodeEui string 设备号
identifier string 属性标识
accessMode string 读写模式
name string 属性名称
value string 属性值

请求示例

{
    "nodeId": "63e0c7bd5bb10716fadd1cd7",
    "identifier": "prop_bool",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "propertyId": "f3e51d76-cf68-4f11-b673-864bd987b196",
                "time": "2023-02-06 17:26:22",
                "productId": "AA30C505",
                "nodeEui": "20MQTT000507",
                "identifier": "prop_bool",
                "accessMode": "rw",
                "name": "prop_bool",
                "value": "0",
                "label": null
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

错误码

code 描述
60005 设备不存在

分页查询服务调用

请求地址: /openApi/v2/model/getServiceCallList 传参方式: POST

备注

  • 无设备id时,设备号和产品productId必填
  • 当设备id、设备号、产品productId都有值的情况下,以设备id为准

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
nodeId string 设备id
nodeEui string 设备号
productId string 产品productId
identifier string 服务标识
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
serviceCallId string 服务调用唯一id
time string 服务调用时间
productId string 产品productId
nodeEui string 设备号
identifier string 服务标识
name string 服务名称
inputData string 服务调用输入
outputData string 服务调用输出

请求示例

{
    "nodeId": "63e0c7bd5bb10716fadd1cd7",
    "identifier": "switch",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "serviceCallId": "562443c3-c109-40c1-940d-58f6127f2d37",
                "time": "2023-02-06 17:27:02",
                "productId": "AA30C505",
                "nodeEui": "20MQTT000507",
                "identifier": "switch",
                "name": "测试",
                "inputData": "{\"on\":\"100L/s\"}",
                "ouputData": null
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

错误码

code 描述
60005 设备不存在

分页查询事件上报

请求地址: /openApi/v2/model/getEventReportList 传参方式: POST

备注

  • 无设备id时,设备号和产品productId必填
  • 当设备id、设备号、产品productId都有值的情况下,以设备id为准

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
nodeId string 设备id
nodeEui string 设备号
productId string 产品productId
identifier string 事件标识
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
eventId string 事件id
time string 事件上报时间
productId string 产品productId
nodeEui string 设备号
identifier string 事件标识
name string 名称
type string 类型 warn:告警, erro:紧急, info:普通
outputData string 输出数据

请求示例

{
    "nodeId": "63e0c7bd5bb10716fadd1cd7",
    "identifier": "TEST_EVENT",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "eventId": "1c030182-1091-4b18-859f-ace28c1711e1",
                "time": "2023-02-06 17:26:26",
                "productId": "AA30C505",
                "nodeEui": "20MQTT000507",
                "identifier": "TEST_EVENT",
                "name": "测试事件",
                "type": "warn",
                "ouputData": "{\"prop_int\":\"-70km/h\"}"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

错误码

code 描述
60005 设备不存在

OTA模块管理

添加OTA模块

请求地址: /openApi/v2/otaModule/add 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
module string 模块标识 支持英文字母、数字、点、中划线和下划线,长度限制64个字符以内
moduleName string 模块名称 支持中文、英文字母、数字、点、中划线和下划线,长度限制64个字符以内,中文算两个字符
moduleDesc string 模块描述 长度限制100个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
module string 模块标识
moduleName string 模块名称
moduleDesc string 模块描述
productId string 产品productId
productName string 产品名称
createAt string 创建时间

请求示例

{
    "productId": "65451EFB",
    "module": "module001",
    "moduleName": "OPENAPI2测试",
    "moduleDesc": ""
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "module": "module001",
        "moduleName": "OPENAPI2测试",
        "productId": "65451EFB",
        "productName": "网关接入子设备HEX",
        "moduleDesc": "",
        "createAt": "2022-12-30 16:39:22"
    }
}

错误码

code 描述
60004 产品不存在
63030 模块已存在

编辑OTA模块

请求地址: /openApi/v2/otaModule/edit 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
module string 模块标识
moduleName string 模块名称 支持中文、英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制64个字符以内,中文算两个字符
moduleDesc string 模块描述 长度限制100个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "productId": "65451EFB",
    "module": "module001",
    "moduleName": "OPENAPI2测试1",
    "moduleDesc": "备注描述"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60004 产品不存在
60020 模块不存在

删除OTA模块

请求地址: /openApi/v2/otaModule/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
module string 模块标识

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "productId": "65451EFB",
    "module": "module001"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60020 模块不存在

查询OTA模块详情

请求地址: /openApi/v2/otaModule/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
productId string 产品productId
module string 模块标识

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
module string 模块标识
moduleName string 模块名称
moduleDesc string 模块描述
productId string 产品productId
productName string 产品名称
createAt string 创建时间

请求示例

{
    "productId": "65451EFB",
    "module": "module001"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "module": "module001",
        "moduleName": "OPENAPI2测试",
        "productId": "65451EFB",
        "productName": "网关接入子设备HEX",
        "moduleDesc": "",
        "createAt": "2022-12-30 16:39:22"
    }
}

错误码

code 描述
60020 模块不存在

模块分页查询

请求地址: /openApi/v2/otaModule/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
productId string 产品productId
module string 模块标识

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
module string 模块标识
moduleName string 模块名称
moduleDesc string 模块描述
productId string 产品productId
productName string 产品名称
createAt string 创建时间

请求示例

{
    "module": "default",
    "productId": "7E0204D0",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "module": "default",
                "moduleName": "默认",
                "productId": "7E0204D0",
                "productName": "openapiMQTT非透传产品1",
                "moduleDesc": "默认模块不可删除",
                "createAt": "2022-12-28 08:45:12"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

OTA固件管理

添加小固件(表单格式)

请求地址: /openApi/v2/firmware/add 传参方式: POST

备注

  • 添加固件接口,sign值计算方法与通用签名计算方法不同,请参考如何调用API中form-data签名计算示例
  • 该接口适合上传较小固件,大小限制在50MB以内

请求参数

Headers:
参数名称 参数值 是否必须 备注
appId 添加api应用生成的appId
sign 计算的签名值,参考签名计算示例
nonce 随机数,可以使用随机数或者uuid
authorization 鉴权令牌,通过获取token接口获取
Content-Type multipart/form-data
form-data参数:
参数名称 类型 是否必须 名称 备注 参数值
name string 固件名称 支持中文、英文字母、数字、特殊字符(_-@()),中文算两个字符,长度限制为4-200个字符
productId string 产品productId
softVer string 固件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
hardVer string 适配硬件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
module string 模块标识
remark string 固件描述 长度限制100个字符以内
firmwareType integer 固件包类型 1:整包, 2:差分包
sourceVersion string 源版本 固件包为差分包时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
file file 固件文件

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
firmwareId string 固件id
createAt string 创建时间

请求示例

name:测试固件
productId:8DC561D5
softVer:V1.0
hardVer:V2.0
module:default
remark:测试固件描述
firmwareType:1
sourceVersion:2345
file:[文件]

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "firmwareId": "602f4beb4e8bf61a7d516c23",
        "createAt": "2021-02-19 13:26:02"
    }
}

错误码

code 描述
60004 产品不存在
60010 文件不存在
60020 模块不存在
63004 固件大小超出限制
63021 当前企业、产品、模块下,固件名称已存在
63022 当前企业、产品、模块下,固件版本已存在
63024 固件上传失败

修改小固件(表单格式)

请求地址: /openApi/v2/firmware/edit 传参方式: POST

备注

  • 当固件管理下存在升级计划时,只能编辑固件名称和固件描述
  • 不存在升级计划时,file可为空,此时不更新文件

请求参数

Headers:
参数名称 参数值 是否必须 备注
appId 添加api应用生成的appId
sign 计算的签名值,参考签名计算示例
nonce 随机数,可以使用随机数或者uuid
authorization 鉴权令牌,通过获取token接口获取
Content-Type multipart/form-data
form-data参数:
参数名称 类型 是否必须 名称 备注 参数值
firmwareId string 固件id
name string 固件名称 支持中文、英文字母、数字、特殊字符(_-@()),中文算两个字符,长度限制为4-200个字符
productId string 产品productId 不存在升级计划时必填
softVer string 固件版本 不存在升级计划时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
hardVer string 适配硬件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
module string 模块标识 不存在升级计划时必填
remark string 固件描述 长度限制100个字符以内
firmwareType integer 固件包类型 不存在升级计划时必填 1:整包, 2:差分包
sourceVersion string 源版本 不存在升级计划、固件包为差分包时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
file file 固件文件 不传则不更新文件

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

1、存在升级计划时

firmwareId:602f4beb4e8bf61a7d516c23
name:测试固件
remark:测试固件描述

2、无升级计划时

firmwareId:602f4beb4e8bf61a7d516c23
name:测试固件
productId:8DC561D5
softVer:V1.0
hardVer:V2.0
module:default
remark:测试固件描述
firmwareType:1
sourceVersion:2345
file:[文件]

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60004 产品不存在
60010 文件不存在
60020 模块不存在
63004 固件大小超出限制
63021 当前企业、产品、模块下,固件名称已存在
63022 当前企业、产品、模块下,固件版本已存在
63024 固件上传失败

添加大固件(Json格式)

请求地址: /openApi/v2/firmware/addBig 传参方式: POST

备注

  • 调用该接口保存固件信息时,用户需按顺序完成以下操作: 1. 已经调用平台开放的获取STS凭证的接口获取到了STS凭证 2. 在凭证有效期内完成固件的上传(阿里云文档地址https://help.aliyun.com/document_detail/84778.html)

    PS:流程可以参考平台开放的获取OSS文件上传STS凭证接口

  • 该接口的固件大小限制在200MB以内,在请求该接口保存固件信息时会去OSS服务器上验证文件大小,超过200MB不允许保存,且平台会定时删除OSS上超过200MB的文件

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
name string 固件名称 支持中文、英文字母、数字、特殊字符(_-@()),中文算两个字符,长度限制为4-200个字符
productId string 产品productId 不存在升级计划时必填
softVer string 固件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
hardVer string 适配硬件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
path string 文件OSS地址
md5 string 文件md5值
originalFilename string 文件名称
fileKey string 文件OSS标识
module string 模块标识
remark string 固件描述 长度限制100个字符以内
signMethod string 签名方法 仅支持md5 md5
firmwareType integer 固件包类型 1:整包, 2:差分包
sourceVersion string 源版本 固件包为差分包时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
firmwareId string 固件id
createAt string 创建时间

请求示例

{
    "name": "测试固件",
    "productId": "8DC561D5",
    "softVer": "V1.0",
    "hardVer": "V2.0",
    "md5": "5340c78b52045b3f03718d105a820ac7",
    "path": "https://xxxxxxx",
    "originalFilename": "2.jpg",
    "fileKey": "otaFirmware/1670378256275_2.jpg",
    "module": "default",
    "remark": "测试固件描述",
    "signMethod": "md5",
    "firmwareType": 1,
    "sourceVersion": "2345"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "firmwareId": "602f4beb4e8bf61a7d516c23",
        "createAt": "2021-02-19 13:26:02"
    }
}

错误码

code 描述
60004 产品不存在
60010 文件不存在
60020 模块不存在
63004 固件大小超出限制
63021 当前企业、产品、模块下,固件名称已存在
63022 当前企业、产品、模块下,固件版本已存在
60023 固件不存在
63024 固件上传失败

修改大固件(Json格式)

请求地址: /openApi/v2/firmware/editBig 传参方式: POST

备注

  • 当固件管理下存在升级计划时,只能编辑固件名称和固件描述
  • 不存在升级计划时,path可为空,此时不校验文件相关字段,不更新文件

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
firmwareId string 固件id
name string 固件名称 支持中文、英文字母、数字、特殊字符(_-@()),中文算两个字符,长度限制为4-200个字符
productId string 产品productId 不存在升级计划时必填
softVer string 固件版本 不存在升级计划时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
hardVer string 适配硬件版本 支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内
path string 文件OSS地址 不传则不更新文件
md5 string 文件md5值 path不为空时必填
originalFilename string 文件名称 path不为空时必填
fileKey string 文件OSS标识 path不为空时必填
signMethod string 签名方法 path不为空时必填,仅支持md5 md5
module string 模块标识 不存在升级计划时必填
remark string 固件描述 长度限制100个字符以内
firmwareType integer 固件包类型 不存在升级计划时必填 1:整包, 2:差分包
sourceVersion string 源版本 不存在升级计划、固件包为差分包时必填,支持英文字母、数字、点号(.)、中划线(-)和下划线(_),长度限制为64个字符以内

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

1、存在升级计划时

{
    "firmwareId": "602f4beb4e8bf61a7d516c23",
    "name": "测试固件",
    "remark": "测试固件描述"
}

2、无升级计划时

{
    "firmwareId": "602f4beb4e8bf61a7d516c23",
    "name": "测试固件",
    "productId": "8DC561D5",
    "softVer": "V1.0",
    "hardVer": "V2.0",
    "md5": "5340c78b52045b3f03718d105a820ac7",
    "path": "https://xxxxxxx",
    "originalFilename": "2.jpg",
    "fileKey": "otaFirmware/1670378256275_2.jpg",
    "module": "default",
    "remark": "测试固件描述",
    "signMethod": "md5",
    "firmwareType": 1,
    "sourceVersion": "2345"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60004 产品不存在
60010 文件不存在
60020 模块不存在
63004 固件大小超出限制
63021 当前企业、产品、模块下,固件名称已存在
63022 当前企业、产品、模块下,固件版本已存在
60023 固件不存在
63024 固件上传失败

固件详情

请求地址: /openApi/v2/firmware/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
firmwareId string 固件id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
firmwareId string 固件id
name string 固件名称
productId string 产品productId
productName string 产品名称
softVer string 固件版本
hardVer string 适配硬件版本
signMethod string 签名方法
size integer 文件大小
md5 string 文件md5值
originalFilename string 原始固件文件名称
fileKey string 文件OSS标识
module string 模块标识
moduleName string 模块名称
remark string 固件描述
firmwareType integer 固件包类型 1:整包, 2:差分包
sourceVersion string 源版本
createAt string 创建时间
updateAt string 更新时间

请求示例

{ 
  "firmwareId": "63b3e8e140a321450c7d166f"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "firmwareId": "63b3e8e140a321450c7d166f",
        "createAt": "2023-01-03 16:35:44",
        "name": "测试固件",
        "productId": "FB511D31",
        "productName": "MQTT非透传免注册json950",
        "hardVer": "V2.0",
        "softVer": "V1.1",
        "signMethod": "md5",
        "size": 4616,
        "remark": "测试固件描述",
        "md5": "bcb95b23ede941e5483a316c096dd2e0",
        "originalFilename": "1.jpg",
        "fileKey": "otaFirmware/1672734942385_1.jpg",
        "firmwareType": 1,
        "sourceVersion": "",
        "updateAt": "2023-01-03 16:42:31",
        "module": "default",
        "moduleName": "默认"
    }
}

错误码

code 描述
63023 固件不存在

固件分页查询

请求地址: /openApi/v2/firmware/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
firmwareId string 固件id
name string 固件名称
productId string 产品productId
productName string 产品名称
softVer string 固件版本
hardVer string 适配硬件版本
signMethod string 签名方法
size integer 文件大小
md5 string 文件md5值
originalFilename string 原始固件文件名称
fileKey string 文件OSS标识
module string 模块标识
moduleName string 模块名称
remark string 固件描述
firmwareType integer 固件包类型 1:整包, 2:差分包
sourceVersion string 源版本
createAt string 创建时间
updateAt string 更新时间

请求示例

{
    "productId": "E11822F6",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "firmwareId": "63c0f59744e95b7f8c811300",
                "createAt": "2023-01-13 14:09:27",
                "name": "TCP版本",
                "productId": "E11822F6",
                "productName": "TCP认证验证",
                "hardVer": "v1.0",
                "softVer": "v3.0.0",
                "signMethod": "md5",
                "remark": "",
                "md5": "69f9321429ff3572e81bc4f107a5a346",
                "size": 1856544,
                "originalFilename": "DDC_firmwareL4.0.0.1.bin",
                "fileKey": "otaFirmware/DDC_firmwareL4.0.0.1.bin",
                "firmwareType": 1,
                "sourceVersion": "",
                "updateAt": "2023-01-13 14:09:27",
                "module": "default",
                "moduleName": "默认"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

OTA升级

创建OTA升级计划

请求地址: /openApi/v2/otaPlan/add 传参方式: POST

备注: 返回数据中,batchUuid必存在,升级计划planId,不一定返回,如没有需要通过详情接口利用batchUuid获取

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
firmwareId string 固件id
notifyType integer 推送类型 0.立即推送, 1.定时推送
strategy integer 升级策略 0.静态升级, 1.动态升级
scope integer 升级范围 0.指定设备, 1.全部设备
softVerScope string [] 待升级的版本号 如果全部升级或者动态升级,则不能为空
startAt string 开始时间 如果定时升级,则不能为空
endAt string 结束时间 如果定时升级,则不能为空
retryInterval integer 重试间隔 0,1,10,30,60,1440 0.不重试, 1.立即重试, 其余为X分钟后重试
retryLimit integer 重试次数 如果选择重试间隔不为0则此项不能为空 1,2,5
expireTime integer 超时时间(分钟) 不填默认1440(24小时),范围1-1440
overwrite integer 是否覆盖升级 0.否, 1.是
triggerType integer 升级触发机制 1.设备端触发, 2.云端触发
nodeIds String[] 升级的设备id数组 指定设备升级时不能为空
remark string 任务描述

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
planId string 升级计划id
batchUuid string 批次号

请求示例

1、静态升级-所有设备-定时升级-重试2次

{
    "firmwareId": "63b3e8e140a321450c7d166f",
    "notifyType": 1,
    "strategy": 0,
    "scope": 0,
    "softVerScope": [
        "v1.0.0"
    ],
    "startAt": "2023-01-06 17:00:00",
    "endAt": "2023-01-10 18:00:00",
    "retryInterval": 30,
    "retryLimit": 2,
    "expireTime": 30,
    "overwrite": 1,
    "triggerType": 1,
    "remark": "备注"
}

2、动态升级

{
    "firmwareId": "63b3e8e140a321450c7d166f",
    "notifyType": 0,
    "strategy": 1,
    "scope": 1,
    "softVerScope": [
        "v1.0.0"
    ],
    "retryInterval": 0,
    "overwrite": 0,
    "triggerType": 1,
    "remark": "动态升级"
}

3、静态升级-指定设备-立即推送-云端触发-不重试-不覆盖

{
    "firmwareId": "63b3e8e140a321450c7d166f",
    "notifyType": 0,
    "strategy": 0,
    "scope": 0,
    "retryInterval": 0,
    "overwrite": 0,
    "triggerType": 2,
    "nodeIds":["632ab50ea3e8582b78b38fee"],
    "remark": "指定设备升级"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "batchUuid": "a5d15326-5c64-4c71-b8ca-d047f2c27ba1",
        "planId": "63b79188a5cdd8367db36bf0"
    }
}

取消OTA升级计划

请求地址: /openApi/v2/otaPlan/cancel 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
planId string 升级计划id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "planId": "306134d4050d4800a8ab8bce88b1db43"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

OTA升级计划分页查询

请求地址: /openApi/v2/otaPlan/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 参数 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
firmwareId string 固件id
status integer 状态 0:升级中, 1:已完成, 2:已取消
strategy integer 升级策略 0:静态升级, 1:动态升级

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
planId string 固件id
productId string 产品productId
productname string 产品名称
module string 模块标识
firmwareId string 固件id
strategy integer 升级策略 0.静态升级, 1.动态升级
scope integer 升级范围 0.指定设备, 1.全部设备
softVerScope string[] 待升级的版本号
targetSoftVer string 目标固件版本
notifyType integer 推送类型 0.立即推送, 1.定时推送
triggerType integer 升级触发机制 1.设备端触发, 2.云端触发
startAt string 开始时间
endAt string 结束时间
retryInterval integer 重试间隔 0.不重试, 1.立即重试, 其余为X分钟后重试
retryLimit integer 重试次数
expireTime integer 超时时间(分钟)
overwrite integer 是否覆盖升级 0.否, 1.是
remark string 任务描述
status integer 升级计划状态 0.升级中, 1.已完成, 2:已取消
createAt string 创建时间
updateAt string 更新时间
isCancel boolean 是否可取消

请求示例

{
    "firmwareId": "63b3e8e140a321450c7d166f",
    "page": 1,
    "pageSize": 10,
    "status": 0,
    "strategy": 1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "planId": "63bb7962d68a1239d503160e",
                "productId": "FB511D31",
                "productName": "MQTT非透传免注册json950",
                "firmwareId": "63b3e8e140a321450c7d166f",
                "strategy": 1,
                "scope": 1,
                "softVerScope": [
                    "v1.0.0"
                ],
                "targetSoftVer": "V1.01",
                "notifyType": 0,
                "triggerType": 1,
                "startAt": "2023-01-09 10:18:10",
                "endAt": null,
                "retryInterval": 0,
                "retryLimit": 0,
                "expireTime": 1440,
                "overwrite": 0,
                "status": 0,
                "remark": "动态升级",
                "createAt": "2023-01-09 10:18:10",
                "updateAt": "2023-01-09 10:18:10",
                "module": "default",
                "isCancel": false
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

升级计划详情

请求地址: /openApi/v2/otaPlan/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
planId string 升级计划id,两个参数必填一项
batchUuid string batchUuid,两个参数都有以planId为准

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
planId string 固件id
productId string 产品productId
productname string 产品名称
module string 模块标识
firmwareId string 固件id
strategy integer 升级策略 0.静态升级, 1.动态升级
scope integer 升级范围 0.指定设备, 1.全部设备
softVerScope string[] 待升级的版本号
targetSoftVer string 目标固件版本
notifyType integer 推送类型 0.立即推送, 1.定时推送
triggerType integer 升级触发机制 1.设备端触发, 2.云端触发
startAt string 开始时间
endAt string 结束时间
retryInterval integer 重试间隔 0.不重试, 1.立即重试, 其余为X分钟后重试
retryLimit integer 重试次数
expireTime integer 超时时间(分钟)
overwrite integer 是否覆盖升级 0.否, 1.是
remark string 任务描述
status integer 升级计划状态 0.升级中, 1.已完成, 2:已取消
createAt string 创建时间
updateAt string 更新时间
isCancel boolean 是否可取消

请求示例

{
    "planId": "63bb7962d68a1239d503160e"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "planId": "63bb7962d68a1239d503160e",
        "productId": "FB511D31",
        "productName": "MQTT非透传免注册json950",
        "firmwareId": "63b3e8e140a321450c7d166f",
        "strategy": 1,
        "scope": 1,
        "softVerScope": [
            "v1.0.0"
        ],
        "targetSoftVer": "V1.01",
        "notifyType": 0,
        "triggerType": 1,
        "startAt": "2023-01-09 10:18:10",
        "endAt": null,
        "retryInterval": 0,
        "retryLimit": 0,
        "expireTime": 1440,
        "overwrite": 0,
        "status": 0,
        "remark": "动态升级",
        "createAt": "2023-01-09 10:18:10",
        "updateAt": "2023-01-09 10:18:10",
        "module": "default",
        "isCancel": false
    }
}

升级计划详情-设备升级任务列表

请求地址: /openApi/v2/otaPlan/tasks 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
planId string 升级计划id
nodeEui string 设备号
status string 设备升级状态 0:待推送, 1:已推送, 2:升级中, 3:升级成功, 4:升级失败, 5:已取消, 6:已删除

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
taskId string 升级任务Id
planId string 升级计划id
firmwareId string 固件id
productId string 产品productId
productName string 产品名称
module string 模块标识
nodeEui string 设备号
downId string downId
softVer string 固件版本
hardVer string 硬件版本
targetSoftVer string 目标固件版本
otaType integer 智能设备下载固件的方式 1:TCP, 2:HTTP
startAt string 升级开始时间
endAt string 升级结束时间
retryInterval integer 重试时间间隔
retryLimit integer 重试次数
retryCnt integer 当前升级的次数,重试+1
overwrite integer 是否覆盖升级 0:否 , 1:是
createdStrategy integer 创建的升级策略 0:静态升级, 1:动态升级
errorInfo string 升级失败的错误信息
createAt string 创建时间
updateAt string 更新时间
status integer 升级计划的状态 0:升级中, 1:已完成, 2:已取消
triggerType integer 触发方式 1:设备端触发, 2:云端触发
delayTaskId string 延时任务的id
expireAtStamp integer 升级超时时间戳
expirationTime integer 升级超时时间

请求示例

{
    "planId": "63c0eda074ef5e16c5b66468",
    "page":1,
    "pageSize":10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "taskId": "63c0eda274ef5e16c5b66469",
                "planId": "63c0eda074ef5e16c5b66468",
                "firmwareId": "63c0ed758fea9e716ae06f70",
                "productId": "A50F56D0",
                "productName": "MQTT20网关设备",
                "nodeEui": "20MQTTWJ00001",
                "downId": "77AF1957",
                "softVer": "v2.1.3",
                "hardVer": "v1.0.1",
                "targetSoftVer": "v3.0.0",
                "otaType": 2,
                "startAt": "2023-01-13 13:35:28",
                "endAt": null,
                "retryInterval": 0,
                "retryLimit": 0,
                "retryCnt": 0,
                "overwrite": 0,
                "createdStrategy": 1,
                "errorInfo": null,
                "createAt": "2023-01-13 13:35:29",
                "updateAt": "2023-01-13 13:35:29",
                "status": 0,
                "triggerType": 2,
                "delayTaskId": null,
                "module": "default",
                "expireAtStamp": null,
                "expirationTime": 1673674528166
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

设备升级任务取消/重新升级

请求地址: /openApi/v2/otaPlan/taskCancelOrReCreate 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
taskId string 升级任务id 多个升级任务可用逗号(,)分隔
opt integer 操作类型 0:取消升级, 1:重新升级

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

1、取消升级

{
  "taskId": "601bff8b5b3bb45bef53c230,601bff8b5b3bb45bef53c231",
  "opt": 0
}

2、重新升级

{
    "taskId": "617109258ca4fb051b307ad5",
    "opt": 1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
63028 当前状态不允许该操作

应用推送

添加推送应用

请求地址: /openApi/v2/pushApp/add 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 参数值
appName string 应用名称
pushType integer 推送类型 0:http, 1:mqtt, 2:rabbitmq
productIds[] string[] 订阅产品productId组
httpPushInfo object http推送信息
mqttPushInfo object mqtt 推送信息
rabbitMqPushInfo object rabbitmq推送信息
pushDataFormat integer 推送数据格式 1:json
status integer 是否启用 0:禁用, 1:启用

httpPushInfo 说明

参数名称 类型 是否必须 名称 参数值
httpUplinkRemote string 上行应用数据推送地址
httpHeartBeatRemote string 设备心跳消息推送地址
httpConnectRemote string 设备上线/掉线消息推送地址
httpOtaResultRemote string 设备OTA升级结果推送地址
httpLifeCycleRemote string 设备生命周期变更推送地址
httpSubDeviceRemote string 子设备拓扑关系变更推送地址
httpNeedVerify integer 是否加密 0:不加密, 1:加密

mqttPushInfo 说明

参数名称 类型 是否必须 名称 参数值
mqttBroker string 目的MQTT服务器地址
mqttPort integer 目的MQTT服务器端口
mqttAdmin string 用于推送的MQTT用户
mqttPassword string 用于推送的MQTT密码

rabbitMqPushInfo 说明

参数名称 类型 是否必须 名称 参数值
rabbitBroker string 目的RabbitMq服务器地址
rabbitPort integer 目的RabbitMq服务器端口
rabbitAdmin string RabbitMq用户名
rabbitPassword string 用于推送的RabbitMq密码
rabbitVHost string 用于推送的RabbitMq虚拟主机
rabbitExchangePrefix string 上行应用数据推送Exchange前缀

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
appId string 推送应用id
appSecret string 推送应用密钥
status integer 状态 0:禁用, 1:启用
appName string 应用名称
createAt string 创建时间
productIds string [] 订阅的产品productId列表
productNames string [] 订阅的产品名称列表
pushType string 推送类型 0:http, 1:mqtt, 2:rabbitmq
httpPushInfo object http推送信息
mqttPushInfo object mqtt推送信息
rabbitMqPushInfo object rabbitmq推送信息

示例

1、http

请求示例

{
    "appName": "http推送应用",
    "httpPushInfo": {
        "httpConnectRemote": "http://localhost:8080/receive/conn",
        "httpHeartBeatRemote": "http://localhost:8080/receive/heart",
        "httpOtaResultRemote": "http://localhost:8080/receive/ota",
        "httpUplinkRemote": "http://localhost:8080/receive/uplink",
        "httpLifeCycleRemote": "http://localhost:8080/receive/lifeCycle",
        "httpSubDeviceRemote": "http://localhost:8080/receive/subDevice",
        "httpNeedVerify": 0
    },
    "pushDataFormat": 1,
    "pushType": 0,
    "status": 1,
    "productIds": [
        "B7C71C40"
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "appId": "xxxx",
        "appSecret": "xxx",
        "status": 1,
        "appName": "http推送应用",
        "createAt": "2023-01-15 15:56:00",
        "productIds": [
            "B7C71C40"
        ],
        "productNames": [
            "推送测试产品"
        ],
        "pushType": 0,
        "pushDataFormat": 1,
        "httpPushInfo": {
            "httpUplinkRemote": "http://localhost:8080/receive/uplink",
            "httpHeartBeatRemote": "http://localhost:8080/receive/heart",
            "httpConnectRemote": "http://localhost:8080/receive/conn",
            "httpOtaResultRemote": "http://localhost:8080/receive/ota",
            "httpLifeCycleRemote": "http://localhost:8080/receive/lifeCycle",
            "httpSubDeviceRemote": "http://localhost:8080/receive/subDevice",
            "httpNeedVerify": 0
        },
        "mqttPushInfo": null,
        "rabbitMqPushInfo": null
    }
}

2、mqtt

请求示例

{
    "appName": "mqtt推送应用",
    "mqttPushInfo": {
        "mqttBroker": "xxxx.com",
        "mqttPort": 1883,
        "mqttAdmin": "xxxx",
        "mqttPassword": "xxxx"
    },
    "pushDataFormat": 1,
    "pushType": 1,
    "status": 1,
    "productIds": [
        "B7C71C40"
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "appId": "xxxx",
        "appSecret": "xxxx",
        "status": 1,
        "appName": "mqtt推送应用",
        "createAt": "2023-01-15 15:56:50",
        "productIds": [
            "B7C71C40"
        ],
        "productNames": [
            "推送测试产品"
        ],
        "pushType": 1,
        "pushDataFormat": 1,
        "httpPushInfo": null,
        "mqttPushInfo": {
            "mqttBroker": "xxxx.com",
            "mqttPort": 1883,
            "mqttAdmin": "xxxx",
            "mqttPassword": "xxxx",
            "mqttQos": 2,
            "mqttUplinkTopic": "xxxx/app-data",
            "mqttConnectTopic": "xxxx/connect",
            "mqttHeartBeatTopic": "xxxx/heartbeat",
            "mqttOtaResultTopic": "xxxx/ota-result",
            "mqttLifeCycleTopic": "xxxx/life-cycle",
            "mqttSubDeviceTopic": "xxxx/sub-device"
        },
        "rabbitMqPushInfo": null
    }
}

3、rabbitmq

请求示例

{
    "appName": "rabbitmq推送应用",
    "rabbitMqPushInfo": {
        "rabbitBroker": "rabbitmq.xxxx.com",
        "rabbitPort": 5672,
        "rabbitAdmin": "xxxx",
        "rabbitPassword": "xxxx",
        "rabbitVHost": "qa",
        "rabbitExchangePrefix": "xxx"
    },
    "pushDataFormat":1,
    "pushType": 2,
    "status": 1,
    "productIds": [
        "B7C71C40"
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "appId": "xxxxx",
        "appSecret": "xxxxx",
        "status": 1,
        "appName": "rabbitmq推送应用",
        "createAt": "2023-01-15 15:59:37",
        "productIds": [
            "B7C71C40"
        ],
        "productNames": [
            "推送测试产品"
        ],
        "pushType": 2,
        "pushDataFormat": 1,
        "httpPushInfo": null,
        "mqttPushInfo": null,
        "rabbitMqPushInfo": {
            "rabbitBroker": "rabbitmq.xxxx.com",
            "rabbitPort": 5672,
            "rabbitAdmin": "xxxx",
            "rabbitPassword": "xxxx",
            "rabbitVHost": "qa",
            "rabbitUplinkExchange": "xxx-app-data",
            "rabbitConnectExchange": "xxx-connect",
            "rabbitHeartBeatExchange": "xxx-heartbeat",
            "rabbitOtaResultExchange": "xxx-ota-result",
            "rabbitExchangePrefix": "xxx",
            "rabbitLifeCycleExchange": "xxx-life-cycle",
            "rabbitSubDeviceExchange": "xxx-sub-device"
        }
    }
}

错误码

code 描述
67001 消息推送配置信息有误
67002 产品已存在推送应用

编辑推送应用

请求地址: /openApi/v2/pushApp/edit 传参方式: POST

备注

  • 只能编辑对应推送类型的参数
  • 如果编辑信息包含 httpPushInfo/rabbitMqPushInfo/mqttPushInfo层级下字段需要全部包含,如果字段未包含的情况下,对应推送则将设置为空

请求参数

Body:
参数名称 类型 是否必须 名称 参数值 备注
appId string 推送应用id
appName string 推送应用名称
productIds[] string[] 订阅产品productId组
httpPushInfo object http推送信息 与新增接口数据相同
mqttPushInfo object mqtt 推送信息
rabbitMqPushInfo object rabbitmq推送信息
status integer 启用状态 0:禁用, 1:启用

mqttPushInfo 说明

参数名称 类型 是否必须 名称 参数值
mqttBroker string 目的MQTT服务器地址
mqttPort integer 目的MQTT服务器端口
mqttAdmin string 用于推送的MQTT用户
mqttPassword string 用于推送的MQTT密码
mqttQos integer 消息质量
mqttUplinkTopic string 上行数据topic
mqttConnectTopic string 连接消息topic
mqttHeartBeatTopic string 心跳消息topic
mqttOtaResultTopic string 升级结果Topic
mqttLifeCycleTopic string 设备生命周期推送Topic
mqttSubDeviceTopic string 子设备拓扑关系推送Topic

rabbitMqPushInfo 说明

参数名称 类型 是否必须 名称 参数值
rabbitBroker string 目的RabbitMq服务器地址
rabbitPort integer 目的RabbitMq服务器端口
rabbitAdmin string RabbitMq用户名
rabbitPassword string 用于推送的RabbitMq密码
rabbitVHost string 用于推送的RabbitMq虚拟主机
rabbitExchangePrefix string 上行应用数据推送Exchange前缀
rabbitUplinkExchange string 上行交换机
rabbitConnectExchange string 上下线交换机
rabbitHeartBeatExchange string 心跳消息交换机
rabbitOtaResultExchange string ota结果交换机
rabbitLifeCycleExchange string 生命周期交换机
rabbitSubDeviceExchange string 子设备拓扑关系交换机

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "appId": "63bbda6a9139652aab3e7d54",
    "mqttPushInfo": {
        "mqttBroker": "xxxx.com",
        "mqttPort": 1883,
        "mqttAdmin": "xxxx",
        "mqttPassword": "xxxx",
        "mqttQos": 2,
        "mqttUplinkTopic": "xxxx/app-data",
        "mqttConnectTopic": "xxxx/connect",
        "mqttHeartBeatTopic": "xxxx/heartbeat",
        "mqttOtaResultTopic": "xxxx/ota-result",
        "mqttLifeCycleTopic": "xxxx/life-cycle",
        "mqttSubDeviceTopic": "xxxx/sub-device"
    },
    "pushDataFormat": 1,
    "pushType": 1,
    "status": 1,
    "productIds": [
        "D1784C95","8C09C149"
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
67001 消息推送配置信息有误
67002 产品已存在推送应用

删除推送应用

请求地址: /openApi/v2/pushApp/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
appId string 推送应用id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
  "appId": "601bb356112352169e31a57c"
}

响应示例

{
  "code": "8001",
  "msg": "操作成功",
  "data": true
}

分页查询消息推送应用

请求地址: /openApi/v2/pushApp/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
appName string 推送应用名称
productId string 产品productId

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
appId string appSecret
appSecret string 推送应用密钥
status integer 状态 0:禁用, 1:启用
appName string 应用名称
createAt string 创建时间
productIds string [] 订阅的产品productId列表
productNames string [] 订阅的产品名称列表
pushType string 推送类型 0:http, 1:mqtt, 2:rabbitmq
httpPushInfo object http推送信息
mqttPushInfo object mqtt推送信息
rabbitMqPushInfo object rabbitmq推送信息

请求示例

{
  "page": 1,
  "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "appId": "63c4c54ae6b8cb748bf0f51b",
                "appSecret": "3ED1CEC8FCCEDAA9926D6E5B8F5D21A0",
                "status": 1,
                "appName": "rabbitmq推送应用",
                "createAt": "2023-01-16 11:32:26",
                "productIds": [
                    "B7C71C40"
                ],
                "productNames": [
                    "推送测试产品"
                ],
                "pushType": 2,
                "pushDataFormat": 1,
                "httpPushInfo": null,
                "mqttPushInfo": null,
                "rabbitMqPushInfo": {
                    "rabbitBroker": "rabbitmq.xxxx.com",
                    "rabbitPort": 5672,
                    "rabbitAdmin": "xiot",
                    "rabbitPassword": "xxxx",
                    "rabbitVHost": "qa",
                    "rabbitExchangePrefix": "xxx",
                    "rabbitUplinkExchange": "xxx-app-data",
                    "rabbitConnectExchange": "xxx-connect",
                    "rabbitHeartBeatExchange": "xxx-heartbeat",
                    "rabbitOtaResultExchange": "xxx-ota-result",
                    "rabbitLifeCycleExchange": "xxx-life-cycle",
                    "rabbitSubDeviceExchange": "xxx-sub-device"
                }
            },
            {
                "appId": "63c3b1c28f2844756aceb493",
                "appSecret": "3F846F3F8A28C1D92F0C6CD82EB69859",
                "status": 1,
                "appName": "mqtt推送应用",
                "createAt": "2023-01-15 15:56:50",
                "productIds": [
                    "B7C71C40"
                ],
                "productNames": [
                    "推送测试产品"
                ],
                "pushType": 1,
                "pushDataFormat": 1,
                "httpPushInfo": null,
                "mqttPushInfo": {
                    "mqttBroker": "emqx4.xxxx.com",
                    "mqttPort": 1883,
                    "mqttAdmin": "xiot",
                    "mqttPassword": "xxxx",
                    "mqttQos": 2,
                    "mqttUplinkTopic": "iSUch4vzG0NqAAqPsQyK/app-data",
                    "mqttConnectTopic": "iSUch4vzG0NqAAqPsQyK/connect",
                    "mqttHeartBeatTopic": "iSUch4vzG0NqAAqPsQyK/heartbeat",
                    "mqttOtaResultTopic": "iSUch4vzG0NqAAqPsQyK/ota-result",
                    "mqttLifeCycleTopic": "iSUch4vzG0NqAAqPsQyK/life-cycle",
                    "mqttSubDeviceTopic": "iSUch4vzG0NqAAqPsQyK/sub-device"
                },
                "rabbitMqPushInfo": null
            },
            {
                "appId": "63c3b1908f2844756aceb492",
                "appSecret": "8C53615333039252FEAC42194863736A",
                "status": 1,
                "appName": "http推送应用",
                "createAt": "2023-01-15 15:56:00",
                "productIds": [
                    "B7C71C40"
                ],
                "productNames": [
                    "推送测试产品"
                ],
                "pushType": 0,
                "pushDataFormat": 1,
                "httpPushInfo": {
                    "httpUplinkRemote": "http://localhost:8080/receive/uplink",
                    "httpHeartBeatRemote": "http://localhost:8080/receive/heart",
                    "httpConnectRemote": "http://localhost:8080/receive/conn",
                    "httpOtaResultRemote": "http://localhost:8080/receive/ota",
                    "httpLifeCycleRemote": "http://localhost:8080/receive/lifeCycle",
                    "httpSubDeviceRemote": "http://localhost:8080/receive/subDevice",
                    "httpNeedVerify": 0
                },
                "mqttPushInfo": null,
                "rabbitMqPushInfo": null
            }
        ],
        "current": 1,
        "size": 10,
        "total": 3
    }
}

查询消息推送应用详情

请求地址: /openApi/v2/pushApp/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
appId string 推送应用id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
appId string 推送应用id
appSecret string 推送应用密钥
status integer 状态 0:禁用, 1:启用
appName string 应用名称
createAt string 创建时间
productIds string [] 订阅的产品productId列表
productNames string [] 订阅的产品名称列表
pushType string 推送类型 0:http, 1:mqtt, 2:rabbitmq
httpPushInfo object http推送信息 内容同分页查询接口
mqttPushInfo object mqtt推送信息 内容同分页查询接口
rabbitMqPushInfo object rabbitmq推送信息 内容同分页查询接口

请求示例

{
    "appId": "63c4c54ae6b8cb748bf0f51b"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "appId": "63c4c54ae6b8cb748bf0f51b",
        "appSecret": "3ED1CEC8FCCEDAA9926D6E5B8F5D21A0",
        "status": 1,
        "appName": "rabbitmq推送应用",
        "createAt": "2023-01-16 11:32:26",
        "productIds": [
            "B7C71C40"
        ],
        "productNames": [
            "推送测试产品"
        ],
        "pushType": 2,
        "pushDataFormat": 1,
        "httpPushInfo": null,
        "mqttPushInfo": null,
        "rabbitMqPushInfo": {
            "rabbitBroker": "rabbitmq.xxxx.com",
            "rabbitPort": 5672,
            "rabbitAdmin": "xiot",
            "rabbitPassword": "xxxx",
            "rabbitVHost": "qa",
            "rabbitExchangePrefix": "xxx",
            "rabbitUplinkExchange": "xxx-app-data",
            "rabbitConnectExchange": "xxx-connect",
            "rabbitHeartBeatExchange": "xxx-heartbeat",
            "rabbitOtaResultExchange": "xxx-ota-result",
            "rabbitLifeCycleExchange": "xxx-life-cycle",
            "rabbitSubDeviceExchange": "xxx-sub-device"
        }
    }
}

规则引擎

新增规则

请求地址: /openApi/v2/ruleEngine/add 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
name string 规则名称
description string 规则描述
start string 开启状态 0:禁用, 1:开启
effectAllTime string 生效时间 0:指定时间, 1:一直生效
effectTime string[] 规则生效的时间段 effectAllTime=0时必填, 例如3.30-4.30生效,值为["03:30","04:30"]
effectWeek string[] 规则生效周 effectAllTime=0时必填, 例如周一-周五[2,3,4,5,6] 1:周日,2:周一, 3:周二,4:周三, 5:周四,6:周五,7:周六
conditionRelation string 条件触发关系 or:或, and:与
triggerPo object[] 触发条件 最大50条
ruleActionPo object[] 执行动作 最大50条

triggerPo 说明

参数名称 类型 是否必须 名称 备注 参数值
triggerType string 触发条件 同规则下,定时触发器只能有一条 0:定时触发, 1:设备触发
cron string 触发器cron表达式 triggerType=0必填, 例如每天定时15点21分:"21 15 * * ?" , 每周日、二8点20分:"20 08 ? * 1,3", 4月3号15点59分:"59 15 3 4 ?"
triggerStrategy string 触发机制 triggerType=1必填 0:仅首次, 1:每一次
nodeId string 设备id triggerType=1必填
deviceTriggerType string 设备触发方式 triggerType=1必填 0:属性上报, 1:事件上报, 2:设备状态
prop string 属性标识 deviceTriggerType=0/1必填
operator string 逻辑运算符 deviceTriggerType=0/1必填 >,>=,<,<=,==,!=,in,between
value string 属性值 deviceTriggerType=0/1必填
event st ring 事件标识 deviceTriggerType=1必填
status string 设备状态 deviceTriggerType=2必填 0:设备下线, 1:设备上线

ruleActionPo 说明

参数名称 类型 是否必须 名称 备注 参数值
ruleActionType string 触发方式 0:下发命令, 1:上报告警, 2:规则联动, 3:发送通知
nodeId string 设备Id ruleActionType=0必填
deviceActionType string 执行方式 ruleActionType=0必填 0:设置属性, 1:调用服务
propSetParams object 设置属性参数 deviceActionType=0必填
serviceCallParams object 调用服务参数 deviceActionType=1必填
delayTime string 延时执行(秒) ruleActionType=0必填
level string 级别 ruleActionType=1必填 1,2,3,4,5
alarmName string 告警名称 ruleActionType=1必填
ruleId string 规则id ruleActionType=2必填
operation string 执行操作 ruleActionType=2必填 0:触发规则, 1:启用规则, 2:停用规则
noticeTypes Array<Int> 通知方式 ruleActionType=3必填 1:短信, 2:邮件
smsDetail object 短信详情 noticeTypes包含1必填
emailDetail object 邮件详情 noticeTypes包含2必填
contacts Array<string> 联系人id ruleActionType=3必填

propSetParams 说明

参数名称 类型 是否必须 名称 备注 参数值
identify string 属性标识
value string 属性值

serviceCallParams 说明

参数名称 类型 是否必须 名称 备注 参数值
identify string 属性标识
propSetParamsList object[] 属性列表参数

propSetParamsList 说明

参数名称 类型 是否必须 名称 备注 参数值
identify string 属性标识
value string 属性值

smsDetail 说明

参数名称 类型 是否必须 名称 备注 参数值
ruleNoticeType integer 模板类型 1:系统默认, 2:自定义
configId string 配置id
templateId string 模板id
variable array[object] 模板变量

短信variable 说明

参数名称 类型 是否必须 名称 备注 参数值
key string 模板变量key
value string 模板变量value

emailDetail 说明

参数名称 类型 是否必须 名称 备注 参数值
ruleNoticeType integer 模板类型 1:系统默认, 2:自定义
configId string 配置id
templateId string 模板id
variable array[object] 模板变量

邮件variable 说明

参数名称 类型 是否必须 名称 备注 参数值
key string 模板变量key
value string 模板变量value

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
ruleId string 规则id

请求示例

1、

{
    "name": "规则测试添加1",
    "start": 0,
    "effectAllTime":1,
    "conditionRelation": "or",
    "triggerPo":[
        {
            "triggerType":0,
            "cron":"51 09 * * ?"
        }
    ],
    "ruleActionPo":[
        {
            "ruleActionType":1,
            "level":4,
            "alarmName":"4级报警"
        }
    ]
}

2、

{
    "name": "规则测试添加2",
    "description": "测试规则引擎添加",
    "start": 0,
    "effectAllTime": 1,
    "conditionRelation": "and",
    "triggerPo": [
        {
            "triggerType": 1,
            "triggerStrategy": 0,
            "nodeId": "61518485cfb170780841f377",
            "deviceTriggerType": "0",
            "prop": "temp",
            "operator": ">",
            "value": 10
        }
    ],
    "ruleActionPo": [
        {
            "ruleActionType": 0,
            "nodeId": "61518485cfb170780841f377",
            "deviceActionType": 1,
            "serviceCallParams": {
                "identify": "ontemp",
                "propSetParamsList": [
                    {
                        "identify": "temp",
                        "value": 10
                    },
                    {
                        "identify": "on",
                        "value": 10
                    }
                ]
            },
            "delayTime": 5
        }
    ]
}

3、

{
    "name":"添加规则-发送通知",
    "description":"发送通知",
    "effectAllTime":"1",
    "effectWeek":[
    ],
    "effectTime":[
    ],
    "start":"1",
    "conditionRelation":"and",
    "triggerPo":[
        {
            "triggerType":"1",
            "triggerStrategy":"1",
            "productId":"0D797D34",
            "nodeEui":"LNTEST001",
            "deviceName":"设备测试001",
            "nodeId":"60d97c009a7f6138b0f2e21b",
            "type":"int32",
            "deviceTriggerType":"0",
            "operator":"&gt;",
            "prop":"test_property_001",
            "value":"10"
        }
    ],
    "ruleActionPo":[
        {
            "ruleActionType":"3",
            "noticeTypes":[
                1,
                2
            ],
            "smsDetail":{
                "ruleNoticeType":2,
                "configId":"64424e3a509e83502e4832c1",
                "templateId":"6444f5a5c7078f5ba357e813",
                "variable":[
                    {
                        "key":"name",
                        "value":"productName"
                    },
                    {
                        "key":"nodeEui",
                        "value":"nodeEui"
                    },
                    {
                        "key":"ruleName",
                        "value":"ruleName"
                    }
                ]
            },
            "emailDetail":{
                "ruleNoticeType":2,
                "configId":"6445e32b7cfcfd58c02c13d1",
                "templateId":"644617bb78d12f475ee08d4f",
                "variable":[
                    {
                        "key":"nodeEui",
                        "value":"nodeEui"
                    }
                ]
            },
            "contacts":[
                "6444934039daf707aa3eab7b",
                "64448cd06b099e4adc25a373"
            ]
        }
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "ruleId": "63c38a990c40c20e50b8bfe3"
    }
}

错误码

code 描述
60005 设备不存在
64020 定时触发器只能有一个
64005 触发条件超出上限
64008 执行动作超出上限
64006 告警名称不规范
64014 规则联动选择规则不存在或不符合要求
68001 产品未定义物模型
64022 执行动作,发送通知,参数错误
64023 执行动作,上报告警,参数错误

编辑规则

请求地址: /openApi/v2/ruleEngine/edit 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
ruleId string 规则id
name string 规则名称
description string 规则描述
start string 开启状态 0:禁用, 1:开启
effectAllTime string 生效时间 0:指定时间, 1:一直生效
effectTime string[] 规则生效的时间段 effectAllTime=0时必填, 例如3.30-4.30生效,值为["03:30","04:30"]
effectWeek string[] 规则生效周 effectAllTime=0时必填, 例如周一-周五[2,3,4,5,6] 1:周日,2:周一, 3:周二,4:周三, 5:周四,6:周五,7:周六
conditionRelation string 条件触发关系 or:或, and:与
triggerPo object[] 触发条件 最大50条
ruleActionPo object[] 执行动作 最大50条

triggerPo 说明

参数名称 类型 是否必须 名称 备注 参数值
**timingUuid** string 触发条件id 详情中返回的数据,修改原触发条件时必填
triggerType string 触发条件 0:定时触发, 1:设备触发
cron string 触发器cron表达式 triggerType=0必填, 例如每天定时15点21分:"21 15 * * ?" , 每周日、二8点20分:"20 08 ? * 1,3", 4月3号15点59分:"59 15 3 4 ?"
triggerStrategy string 触发机制 triggerType=1必填 0:仅首次, 1:每一次
nodeId string 设备id triggerType=1必填
deviceTriggerType string 设备触发方式 triggerType=1必填 0:属性上报, 1:事件上报, 2:设备状态
prop string 属性标识 deviceTriggerType=0/1必填
operator string 逻辑运算符 deviceTriggerType=0/1必填 >,>=,<,<=,==,!=,in,between
value string 属性值 deviceTriggerType=0/1必填
event string 事件标识 deviceTriggerType=1必填
status string 设备状态 deviceTriggerType=2必填 0:设备下线, 1:设备上线

ruleActionPo 说明

参数名称 类型 是否必须 名称 备注 参数值
**actionId** string 指定动作id 详情中返回的数据,修改原执行动作时必填
ruleActionType string 触发方式 0:下发命令, 1:上报告警, 2:规则联动, 3:发送通知
nodeId string 设备Id ruleActionType=0必填
deviceActionType string 执行方式 ruleActionType=0必填 0:设置属性, 1:调用服务
propSetParams object 设置属性参数 deviceActionType=0必填,结构和新增中相同
serviceCallParams object 调用服务参数 deviceActionType=1必填,结构和新增中相同
delayTime string 延时执行(秒) ruleActionType=0必填
level string 级别 ruleActionType=1必填 1,2,3,4,5
alarmName string 告警名称 ruleActionType=1必填
ruleId string 规则id ruleActionType=2必填
operation string 执行操作 ruleActionType=2必填 0:触发规则, 1:启用规则, 2:停用规则
noticeTypes Array<Int> 通知方式 ruleActionType=3必填 1:短信, 2:邮件
smsDetail object 短信详情 noticeTypes包含1必填
emailDetail object 邮件详情 noticeTypes包含2必填
contacts Array<string> 联系人id ruleActionType=3必填

smsDetail 说明

参数名称 类型 是否必须 名称 备注 参数值
ruleNoticeType integer 模板类型 1:系统默认, 2:自定义
configId string 配置id
templateId string 模板id
variable array[object] 模板变量

短信variable 说明

参数名称 类型 是否必须 名称 备注 参数值
key string 模板变量key
value string 模板变量value

emailDetail 说明

参数名称 类型 是否必须 名称 备注 参数值
ruleNoticeType integer 模板类型 1:系统默认, 2:自定义
configId string 配置id
templateId string 模板id
variable array[object] 模板变量

邮件variable 说明

参数名称 类型 是否必须 名称 备注 参数值
key string 模板变量key
value string 模板变量value

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
productId string 产品productId

请求示例

{
    "ruleId": "63c38a990c40c20e50b8bfe3",
    "name": "rule-nodeId",
    "description": "",
    "start": "1",
    "effectAllTime": "1",
    "conditionRelation": "and",
    "ruleActionPo": [
        {
            "nodeId": "61518485cfb170780841f377",
            "deviceActionType": "1",
            "serviceCallParams": {
                "identify": "s1_sync",
                "propSetParamsList": [
                    {
                        "value": "1",
                        "identify": "s_int",
                        "type": "int32"
                    },
                    {
                        "value": "1",
                        "identify": "s_float",
                        "type": "float"
                    },
                    {
                        "value": "1",
                        "identify": "s_double",
                        "type": "double"
                    },
                    {
                        "value": "1",
                        "identify": "s_bool",
                        "type": "bool"
                    },
                    {
                        "value": "111111",
                        "identify": "s_text",
                        "type": "text"
                    },
                    {
                        "value": "1",
                        "identify": "s_enum",
                        "type": "enum"
                    }
                ]
            },
            "ruleActionType": "0",
            "actionId": "3f4e05f9-dff2-4b37-86d9-a28d11f6a9911",
            "delayTime": "0",
            "deviceName": "MY00000056"
        }
    ],
    "triggerPo": [
        {
            "cron": "00 06 * * ?",
            "dateType": "2",
            "timingUuid": null,
            "triggerType": "0"
        },
        {
            "nodeId": "61518485cfb170780841f377",
            "triggerStrategy": "0",
            "productId": "9105BDA6",
            "timingUuid": "0ebaaaa9-b73c-4311-853a-c84c191062a4",
            "triggerType": "1",
            "deviceTriggerType": "2",
            "type": null,
            "deviceName": "接口添加单一设备",
            "status": "1"
        }
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
60005 设备不存在
64020 定时触发器只能有一个
64005 触发条件超出上限
64008 执行动作超出上限
64006 告警名称不规范
64014 规则联动选择规则不存在或不符合要求
68001 产品未定义物模型
64022 执行动作,发送通知,参数错误
64023 执行动作,上报告警,参数错误

删除规则

请求地址: /openApi/v2/ruleEngine/delete 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
ruleId string 规则id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "ruleId":"62ce31b8d9ba552efd7e4405"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

查询规则详情

请求地址: /openApi/v2/ruleEngine/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
ruleId string 规则id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数
ruleId string 规则id
name string 规则名称
description string 规则描述
createAt string 创建时间
updateAt string 更新时间
start string 开启状态 0:禁用, 1:开启
effectAllTime string 生效时间 0:指定时间, 1:一直生效
effectTime string[] 规则生效的时间段
effectWeek string[] 规则生效周 1:周日,2:周一, 3:周二,4:周三, 5:周四,6:周五,7:周六
conditionRelation string 条件触发关系 or:或, and:与
triggerPo object[] 触发条件
ruleActionPo object[] 执行动作

triggerPo 说明

参数名称 类型 名称 参数
timingUuid string 触发条件id
triggerType string 触发条件 0:定时触发, 1:设备触发
cron string 触发器cron表达式
triggerStrategy string 触发机制 0:仅首次, 1:每一次
nodeId string 设备id
productId string 产品productId
nodeEui string 设备号
deviceName string 设备名称
deviceTriggerType string 设备触发方式 0:属性上报, 1:事件上报, 2:设备状态
prop string 属性标识
type string 属性数据类型
operator string 逻辑运算符 >,>=,<,<=,==,!=,in,between
value string 属性值
event string 事件标识
status string 设备状态 0:设备下线, 1:设备上线

ruleActionPo 说明

参数名称 类型 名称 参数
actionId string 指定动作id
ruleActionType string 触发方式 0:下发命令, 1:上报告警, 2:规则联动
nodeId string 设备Id
productId string 产品productId
nodeEui string 设备号
deviceName string 设备名称
deviceActionType string 执行方式 0:设置属性, 1:调用服务
propSetParams object 设置属性参数
serviceCallParams object 调用服务参数
delayTime string 延时执行(秒)
level string 级别 1,2,3,4,5
alarmName string 告警名称
ruleId string 关联规则id
ruleName string 关联规则名称
operation string 执行操作 0:触发规则, 1:启用规则, 2:停用规则

propSetParams 说明

参数名称 类型 名称 参数 备注
identify string 属性标识
value string 属性值
type string 属性数据类型

serviceCallParams 说明

参数名称 类型 名称 参数 备注
identify string 属性标识
propSetParamsList object[] 属性列表参数

propSetParamsList 说明

参数名称 类型 名称 参数 备注
identify string 属性标识
value string 属性值
type string 属性数据类型

请求示例

{
    "ruleId": "63c38a990c40c20e50b8bfe3"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "ruleId": "63c38a990c40c20e50b8bfe3",
        "name": "rule-nodeId",
        "description": "",
        "createAt": "2023-01-15 13:09:45",
        "start": "1",
        "effectAllTime": "1",
        "effectTime": [],
        "effectWeek": [],
        "conditionRelation": "and",
        "ruleActionPo": [
            {
                "nodeEui": "MY00000056",
                "deviceActionType": "1",
                "productId": "B81550DD",
                "serviceCallParams": {
                    "identify": "s1_sync",
                    "propSetParamsList": [
                        {
                            "value": "1",
                            "identify": "s_int",
                            "type": "int32"
                        },
                        {
                            "value": "1",
                            "identify": "s_float",
                            "type": "float"
                        }
                    ]
                },
                "ruleActionType": "0",
                "actionId": "3f4e05f9-dff2-4b37-86d9-a28d11f6a991",
                "delayTime": "0",
                "deviceName": "MY00000056"
            }
        ],
        "triggerPo": [
            {
                "cron": "00 06 * * ?",
                "dateType": "2",
                "timingUuid": "af0fdf7d-106d-4fb1-aeb0-8a858b8db4c5",
                "triggerType": "0"
            },
            {
                "nodeEui": "MQTT00000000066",
                "triggerStrategy": "0",
                "productId": "9105BDA6",
                "timingUuid": "0ebaaaa9-b73c-4311-853a-c84c191062a4",
                "triggerType": "1",
                "deviceTriggerType": "2",
                "deviceName": "接口添加单一设备",
                "status": "1"
            }
        ],
        "updateAt": "2023-01-16 15:48:52"
    }
}

规则禁启用

请求地址: /openApi/v2/ruleEngine/opt 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
ruleId string 规则id
start integer 状态 0:停用, 1:启用

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "ruleId":"62d65f983bcc2c394166eb95",
    "start":"0"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

分页查询规则

请求地址: /openApi/v2/ruleEngine/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
name string 规则名称 模糊查询
start integer 状态 0:停用, 1:启用

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
ruleId string 规则id
name string 规则名称
description string 规则描述
createAt string 创建时间
start string 开启状态 0:禁用, 1:开启
timingUuid string 触发条件id

请求示例

{
    "page": 1,
    "pageSize": 5,
    "name": "测试",
    "start": 1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "ruleId": "63c26d043865b9307d7a6092",
                "name": "测试规则0113060",
                "description": "@&1232",
                "createAt": "2023-01-14 16:51:16",
                "start": "1",
                "timingUuid": null
            },
            {
                "ruleId": "63c2613c3865b9307d7a6091",
                "name": "触发条件0101",
                "description": "test",
                "createAt": "2023-01-14 16:01:00",
                "start": "1",
                "timingUuid": "5ab15430-4b64-4377-8dbe-339bb448b076"
            },
            {
                "ruleId": "63c25da23865b9307d7a6090",
                "name": "触发条件自定义01",
                "description": "test",
                "createAt": "2023-01-14 15:45:38",
                "start": "1",
                "timingUuid": "e61f055f-52ea-44c9-9d93-01d4da15e15c"
            },
            {
                "ruleId": "63c25d8e3865b9307d7a608f",
                "name": "触发条件每周01",
                "description": "test",
                "createAt": "2023-01-14 15:45:18",
                "start": "1",
                "timingUuid": "9f0639e7-6442-4153-aa32-55f3c0eef669"
            },
            {
                "ruleId": "63c25d7b3865b9307d7a608e",
                "name": "触发条件每天01",
                "description": "test",
                "createAt": "2023-01-14 15:44:59",
                "start": "1",
                "timingUuid": "662f77dc-f9d2-4af5-94fd-149b196efa1f"
            }
        ],
        "current": 1,
        "size": 5,
        "total": 62
    }
}

获取规则列表

请求地址: /openApi/v2/ruleEngine/getRuleList 传参方式: POST

备注: 添加、编辑规则时可用该接口筛选前置条件,用于规则联动

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
ruleId string 规则id 添加时为空,编辑时需填写

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
ruleId string 规则id
name string 规则名称

请求示例

{
    "ruleId": "63a0012ef79f704c8b4b5bc7"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "ruleId": "63c394982f029d4685a0dbb9",
            "name": "编辑规则"
        },
        {
            "ruleId": "63c38a990c40c20e50b8bfe3",
            "name": "rule-nodeId"
        }
     ]
}

获取规则变量

请求地址: /openApi/v2/ruleEngine/ruleVariable/list 传参方式: GET

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知,当前接口无请求参数

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
code string 变量code
name string 变量名称

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "code": "ruleName",
            "name": "规则名称"
        },
        {
            "code": "nodeEui",
            "name": "设备Id"
        },
        {
            "code": "productName",
            "name": "产品名称"
        },
        {
            "code": "nodeName",
            "name": "设备名称"
        },
        {
            "code": "alarmName",
            "name": "告警名称"
        }
    ]
}

联系人列表

请求地址: /openApi/v2/ruleEngine/contact/list 传参方式: GET

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知

请求参数

Params:
参数名称 类型 是否必须 名称 备注 参数值
search string 联系人名称或电话或邮箱

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
id string 数据库id
name string 名称
mobile string 手机号
email string 邮箱
createAt string 创建时间

请求示例

/openApi/v2/ruleEngine/contact/list?search=8

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "mobile": "15657993164",
            "name": "l8",
            "id": "6444d1cdd56b65373bf84643",
            "createAt": "2023-04-23 14:35:57",
            "email": "21111@qq.com"
        }
    ]
}

短信配置列表

请求地址: /openApi/v2/ruleEngine/smsConfig/list 传参方式: POST

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
ruleNoticeType integer 模板获取方式 1:系统默认 2:自定义

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
name string 名称

请求示例

{"ruleNoticeType":1}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "name": "短信配置测试",
            "id": "64424d2bc4cee663bd97a3fd"
        },
        {
            "name": "短信配置测试1",
            "id": "64424e3a509e83502e4832c1"
        },
        {
            "name": "短信配置测试3",
            "id": "6446184178d12f475ee08d50"
        }
    ]
}

短信模板列表

请求地址: /openApi/v2/ruleEngine/smsTemplate/list 传参方式: POST

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
ruleNoticeType integer 模板获取方式 1:系统默认 2:自定义

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
configId string 配置id
template array[object] 模板内容

template 说明

参数名称 类型 名称 备注
id string 模板数据库id
configId string 配置id
name string 模板名称
variable array[string] 模板变量

请求示例

{"ruleNoticeType":1}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "template": [
                {
                    "configId": "64424e3a509e83502e4832c1",
                    "variable": [
                        "name",
                        "nodeEui",
                        "ruleName"
                    ],
                    "name": "短信模板测试",
                    "id": "6444f5a5c7078f5ba357e813"
                },
                {
                    "configId": "64424e3a509e83502e4832c1",
                    "variable": [
                        "name",
                        "nodeEui",
                        "ruleName"
                    ],
                    "name": "短信模板测试1",
                    "id": "64466cff9afb794cd87aeb91"
                }
            ],
            "configId": "64424e3a509e83502e4832c1"
        }
    ]
}

邮件配置列表

请求地址: /openApi/v2/ruleEngine/emailConfig/list 传参方式: POST

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
ruleNoticeType integer 模板获取方式 1:系统默认 2:自定义

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
name string 配置名称

请求示例

{"ruleNoticeType":1}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "name": "邮件配置",
            "id": "6445e32b7cfcfd58c02c13d1"
        }
    ]
}

邮件模板列表

请求地址: /openApi/v2/ruleEngine/emailTemplate/list 传参方式: POST

备注: 添加、编辑规则时可用该接口筛选前置条件,用于发送通知

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
ruleNoticeType integer 模板获取方式 1:系统默认 2:自定义

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
configId string 配置id
template array[object] 模板内容

template 说明

参数名称 类型 名称 备注
id string 模板数据库id
configId string 配置id
name string 模板名称
variable array[string] 模板变量

请求示例

{"ruleNoticeType":1}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": [
        {
            "template": [
                {
                    "configId": "6445e32b7cfcfd58c02c13d1",
                    "variable": [
                        "nodeEui1",
                        "k1",
                        "f1",
                        "h1"
                    ],
                    "name": "邮件模板2223",
                    "id": "64461f8481dc6e4d636b49bc"
                }
            ],
            "configId": "6445e32b7cfcfd58c02c13d1"
        }
    ]
}

告警日志

查询告警日志

请求地址: /openApi/v2/alarmCenter/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填
name string 告警名称 模糊查询
level string 告警级别 1,2,3,4,5
status string 处理状态 0:未处理, 1:已处理

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
alarmId string 告警id
name string 告警名称
level string 告警级别 1,2,3,4,5
alarmInfo string 告警信息
status string 处理状态 0:未处理, 1:已处理
date string 告警时间

请求示例

{
    "page": 1,
    "pageSize": 10,
    "name": "告警",
    "level": 1,
    "beginTime":"2023-01-29 00:00:00",
    "endTime":"2023-01-30 00:00:00"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "alarmId": "63d570b1fe2cc74768dd92be",
                "name": "告警11",
                "level": "1",
                "alarmInfo": "规则:wwww,联动触发告警",
                "status": "0",
                "date": "2023-01-29 03:00:00"
            },
            {
                "alarmId": "63d570b1fe2cc74768dd92bc",
                "name": "告警11",
                "level": "1",
                "alarmInfo": "规则:3r22fawfaw,联动触发告警",
                "status": "0",
                "date": "2023-01-29 03:00:00"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 2
    }
}

告警处理

请求地址: /openApi/v2/alarmCenter/handle 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数值
alarmId string 告警id all=0单条处理时必填
all string 处理方式 0:单条处理, 1:一键处理

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "alarmId":"62bc053980182f25d46e1aa3",
    "all":"0"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

场景日志

分页查询场景日志

请求地址: /openApi/v2/sceneLog/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填
status string 处理状态 0:未处理, 1:已处理

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 参数
sceneLogId string 场景日志id
ruleId string 规则id
time integer 日志时间
status string 执行状态 0:失败, 1:成功

请求示例

{
    "ruleId": "63a0012ef79f704c8b4b5bc7",
    "page": 1,
    "pageSize": 10,
    "beginTime":"2023-01-01 00:00:00",
    "endTime":"2023-01-30 00:00:00"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "sceneLogId": "e1dec9b1-c5ea-4328-a15a-fe7525ce2fb7",
                "ruleId": "63a0012ef79f704c8b4b5bc7",
                "time": "2023-01-06 09:05:17",
                "status": "0"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 1
    }
}

分页查询场景日志详情

请求地址: /openApi/v2/sceneLogInfo/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
sceneLogId string 场景日志id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
sceneInfoLogId string 场景详情日志id
sceneLogId string 场景日志id
performObject string 执行对象
status string 执行状态 0:失败, 1:成功
failInfo string 失败原因
time integer 日志时间

请求示例

{
    "sceneLogId": "e1dec9b1-c5ea-4328-a15a-fe7525ce2fb7",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "sceneLogId": "e1dec9b1-c5ea-4328-a15a-fe7525ce2fb7",
                "sceneInfoLogId": "c554c8f5-5bd0-4418-bdf0-c28d11323cdd",
                "performObject": "规则测试2",
                "failInfo": "-",
                "time": "2023-01-06 09:05:17",
                "status": "1"
            },
            {
                "sceneLogId": "e1dec9b1-c5ea-4328-a15a-fe7525ce2fb7",
                "sceneInfoLogId": "421b6065-f264-4f2b-9bff-3912c9210daf",
                "performObject": "20MQTTWJ00001",
                "failInfo": "服务不存在",
                "time": "2023-01-06 09:05:17",
                "status": "0"
            },
            {
                "sceneLogId": "e1dec9b1-c5ea-4328-a15a-fe7525ce2fb7",
                "sceneInfoLogId": "eb57c3f5-1035-4ead-9814-68765d881237",
                "performObject": "20MQTTWJ00001",
                "failInfo": "属性不存在",
                "time": "2023-01-06 09:05:17",
                "status": "0"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 3
    }
}

设备本地日志

设备本地日志上传

请求地址: /openApi/v2/localLog/upload 传参方式: POST

备注: 无

请求参数

Headers:
参数名称 参数值 是否必须 备注
appId 添加api应用生成的appId
sign 计算的签名值,参考签名计算示例
nonce 随机数,可以使用随机数或者uuid
authorization 鉴权令牌,通过获取token接口获取
Content-Type multipart/form-data
form-data参数:
参数名称 类型 是否必须 名称 备注 参数值
level string 紧急程度 1:低, 2:中等, 3:紧急
simpleAt string 时间 格式yyyy-MM-dd HH:mm:ss
nodeId string 设备id
file file 日志文件

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

level:1
simpleAt:2023-01-11 09:30:08
nodeId:637592778fe5ca5d246db354
file:[文件]

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

分页查询设备本地日志

请求地址: /openApi/v2/localLog/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注 参数
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
beginTime string 查询开始时间 默认当前时间前7天,最早为当前时间前30天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填
level string 日志级别 0:低, 1:中等, 2:紧急
timeType string 时间类型 0:采集时间, 1:上传时间
productId string 产品productId
nodeEui string 设备号
nodeId string 设备id 当设备id、设备号或产品productId都有值的情况下,以nodeId为准

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
deviceLocalLogId string 设备本地日志id
productId string 产品productId
productName string 产品名称
nodeEui string 设备号
nodeId string 设备id
level string 日志级别 0:低, 1:中等, 2:紧急
originalFilename string 上传文件的名称
fileKey string oss上的文件的key
path string oss下载地址
simpleAt string 采集时间
createAt string 创建时间

请求示例

{
    "productId":"",
    "nodeEui":"",
    "nodeId":"637592778fe5ca5d246db354",
    "level":"1",
    "timeType":"1",
    "beginTime":"2023-01-01 00:00:00",
    "endTime":"2023-01-30 00:00:00",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "deviceLocalLogId": "63c377cdf7a2292c2eb97f53",
                "productId": "2916C822",
                "productName": "MQTT非透传json371",
                "nodeEui": "MQTT000000000253",
                "nodeId": "637592778fe5ca5d246db354",
                "level": "1",
                "originalFilename": "1.jpg",
                "fileKey": "deviceLocalLog/xxxx_1.jpg",
                "path": "https://xxxx",
                "simpleAt": "2023-01-11 09:30:08",
                "createAt": "2023-01-15 11:49:32"
            },
            {
                "deviceLocalLogId": "63c377333b17973539aff0ec",
                "productId": "2916C822",
                "productName": "MQTT非透传json371",
                "nodeEui": "MQTT000000000253",
                "nodeId": "637592778fe5ca5d246db354",
                "level": "1",
                "originalFilename": "1.jpg",
                "fileKey": "deviceLocalLog/xxxx_1.jpg",
                "path": "https://xxxx",
                "simpleAt": "2023-01-11 09:30:08",
                "createAt": "2023-01-15 11:46:59"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 2
    }

设备运行日志

分页查询设备运行日志

请求地址: /openApi/v2/runtimeLog/list 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
beginTime string 查询开始时间 默认当前时间前1天,最早为当前时间前7天
endTime string 查询结束时间 默认当前时间,开始时间有值时必填
productId string 产品productId
nodeEui string 设备号
nodeId string 设备id 当设备id、设备号、产品productId都有值的情况下,以nodeId为准
module string 模块 DEVICE_STATUS:设备状态, DEVICE_ACTION:设备行为, MESSAGE_DEVICE_TO_CLOUD:设备到云消息, MESSAGE_CLOUD_TO_DEVICE:云到设备消息, OTA:OTA, REMOTE_CONFIG:远程配置, DEVICE_ANALYZE:数据解析, MODEL_DATA_REPORT:物模型消息, MODEL_DATA_VERIFY:物模型数据校验, SERVER_PUSH:服务端推送, API_CALL:API调用, DEVICE_SHADOW:设备影子, RULE_ENGINE:规则引擎, CLOUD_GATEWAY:云网关, SUB_RELATION:拓扑关系
status string 状态 200:成功, 400:失败
messageId string 消息id
messageContent string 消息内容

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
records object[] 分页列表
current integer 当前页
size integer 分页数
total integer 总页数

records 说明

参数名称 类型 名称 备注
runTimeLogId string 运行日志id
productId string 产品productId
nodeEui string 设备号
time string 时间
messageContent string 消息内容
content string 返回内容
module string 模块 参数内容同请求参数
opt string 操作
src string 来源
traceId string 来源id
messageId integer messageId
status string 状态

请求示例

{
    "productId": "AE06B207",
    "nodeEui": "FFFF301B977E2342"
    "beginTime":"2023-01-29 00:00:00",
    "endTime":"2023-01-30 00:00:00",
    "page": 1,
    "pageSize": 10
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "runTimeLogId": "UpNPWYYB70wcY5WdRQnv",
                "productId": "AE06B207",
                "nodeEui": "FFFF301B977E2342",
                "time": "2023-01-29 16:20:11",
                "messageContent": "{\"payload\":\"{\\\"openId\\\":\\\"845F86E6\\\",\\\"productId\\\":\\\"AE06B207\\\",\\\"nodeEui\\\":\\\"FFFF301B977E2342\\\",\\\"command\\\":1,\\\"timestamp\\\":1676535611853,\\\"encrypted\\\":false,\\\"messageId\\\":1676535611,\\\"requestId\\\":\\\"a952e7f0-2551-4393-9574-5acdb6dea8ef\\\",\\\"payload\\\":{\\\"NAM\\\":\\\"智能单色灯5\\\"},\\\"topic\\\":\\\"/sys/845F86E6/08903667/301B974DB651/subdevice/model/property/report\\\",\\\"reportType\\\":2}\",\"timestamp\":1676535611853,\"topic\":\"/sys/845F86E6/08903667/301B974DB651/subdevice/model/property/report\"}",
                "content": "{\"code\":\"70016\",\"reason\":\"连接失败\"}",
                "module": "SERVER_PUSH",
                "opt": "http",
                "src": null,
                "traceId": null,
                "messageId": 1676535611,
                "status": "400"
            },
            {
                "runTimeLogId": "TZNPWYYB70wcY5WdRQnv",
                "productId": "AE06B207",
                "nodeEui": "FFFF301B977E2342",
                "time": "2023-01-29 16:20:11",
                "messageContent": "{\"payload\":\"{\\\"params\\\":[{\\\"identify\\\":\\\"MAC\\\",\\\"value\\\":\\\"FFFF301B977E2342\\\"},{\\\"identify\\\":\\\"CEN\\\",\\\"value\\\":\\\"0\\\"},{\\\"identify\\\":\\\"CAP\\\",\\\"value\\\":\\\"7E\\\"},{\\\"identify\\\":\\\"ADD\\\",\\\"value\\\":\\\"2444\\\"},{\\\"identify\\\":\\\"NAM\\\",\\\"value\\\":\\\"智能单色灯5\\\"},{\\\"identify\\\":\\\"LIVE\\\",\\\"value\\\":\\\"ON\\\"},{\\\"identify\\\":\\\"data\\\",\\\"value\\\":\\\"\\\"},{\\\"identify\\\":\\\"RSSI\\\",\\\"value\\\":\\\"-76\\\"},{\\\"identify\\\":\\\"FWV\\\",\\\"value\\\":\\\"V6.7_LT52.0\\\"},{\\\"identify\\\":\\\"TYP\\\",\\\"value\\\":\\\"LT-LEV\\\"}]}\",\"timestamp\":1676535611853,\"topic\":\"/sys/845F86E6/08903667/301B974DB651/subdevice/model/property/report\"}",
                "content": "-",
                "module": "MODEL_DATA_REPORT",
                "opt": "属性上报",
                "src": null,
                "traceId": null,
                "messageId": 1676535611,
                "status": "200"
            }
        ],
        "current": 1,
        "size": 10,
        "total": 2
    }
}

OSS文件

获取OSS文件上传STS凭证

请求地址: /openApi/v2/ 传参方式: POST

备注

  • 对于比较大的固件,考虑到其上传会消耗大量的时间,而造成的用户体验感降低,平台开放接口,授权STS凭证给用户,用户拿着STS凭证即可直接把文件上传到OSS服务器 ,而不经过平台的转发
  • STS凭证具有有效期,用户应在有效期内使用STS凭证完成文件上传,否则需要重新获取

请求参数

Body:
参数名称 类型 是否必须 名称 参数值
type integer 文件类型 1:设备证书存储的目录, 2:固件存储的目录, 3:设备本地日志存储的目录

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 参数 备注
endPoint string OSS访问域名
accessKeyId string OSS秘钥id
accessKeySecret string OSS秘钥
stsToken string STS凭证
expiation long STS凭证有效期
bucket string OSS桶
deviceCertificateDir string 设备证书存放目录
otaFirmwareDir string 固件存放目录
deviceLocalLogDir string 设备本地日志存放目录

请求示例

{
    "type": 1
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "endPoint": "oss-cn-zhangjiakou.aliyuncs.com",
        "accessKeyId": "yourAccessKeyId",
        "accessKeySecret": "yourAccessKeySecret",
        "stsToken": "yourStsToken",
        "expiation": 1675069200000,
        "bucket": "test-senthink-xiot",
        "deviceCertificateDir": "deviceCertificate/xxxxxx",
        "otaFirmwareDir": "",
        "deviceLocalLogDir": ""
    }
}

通知服务

短信配置-查询详情

请求地址: /senthink/openApi/v1/sms/config/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
id string 短信配置id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
name string 配置名称
provider string 服务商
accessKey string AccessKey
accessSecret string AccessSecret
remark string 备注
createAt string 创建时间

请求示例

{
  "id": "644910f4ecdc64dds6be021"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "id": "644910f4ecdc64dds6be021",
        "name": "d正式配置",
        "provider": "aliyun",
        "accessKey": "LI5t8ZErqpEy6mSXKPboJZ",
        "accessSecret": "9s9vPKQFRddjdTDqYBl3daBJVquKT",
        "remark": null,
        "createAt": "2023-04-26 19:54:28"
    }
}

错误码

code 描述
4001 请求参数有误

短信配置-查询列表

请求地址: /senthink/openApi/v1/sms/config/getPage 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
search string 配置名称
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
searchBgnTime string 时间开始区间
searchEndTime string 时间结束区间

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
asc bool 是否做了升序排列
current integer 当前页数
limit integer 限制
offset integer 偏移量
optimizeCount bool 是否优化了数据总数的查询
orderByField string 排序字段
pages integer 总页数
records array[object] 查询的结果集
searchCount bool 是否查询了数据总数
size integer 每页显示数量
total integer 数据总数

records 说明

参数名称 类型 名称 备注
id string 数据库id
name string 配置名称
provider string 服务商
accessKey string AccessKey
accessSecret string AccessSecret
remark string 备注
createAt string 创建时间

请求示例

{
  "page": 1,
  "pageSize": 10,
  "search":"短信配置测试1",
  "searchBgnTime":"2023-04-20 11:05:28",
  "searchEndTime":"2023-04-22 11:05:29"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "id": "64424e3a509e83502e4832c1",
                "name": "短信配置测试1",
                "provider": "aliyun",
                "accessKey": "11111@qq.com",
                "accessSecret": "哒哒哒哒哒哒",
                "remark": "",
                "createAt": "2023-04-21 16:50:02"
            }
        ],
        "pages": 1,
        "current": 1,
        "size": 10,
        "searchCount": true,
        "total": 1,
        "optimizeCount": true,
        "offset": 0,
        "limit": 2147483647,
        "asc": true,
        "orderByField": null
    }
}

错误码

code 描述
4001 请求参数有误

短信模板-查询详情

请求地址: /senthink/openApi/v1/sms/template/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
id string 短信模板id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
configId string 配置数据库Id
name string 模板名称
signName string 签名名称
code string 模板code
variable array[string] 模板变量
createAt string 创建时间

请求示例

{
  "id": "6444f5a5c7078f5ba357e813"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "id": "6444f5a5c7078f5ba357e813",
        "name": "短信模板测试",
        "configId": "64424e3a509e83502e4832c1",
        "signName": "短信签名名称",
        "code": "codeTest1",
        "createAt": "2023-04-23 17:08:51",
        "variable": [
            "name",
            "nodeEui",
            "ruleName"
        ]
    }
}

错误码

code 描述
4001 请求参数有误

短信模板-查询列表

请求地址: /senthink/openApi/v1/sms/template/getPage 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
search string 短信模板名称
configId string 短信配置id
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
searchBgnTime string 时间开始区间
searchEndTime string 时间结束区间

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
asc bool 是否做了升序排列
current integer 当前页数
limit integer 限制
offset integer 偏移量
optimizeCount bool 是否优化了数据总数的查询
orderByField string 排序字段
pages integer 总页数
records array[object] 查询的结果集
searchCount bool 是否查询了数据总数
size integer 每页显示数量
total integer 数据总数

records 说明

参数名称 类型 名称 备注
id string 数据库id
configId string 配置数据库Id
name string 模板名称
signName string 签名名称
code string 模板code
variable array[string] 模板变量
createAt string 创建时间

请求示例

{
  "page": 1,
  "pageSize": 10,
  "search": "模板",
  "configId":"64424e3a509e83502e4832c1",
  "searchBgnTime":"2023-04-23 16:57:28",
  "searchEndTime":"2023-04-26 17:05:29"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "id": "6444f5a5c7078f5ba357e813",
                "name": "短信模板",
                "configId": "64424e3a509e83502e4832c1",
                "signName": "短信签名名称",
                "code": "codeTest1",
                "createAt": "2023-04-23 17:08:51",
                "variable": [
                    "name",
                    "nodeEui",
                    "ruleName"
                ]
            }
        ],
        "pages": 1,
        "current": 1,
        "size": 10,
        "searchCount": true,
        "total": 2,
        "optimizeCount": true,
        "offset": 0,
        "limit": 2147483647,
        "asc": true,
        "orderByField": null
    }
}

错误码

code 描述
4001 请求参数有误

短信模板-发送短信

请求地址: /senthink/openApi/v1/sms/template/send 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
templateId string 短信模板id
mobiles string 手机号 多个手机号以","分隔
variable array[object] 模板变量

variable 说明

参数名称 类型 是否必须 名称 备注
key string 模板变量key
value string 模板变量value

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "templateId":"64466cff9afb794cd87aeb91",
    "mobiles":"15667667887",
    "variable":[
        {
            "key":"name",
            "value":"testNode11"
        },
        {
            "key":"nodeEui",
            "value":"hhhhh"
        },
        {
            "key":"ruleName",
            "value":"dddf"
        }
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
4001 请求参数有误
20008 变量名与变量值个数不匹配

邮件配置-查询详情

请求地址: /senthink/openApi/v1/email/config/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
id string 邮件配置id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
name string 配置名称
provider string 服务商
address string 服务器地址
port integer 端口
sender string 发件人
userName string 用户名
password string 密码
remark string 备注
createAt string 创建时间

请求示例

{
    "id": "6445e32b7cfcfd58c02c13d1"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "id": "6445e32b7cfcfd58c02c13d1",
        "name": "邮件配置",
        "provider": "default",
        "address": "11111@qq.com",
        "port": 5678,
        "sender": "11111ddd1@qq.com",
        "userName": "aliyun",
        "password": "11111@qq.com",
        "remark": "哒哒哒哒哒哒1",
        "createAt": "2023-04-24 10:02:19"
    }
}

错误码

code 描述
4001 请求参数有误

邮件配置-查询列表

请求地址: /senthink/openApi/v1/email/config/getPage 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
search string 配置名称
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
searchBgnTime string 时间开始区间
searchEndTime string 时间结束区间

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
asc bool 是否做了升序排列
current integer 当前页数
limit integer 限制
offset integer 偏移量
optimizeCount bool 是否优化了数据总数的查询
orderByField string 排序字段
pages integer 总页数
records array[object] 查询的结果集
searchCount bool 是否查询了数据总数
size integer 每页显示数量
total integer 数据总数

records 说明

参数名称 类型 名称 备注
id string 数据库id
name string 配置名称
provider string 服务商
address string 服务器地址
port integer 端口
sender string 发件人
userName string 用户名
password string 密码
remark string 备注
createAt string 创建时间

请求示例

{
  "page": 1,
  "pageSize": 10,
  "search":"配置",
  "searchBgnTime":"2023-04-24 09:05:28",
  "searchEndTime":"2023-04-24 11:05:29"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "id": "6445e32b7cfcfd58c02c13d1",
                "name": "邮件配置",
                "provider": "default",
                "address": "11111@qq.com",
                "port": 5678,
                "sender": "11111ddd1@qq.com",
                "userName": "aliyun",
                "password": "11111@qq.com",
                "remark": "哒哒哒哒哒哒1",
                "createAt": "2023-04-24 10:02:19"
            }
        ],
        "pages": 1,
        "current": 1,
        "size": 10,
        "searchCount": true,
        "total": 1,
        "optimizeCount": true,
        "offset": 0,
        "limit": 2147483647,
        "asc": true,
        "orderByField": null
    }
}

错误码

code 描述
4001 请求参数有误

邮件模板-查询详情

请求地址: /senthink/openApi/v1/email/template/query 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
id string 邮件模板id

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
id string 数据库id
configId string 配置数据库Id
name string 模板名称
title string 邮件标题
variable array[string] 模板变量 不重复的标题和内容变量集合
titleVariable array[string] 标题变量
contentVariable array[string] 内容变量
createAt string 创建时间

请求示例

{
  "id": "6448c82a1600c705f01f4288"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "id": "6448c82a1600c705f01f4288",
        "name": "邮件模板2223",
        "configId": "6445e32b7cfcfd58c02c13d1",
        "title": "测试测试${nodeEui1}${nodeEss1}",
        "content": "邮件模板内容测试${nodeEui1},邮件模板内容测试${k1},邮件模板内容测试${f1},邮件模板内容测试${h1}",
        "createAt": "2023-04-26 14:43:51",
        "titleVariable": [
            "nodeEui1",
            "nodeEss1"
        ],
        "contentVariable": [
            "nodeEui1",
            "k1",
            "f1",
            "h1"
        ],
        "variable": [
            "nodeEui1",
            "nodeEss1",
            "k1",
            "f1",
            "h1"
        ]
    }
}

错误码

code 描述
4001 请求参数有误

邮件模板-查询列表

请求地址: /senthink/openApi/v1/email/template/getPage 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
search string 邮件模板名称
configId string 邮件配置id
page integer 页数 最小值为1,默认值为1
pageSize integer 分页数 最小值为1,最大值为100,默认值为10
searchBgnTime string 时间开始区间
searchEndTime string 时间结束区间

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

data 说明

参数名称 类型 名称 备注
asc bool 是否做了升序排列
current integer 当前页数
limit integer 限制
offset integer 偏移量
optimizeCount bool 是否优化了数据总数的查询
orderByField string 排序字段
pages integer 总页数
records array[object] 查询的结果集
searchCount bool 是否查询了数据总数
size integer 每页显示数量
total integer 数据总数

records 说明

参数名称 类型 名称 备注
id string 数据库id
configId string 配置数据库Id
name string 模板名称
title string 邮件标题
variable array[string] 模板变量 不重复的标题和内容变量集合
titleVariable array[string] 标题变量
contentVariable array[string] 内容变量
createAt string 创建时间

请求示例

{
  "page": 1,
  "pageSize": 10,
  "search":"334",
  "configId":"6445e32b7cfcfd58c02c13d1",
  "searchBgnTime":"2023-04-26 11:05:28",
  "searchEndTime":"2023-04-26 15:05:29"
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": {
        "records": [
            {
                "id": "6448c67859925d0d7eaf011f",
                "name": "邮件模板334",
                "configId": "6445e32b7cfcfd58c02c13d1",
                "title": "设备${nodeEui}${nodeEss}",
                "content": "邮件模板内容测试${nodeEui},邮件模板内容测试${k},邮件模板内容测试${f},邮件模板内容测试${h}",
                "createAt": "2023-04-26 14:36:24",
                "titleVariable": [
                    "nodeEui",
                    "nodeEss"
                ],
                "contentVariable": [
                    "nodeEui",
                    "k",
                    "f",
                    "h"
                ],
                "variable": [
                    "nodeEui",
                    "nodeEss",
                    "k",
                    "f",
                    "h"
                ]
            }
        ],
        "pages": 1,
        "current": 1,
        "size": 10,
        "searchCount": true,
        "total": 1,
        "optimizeCount": true,
        "offset": 0,
        "limit": 2147483647,
        "asc": true,
        "orderByField": null
    }
}

错误码

code 描述
4001 请求参数有误

邮件模板-发送邮件

请求地址: /senthink/openApi/v1/email/template/send 传参方式: POST

备注: 无

请求参数

Body:
参数名称 类型 是否必须 名称 备注
templateId string 短信模板id
emails string 邮箱 多个邮箱地址以","分隔
variable array[object] 模板变量

variable 说明

参数名称 类型 是否必须 名称 备注
key string 模板变量key
value string 模板变量value

响应参数

名称 类型 说明
code string 响应码
msg string 响应码说明
data object 响应内容

请求示例

{
    "templateId":"64461f8481dc6e4d636b49bc",
    "emails":"1111@qq.com,111ddd1@qq.com",
    "variable":[
        {
            "key":"nodeEui1",
            "value":"testNode11"
        },
        {
            "key":"k1",
            "value":"ddd"
        },
        {
            "key":"f1",
            "value":"dddf"
        },
        {
            "key":"h1",
            "value":"ddddvddf"
        }
    ]
}

响应示例

{
    "code": "8001",
    "msg": "操作成功",
    "data": true
}

错误码

code 描述
4001 请求参数有误
20008 变量名与变量值个数不匹配

results matching ""

    No results matching ""