Appearance
数据接口
数据接口是第三方向平台调用。第三方向平台发送 MQTT 消息,平台给第三方响应 MQTT 接口数据。
- 请求主题:
/openapi/data/request/{appKey} - 响应主题:
/openapi/data/response/{appKey}
3.1 查询区域列表
该接口返回所有区域。
方法名(method): queryRegions
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryRegions",
"data": {}
}响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryRegions",
"data": {
"code": 200,
"message": "success",
"data": [
{
"regionId": 1,
"regionName": "一级区域",
"parentId": 0,
"parentName": null,
"remark": "备注"
}
],
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| regionId | Long | 719943688798277 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| parentId | Long | 719943688798270 | 父区域 ID |
| parentName | String | 顶级区域 | 父区域名称 |
| remark | String | 备注 | 备注 |
3.2 查询设备列表
方法名(method): queryDeviceList
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceList",
"data": {
"regionIds": [1, 2],
"deviceIds": [1, 2],
"businessIds": [1, 2],
"page": 1,
"size": 10
}
}根据查询参数,查询设备列表。单页最多 1000 个设备。如果设备不多的情况,可以一次性查询全部。
请求参数:
| 参数 | 数据类型 | 示例 | 必填 | 描述 |
|---|---|---|---|---|
| regionIds | 整型 List | [1, 2] | 否 | 区域 ID 集合,可以单个 |
| deviceIds | 整型 List | [1, 2] | 否 | 设备 ID 集合,可以单个 |
| businessIds | 整型 List | [1, 2] | 否 | 行业 ID 集合,可以单个 |
| page | Integer | 1 | 是 | 分页参数 |
| size | Integer | 10 | 是 | 分页参数 |
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceList",
"data": {
"code": 200,
"message": "success",
"data": [
{
"deviceId": 123,
"businessId": "IMEI123456",
"deviceName": "设备 001",
"productId": 1,
"productName": "4G 终端",
"regionId": 1,
"regionName": "一级区域",
"onlineStatus": 1,
"deviceStatus": 0,
"activeTime": "2025-01-01 10:00:00",
"lastOnlineTime": "2025-11-27 16:00:00",
"remark": "备注"
}
],
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| productId | Long | 719943688798271 | 产品 ID |
| productName | String | 4G 终端 | 产品名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| onlineStatus | Integer | 0 | 在线状态,0-在线,1-离线 |
| alarmStatus | Integer | 0 | 告警状态,0-正常,1-告警 |
| activeTime | String | 2025-01-01 14:00:00 | 激活时间 |
| offlineTime | String | 2025-01-01 14:00:00 | 离线时间,如果设备在线,为空串 |
| remark | String | 备注 | 备注 |
3.3 查询单个设备信息
方法名(method): queryDevice
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDevice",
"data": {
"deviceId": 1
}
}响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDevice",
"data": {
"code": 200,
"message": "success",
"data": {
"deviceId": 123,
"businessId": "IMEI123456",
"deviceName": "设备 001",
"productId": 1,
"productName": "4G 终端",
"regionId": 1,
"regionName": "一级区域",
"onlineStatus": 1,
"deviceStatus": 0,
"activeTime": "2025-01-01 10:00:00",
"lastOnlineTime": "2025-11-27 16:00:00",
"remark": "备注"
},
"timestamp": 1732694400000
}
}3.4 查询设备实时数据
方法名(method): queryDeviceListRealtime
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceListRealtime",
"data": {
"regionIds": [1, 2],
"deviceIds": [1, 2],
"businessIds": [1, 2],
"page": 1,
"size": 10
}
}根据查询参数,返回单个或者多个设备的实时数据。单页最多 1000 个设备的实时数据。如果设备不多的情况,可以一次性查询全部。
请求参数:
| 参数 | 数据类型 | 示例 | 必填 | 描述 |
|---|---|---|---|---|
| regionIds | 整型 List | [1, 2] | 否 | 区域 ID 集合,可以单个 |
| deviceIds | 整型 List | [1, 2] | 否 | 设备 ID 集合,可以单个 |
| businessIds | 整型 List | [1, 2] | 否 | 行业 ID 集合,可以单个 |
| page | Integer | 1 | 是 | 分页参数 |
| size | Integer | 10 | 是 | 分页参数 |
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceListRealtime",
"data": {
"code": 200,
"message": "success",
"data": {
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"onlineStatus": 1,
"metrics": [
{
"meteId": "1555",
"meteName": "温度",
"value": "25.5",
"sValue": "25.5",
"unit": "℃",
"time": "2024-11-27 16:00:00"
},
{
"meteId": "12125",
"meteName": "湿度",
"value": "60",
"sValue": "60",
"unit": "%",
"time": "2024-11-27 16:00:00"
}
],
"timestamp": 1732694400000
},
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| productId | Long | 719943688798271 | 产品 ID |
| productName | String | 产品名称 | 产品名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 区域名称 | 区域名称 |
| onlineStatus | Integer | 0 | 在线状态,0-在线,1-离线 |
| metrics | List | 属性量列表 | |
| ├─ meteId | String | 1855521 | 量 ID |
| ├─ meteName | String | 温度 | 量名称 |
| ├─ value | String | 26.5 | 实时值 |
| ├─ unit | String | ℃ | 单位 |
| ├─ time | String | 2025-01-01 14:00:00 | 时间 |
| └─ sValue | String | 26.5 | 翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值 |
3.5 查询单个设备实时数据
方法名(method): queryDeviceRealtime
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceRealtime",
"data": {
"deviceId": 1
}
}响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceRealtime",
"data": {
"code": 200,
"message": "success",
"data": {
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"onlineStatus": 1,
"metrics": [
{
"meteId": "1555",
"meteName": "温度",
"value": "25.5",
"sValue": "25.5",
"unit": "℃",
"time": "2024-11-27 16:00:00"
},
{
"meteId": "12125",
"meteName": "湿度",
"value": "60",
"unit": "%",
"time": "2024-11-27 16:00:00"
}
]
},
"timestamp": 1732694400000
}
}响应参数: 同 3.4 查询设备实时数据。
3.6 获取设备的在线状态
方法名(method): queryDeviceOnlineStatusList
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceOnlineStatusList",
"data": {
"regionIds": [1, 2],
"deviceIds": [1, 2],
"businessIds": [1, 2],
"page": 1,
"size": 10
}
}根据查询参数,返回单个或者多个设备的在线状态。单页最多 1000 个设备。如果设备不多的情况,可以一次性查询全部。
请求参数:
| 参数 | 数据类型 | 示例 | 必填 | 描述 |
|---|---|---|---|---|
| regionIds | 整型 List | [1, 2] | 否 | 区域 ID 集合,可以单个 |
| deviceIds | 整型 List | [1, 2] | 否 | 设备 ID 集合,可以单个 |
| businessIds | 整型 List | [1, 2] | 否 | 行业 ID 集合,可以单个 |
| page | Integer | 1 | 是 | 分页参数 |
| size | Integer | 10 | 是 | 分页参数 |
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceOnlineStatusList",
"data": {
"code": 200,
"message": "success",
"data": {
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"onlineStatus": 1
},
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| onlineStatus | Integer | 0 | 设备状态,0-在线,1-离线 |
3.7 查询实时告警数据
方法名(method): queryRealtimeAlarms
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryRealtimeAlarms",
"data": {
"regionIds": [1, 2],
"deviceIds": [1, 2],
"businessIds": [1, 2]
}
}根据查询参数,返回单个或者多个设备的实时告警。此接口不分页,一次查询全部实时告警。
请求参数:
| 参数 | 数据类型 | 示例 | 必填 | 描述 |
|---|---|---|---|---|
| regionIds | 整型 List | [1, 2] | 否 | 区域 ID 集合,可以单个 |
| deviceIds | 整型 List | [1, 2] | 否 | 设备 ID 集合,可以单个 |
| businessIds | 整型 List | [1, 2] | 否 | 行业 ID 集合,可以单个 |
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryRealtimeAlarms",
"data": {
"code": 200,
"message": "success",
"data": [
{
"alarmId": 456,
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"meteId": "80015551",
"meteName": "压力过低",
"level": 1,
"value": "155",
"sValue": "155",
"alarmTime": "2025-11-27 16:00:00"
}
],
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| alarmId | Long | 15454521 | 告警 ID,告警恢复时以此 ID 为主键 |
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| meteId | String | 1545451 | 告警量 ID |
| meteName | String | 温度过低 | 告警量名称 |
| level | Integer | 1 | 告警等级 1 2 3 4 |
| value | String | 22.5 | 实时值 |
| sValue | String | 22.5 | 翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值 |
| alarmTime | String | 2025-11-27 16:00:00 | 告警时间 |
3.8 查询单个设备历史告警
历史告警较多,所以仅限单个设备查询历史告警。
方法名(method): queryDeviceHistoryAlarms
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceHistoryAlarms",
"data": {
"deviceId": 1,
"businessId": 1,
"page": 1,
"size": 10
}
}请求参数:
| 参数 | 数据类型 | 示例 | 必填 | 描述 |
|---|---|---|---|---|
| deviceId | Long | 1 | 否 | 设备 ID |
| businessId | Long | 1 | 否 | 行业 ID,行业 ID 和设备 ID 必填其一 |
| page | Integer | 1 | 是 | 分页参数 |
| size | Integer | 10 | 是 | 分页参数 |
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryDeviceHistoryAlarms",
"data": {
"code": 200,
"message": "success",
"data": [
{
"alarmId": 456,
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"meteId": "80015551",
"meteName": "压力过低",
"level": 1,
"value": "155",
"sValue": "155",
"alarmTime": "2025-11-27 16:00:00",
"state": "END",
"closeTime": "2025-11-27 18:00:00"
},
{
"alarmId": 457,
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"meteId": "80015551",
"meteName": "压力过低",
"level": 1,
"value": "155",
"sValue": "155",
"alarmTime": "2025-11-27 16:00:00",
"state": "BEGIN",
"closeTime": ""
}
],
"timestamp": 1732694400000
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| alarmId | Long | 15454521 | 告警 ID,告警恢复时以此 ID 为主键 |
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| meteId | String | 1545451 | 告警量 ID |
| meteName | String | 温度过低 | 告警量名称 |
| level | Integer | 1 | 告警等级 1 2 3 4 |
| value | String | 22.5 | 实时值 |
| sValue | String | 22.5 | 翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值 |
| alarmTime | String | 2025-11-27 16:00:00 | 告警时间 |
| state | String | BEGIN | BEGIN 是告警中,END 是已关闭 |
| closeTime | String | 2025-11-27 18:00:00 | 恢复时间,如果是 END 才会有 closeTime |
3.9 查询产品列表
查看产品列表,产品包含物模型。
方法名(method): queryProductList
请求示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryProductList",
"data": {}
}请求参数: 无
响应示例:
json
{
"messageId": "uuid-1234-5678-abcd",
"appKey": "ABC123456",
"method": "queryProductList",
"data": {
"code": 200,
"message": "success",
"timestamp": 1764749697528,
"data": [
{
"productId": 744000000001000,
"productName": "门磁",
"onlinePeriod": 1440,
"thingModel": [
{
"meteId": "1",
"meteName": "门磁状态",
"unit": "",
"dataType": 3,
"meteType": 0,
"enumValues": [
{ "name": "门磁关门", "value": "0" },
{ "name": "门磁打开", "value": "1" }
],
"level": 0,
"decimalPoint": 1
},
{
"meteId": "2",
"meteName": "电池电压",
"unit": "",
"dataType": 2,
"meteType": 0,
"level": 0,
"decimalPoint": 1
}
]
}
]
}
}响应参数:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| productId | Long | 744000000001000 | 产品 ID |
| productName | String | 门磁 | 产品名称 |
| onlinePeriod | Integer | 1440 | 在线周期(分钟) |
| thingModel | List | 物模型列表 | |
| ├─ meteId | String | 1 | 量 ID |
| ├─ meteName | String | 门磁状态 | 量名称 |
| ├─ unit | String | ℃ | 单位 |
| ├─ dataType | Integer | 3 | 数据类型:0-字符串,1-整型,2-浮点,3-枚举 |
| ├─ meteType | Integer | 0 | 量类型:0-采集量,1-告警量,2-控制量,3-配置量,4-阈值量 |
| ├─ level | Integer | 1 | 告警等级 1 2 3 4 |
| ├─ decimalPoint | Integer | 2 | 小数点位数 1-4 位 |
| └─ enumValues | List | 枚举值定义 |