本文为青璃工业物联网平台API文档。
接口调用说明
API Base Url说明
以下 API 接口的 base url 为 https://www.imqli.com/open/api 私有云部署环境下的base url为内部服务器的IP地址或者其他域名地址
比如: 调用获取设备列表数据接口,完整的 URL 路径应该为: https://www.imqli.com/open/api/device/list
接口认证说明
每个接口都需要认证信息才能调用,认证方式为签名认证,生成签名参数需要以下信息:
APP_ID(应用ID): **************** (长度16位,联系市场部获取)
APP_SECRET(应用秘钥):****************************** (长度32位,联系市场部获取)
签名参数TSINGLEY-SIGN生成方法:
- 将所有参数,过滤掉值为空的参数,按参数名升序排列
- 把排序后的参数按 参数名1=参数值1#参数名2=参数值2 这种格式拼接
- 把应用秘钥拼接在上一步字符串前面并且加上# 格式为:秘钥#参数名1=参数值1#参数名2=参数值2
- 将拼接好以后的字符串 sha256加密,得到的字符串即为TSINGLEY-SIGN的值
例如: POST传输JSON数据如下
{
"123": "2",
"test": "1",
"abc": "3",
"ABC": "4",
"Abc": "5",
"ok": null,
"tt": ""
}
那么生成签名参数TSINGLEY-SIGN的步骤如下
- 把所有参数,过滤掉空值,按参数名升序排列并且拼接得到字符串 123=2#ABC=4#Abc=5#abc=3#test=1
- 把秘钥拼接在上一步字符串前面并且加上# 得到字符串 558fd01c8d67077c006f5c4eaf135e6e#123=2#ABC=4#Abc=5#abc=3#test=1
- sha256加密上一步字符串,得到 b11f38bd058e70e61363ce04852215d2da43c25af6f2c8089ed26aa008d74db6 即为 TSINGLEY-SIGN的值
在HTTP请求时在header中传递TSINGLEY-SIGN和APP_ID进行校验
设备信息
设备列表
基本信息
Path: /api/device/list
Method: POST
接口描述: 获取设备列表
请求参数
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
APP_ID | 应用ID | 是 | 应用ID | |
TSINGLEY-SIGN | 签名值 | 是 | 通过计算得出的签名值 |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
teamId | string | 必须 | 团队ID | ||
page | number | 非必须 | 1 | 页码 | |
limit | number | 非必须 | 10 | 每页条数 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
success | boolean | 必须 | true:接口调用成功 false:接口调用失败 | ||
message | string [] | 必须 | 错误或成功消息 | item 类型: string | |
├─ | 非必须 | 消息1 | |||
datas | object | 必须 | |||
├─ list | object [] | 非必须 | 设备列表 | item 类型: object | |
├─ uuid | string | 必须 | 设备UUID | ||
├─ name | string | 必须 | 设备编号 | ||
├─ model | string | 必须 | 设备名称 | ||
├─ online | boolean | 必须 | 设备在线状态 | ||
├─ count | number | 非必须 | 总条数 | ||
├─ page | number | 必须 | 当前页 | ||
├─ limit | string | 必须 | 每页条数 |
设备详细信息
基本信息
Path: /api/device/detail
Method: POST
接口描述: 获取设备详细信息
请求参数
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
APP_ID | 应用ID | 是 | 应用ID | |
TSINGLEY-SIGN | 签名值 | 是 | 通过计算得出的签名值 |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
teamId | string | 必须 | 团队ID | ||
uuid | string | 必须 | 设备UUID |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
success | boolean | 必须 | true:接口调用成功 false:接口调用失败 | ||
message | string [] | 必须 | 错误或成功消息 | item 类型: string | |
├─ | 非必须 | 消息1 | |||
datas | object | 必须 | |||
├─ device | object | 必须 | 设备信息 | ||
├─ uuid | string | 必须 | |||
├─ name | string | 必须 | |||
├─ series | string | 必须 | |||
├─ model | string | 必须 | |||
├─ online | boolean | 必须 | |||
├─ datas | object [] | 必须 | 设备数据ID列表 | item 类型: object | |
├─ name | string | 必须 | 数据ID | ||
├─ mean | string | 必须 | 数据含义 | ||
├─ type | string | 必须 | 数据类型 | ||
├─ unit | string | 必须 | 单位 | ||
├─ remarks | string | 必须 | 备注 |
获取设备历史数据
基本信息
Path: /api/device/history/list
Method: POST
接口描述: 获取设备历史数据
请求参数
Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 | ||
APP_ID | 应用ID | 是 | 应用ID | |
TSINGLEY-SIGN | 签名值 | 是 | 通过计算得出的签名值 |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
teamId | string | 必须 | 团队ID | ||
uuid | string | 必须 | 设备UUID | ||
fields | string | 必须 | 需要获取的数据ID 多个以,隔开 数据项为设备详细信息中 datas下name字段 | ||
beginTime | string | 必须 | 开始时间 2022-01-16 08:00:00 | ||
endTime | string | 必须 | 结束时间 2022-01-18 23:30:00 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
success | boolean | 必须 | true:接口调用成功 false:接口调用失败 | ||
message | string [] | 必须 | 错误或成功消息 | item 类型: string | |
├─ | 非必须 | 消息1 | |||
datas | object | 必须 | |||
├─ list | object [] | 非必须 | 设备列表 | item 类型: object | |
├─ time | string | 必须 | 数据时间 | ||
├─ field1 | string | 必须 | 数据1 根据fields变化 | ||
├─ field2 | string | 必须 | 数据2 根据fields变化 |
获取设备实时数据
基本信息
Method: MQTT消息订阅
接口描述: 获取设备实时数据
通过订阅mqtt消息获取设备实时数据
1.连接MQTT服务
MQTT服务器IP: 私有云部署环境下为内部服务器的IP地址
MQTT服务器端口: 1883
2.订阅设备实时消息主题
主题为 deviceData/设备UUID
例如:
设备UUID: THJK-6YFT-H8U6-F7R7对应mqtt 主题为 deviceData/THJK-6YFT-H8U6-F7R7
实时数据格式
{
"type":"DeviceMeasurement",
"originator":"device",
"deviceToken":"THJK-6YFT-H8U6-F7R7",
"request":{
"name":"measurement",
"value":"1",
"updateState":true,
"eventDate":"2023-02-21 10:53:59",//数据发生时间
"metadata":{//设备实时数据项
"EmergencyStop":0,
"Counter":431,
"Freq":2,
"Speed":20,
"SV":40,
"PV":20
}
}
}