You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
leida_simi/设备状态查询接口文档.md

382 lines
7.6 KiB
Markdown

2 months ago
# 设备状态查询接口文档
## 基本信息
| 项目 | 说明 |
|------|------|
| 协议 | HTTP/1.1 |
| 方法 | GET |
| Content-Type | application/json; charset=UTF-8 |
---
## 1. 设备状态查询
### 接口地址
```
GET /api/v1/device/status
```
查询所有传感器的实时状态数据。
---
#### 示例
```
GET /api/v1/device/status HTTP/1.1
```
---
### 响应参数
#### 公共字段
| 字段 | 类型 | 说明 |
|------|------|------|
| code | int | 状态码,200=成功,400=失败 |
| message | String | 状态描述,成功时返回 `success`,失败时返回错误信息 |
| data | Array | 传感器数组,每个元素为一个传感器对象;失败时为 `null` |
#### data 传感器对象
| 字段 | 类型 | 说明 |
|------|------|------|
| name | String | 传感器名称 |
| code | String | 传感器编码 |
| data | Array | 该传感器的测量数据数组 |
#### data 测量数据对象
| 字段 | 类型 | 说明 |
|------|------|------|
| name | String | 测量项名称,如"温度"、"湿度" |
| value | float | 测量值 |
| unit | String | 单位,如"℃"、"%"、"°" |
---
---
### 响应示例
#### 成功响应(200)
```json
{
"code": 200,
"message": "success",
"data": [
{
"name": "东侧温湿度传感器",
"code": "ws_01",
"data": [
{
"unit": "℃",
"value": 25.6,
"name": "温度"
},
{
"unit": "%",
"value": 68,
"name": "湿度"
}
]
},
{
"name": "南侧倾斜传感器",
"code": "qx_01",
"data": [
{
"unit": "°",
"value": 3.0,
"name": "X轴倾斜"
},
{
"unit": "%",
"value": -0.8,
"name": "Y轴倾斜"
}
]
},
{
"name": "北侧水浸传感器",
"code": "sj_01",
"data": [
{
"unit": "",
"value": 0,
"name": "漏水状态"
}
]
},
{
"name": "北侧烟感传感器",
"code": "yw_01",
"data": [
{
"unit": "",
"value": 0,
"name": "烟雾浓度"
}
]
}
]
}
```
#### 失败响应(400)
```json
{
"code": 400,
"message": "Error",
"data": null
}
```
---
## 2. 设备报警查询
### 接口地址
```
GET /api/v1/device/alarm
```
查询当前所有设备的报警信息。
#### 示例
```
GET /api/v1/device/alarm HTTP/1.1
```
---
### 响应参数
#### 公共字段
| 字段 | 类型 | 说明 |
|------|------|------|
| code | int | 状态码,200=成功,400=失败 |
| message | String | 状态描述 |
| data | Array | 报警信息数组;无报警时为空数组 `[]`;失败时为 `null` |
#### data 报警对象
| 字段 | 类型 | 说明 |
|------|------|------|
| alarm_id | String | 报警唯一标识 |
| sensor_code | String | 触发报警的传感器编码 |
| sensor_name | String | 触发报警的传感器名称 |
| alarm_level | String | 报警等级:1=警告,2=报警,3=严重报警 |
| alarm_level_name | String | 报警等级:1=警告,2=报警,3=严重报警 |
| alarm_value | float | 触发报警时的传感器数值 |
| alarm_threshold | float | 报警阈值 |
| alarm_time | String | 报警触发时间,yyyy-MM-dd HH:mm:ss 格式 |
| description | String | 报警描述 |
| stream | String | 视频流 |
| pic | String | 报警图片 |
---
---
### 响应示例
#### 有报警(200)
```json
{
"code": 200,
"message": "success",
"data": [
{
"alarm_id": "ALM_20260708_001",
"sensor_code": "sj_01",
"sensor_name": "北侧水浸传感器",
"alarm_level": 3,
"alarm_value": 1,
"alarm_threshold": 0,
"alarm_time": "2026-07-08 14:30:00",
"description": "北侧区域检测到漏水,请立即处理",
"stream": "rtsp://121.43.244.209:554/live/sj_01"
},
{
"alarm_id": "ALM_20260708_002",
"sensor_code": "ws_01",
"sensor_name": "东侧温湿度传感器",
"alarm_level": 2,
"alarm_value": 42.5,
"alarm_threshold": 40,
"alarm_time": "2026-07-08 15:00:00",
"description": "东侧温度超过阈值,当前温度 42.5℃",
"stream": "rtsp://121.43.244.209:554/live/ws_01"
}
]
}
```
#### 无报警(200)
```json
{
"code": 200,
"message": "success",
"data": []
}
```
#### 失败响应(400)
```json
{
"code": 400,
"message": "Error",
"data": null
}
```
---
## 注意事项
1. 设备状态接口中 `data` 数组的传感器数量不固定,取决于设备实际接入的传感器类型
2. 报警接口中 `data` 为空数组 `[]` 表示当前无报警
3. 报警等级 `1=警告`、`2=报警`、`3=严重报警`
4. 报警时间格式统一为 `yyyy-MM-dd HH:mm:ss`
5. `stream` 字段为关联的视频流 RTSP 地址,用于调取报警时刻的监控画面
---
## 3. 设备状态判定查询
### 接口地址
```
GET /api/v1/device/judge
```
查询所有传感器实时数据及报警判定信息(含阈值比较结果)。
#### 示例
```
GET /api/v1/device/judge HTTP/1.1
```
---
### 响应参数
#### 公共字段
| 字段 | 类型 | 说明 |
|------|------|------|
| code | int | 状态码,200=成功,400=失败 |
| message | String | 状态描述,成功时返回 `success`,失败时返回错误信息 |
| data | Array | 传感器数组,每个元素为一个传感器对象;失败时为 `null` |
#### data 传感器对象
| 字段 | 类型 | 说明 |
|------|------|------|
| name | String | 传感器名称 |
| code | String | 传感器编码 |
| data | Array | 该传感器的测量判定数据数组 |
#### data 测量判定数据对象
| 字段 | 类型 | 说明 |
|------|------|------|
| type | String | 测量类型编码,可选值见下表 |
| value | float | 测量值 |
| determineType | String | 判定运算符,如 `">"`、`"<"`、`">="`、`"<="`、`"=="` |
| level | String | 报警等级,`1`=警告,`2`=报警,`3`=严重报警 |
#### type 枚举值
| key | name | type | unit | 适用传感器 |
|-----|------|------|------|-----------|
| `temperature` | 温度 | float | ℃ | 温湿度传感器 |
| `humidity` | 湿度 | float | % | 温湿度传感器 |
| `leak` | 水浸状态 | int | — | 水浸传感器 |
| `angle_x` | X轴倾角 | float | ° | 倾斜传感器 |
| `angle_y` | Y轴倾角 | float | ° | 倾斜传感器 |
| `angle_z` | Z轴倾角 | float | ° | 倾斜传感器 |
| `smoke_level` | 烟雾浓度 | float | ppm | 烟感传感器 |
| `status` | 当前状态 | int | — | 通用 |
| `intrusion` | 人员入侵 | string | — | AI分析 |
| `gather` | 人员聚集 | string | — | AI分析 |
---
### 响应示例
#### 成功响应(200)
```json
{
"code": 200,
"message": "success",
"data": [
{
"name": "东侧温湿度传感器",
"code": "ws_01",
"data": [
{
"type": "temperature",
"value": 25.6,
"determineType": ">",
"level": "1"
},
{
"type": "humidity",
"value": 68,
"determineType": ">",
"level": "1"
}
]
},
{
"name": "南侧倾斜传感器",
"code": "qx_01",
"data": [
{
"type": "angle_x",
"value": 25.6,
"determineType": ">",
"level": "1"
},
{
"type": "angle_y",
"value": -0.8,
"determineType": ">",
"level": "1"
}
]
}
]
}
```
#### 失败响应(400)
```json
{
"code": 400,
"message": "Error",
"data": null
}
```
---
> 版本: v2.0 | 更新: 2026-07-08