Appearance
因子管理
因子是设备的数据采集点或控制点。每个因子定义了如何读取传感器数据或控制执行器。
接口概览
| 方法 | 端点 | 描述 |
|---|---|---|
GET | /projects/{project_id}/devices/{device_id}/factors/ | 获取因子列表 |
GET | /projects/{project_id}/devices/{device_id}/factors/{id}/ | 获取因子详情 |
POST | /projects/{project_id}/devices/{device_id}/factors/ | 创建因子 |
PUT | /projects/{project_id}/devices/{device_id}/factors/{id}/ | 更新因子 |
DELETE | /projects/{project_id}/devices/{device_id}/factors/{id}/ | 删除因子 |
POST | .../factors/{id}/set-threshold/ | 设置阈值 |
GET | .../factors/{id}/current-data/ | 获取实时数据 |
因子对象
| 字段 | 类型 | 描述 |
|---|---|---|
id | integer | 因子 ID |
agri_id | string | 因子内部标识符 |
name | string | 因子名称 |
unit | integer | Modbus 从站地址 |
address | integer | 寄存器地址 |
data_index | integer | 数据索引 |
the_type | integer | 因子类型,参见因子类型 |
modbus_type | integer | Modbus 功能码 |
data_type | string | 数据类型 |
data_endian | string | 字节序 |
data_factor | float | 缩放系数 |
data_delta | float | 偏移量 |
min_value | float | 最小阈值 |
max_value | float | 最大阈值 |
enabled | boolean | 是否启用 |
获取因子列表
GET /api/v2/projects/{project_id}/devices/{device_id}/factors/响应示例
json
{
"success": true,
"data": [
{
"id": 5853,
"agri_id": "d-1000-qyjngeufmfqf-100-00",
"device_id": 17644,
"name": "Temperature",
"unit": 100,
"address": 0,
"the_type": 100,
"the_type_detail": {
"the_type": 100,
"name": "温度传感器",
"unit": "℃"
},
"data_endian": ">",
"data_type": "int16",
"data_index": 0,
"modbus_type": 3,
"data_factor": 0.1,
"data_delta": 0.0,
"min_value": null,
"max_value": null,
"enabled": true
}
],
"error": null
}bash
curl https://dl.yengear.com/api/v2/projects/proj_abc/devices/123/factors/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Organization-Slug: your-org-slug"python
response = requests.get(
f"{API_BASE}/projects/{project_id}/devices/{device_id}/factors/",
headers=headers # 包含 Authorization 和 X-Organization-Slug
)创建因子
POST /api/v2/projects/{project_id}/devices/{device_id}/factors/请求参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
name | string | 是 | 因子名称 |
unit | integer | 是 | Modbus 从站地址 |
address | integer | 是 | 寄存器地址 |
data_index | integer | 是 | 数据索引 |
the_type | integer | 是 | 因子类型 |
modbus_type | integer | 是 | Modbus 功能码 |
data_type | string | 是 | 数据类型 |
data_endian | string | 是 | 字节序 |
data_factor | float | 否 | 缩放系数,默认 1.0 |
data_delta | float | 否 | 偏移量,默认 0 |
enabled | boolean | 否 | 是否启用,默认 true |
请求示例
json
{
"name": "温度",
"unit": 1,
"address": 0,
"data_index": 0,
"the_type": 2001,
"modbus_type": 3,
"data_type": "int16",
"data_endian": ">",
"data_factor": 0.1
}成功返回 201 Created 和因子对象。
注意
只有支持自定义因子的设备才能创建因子。
更新因子
PUT /api/v2/projects/{project_id}/devices/{device_id}/factors/{id}/支持部分更新,只需提供要修改的字段。
json
{
"name": "室内温度",
"data_factor": 0.01
}删除因子
DELETE /api/v2/projects/{project_id}/devices/{device_id}/factors/{id}/成功返回 204 No Content。
设置阈值
为因子设置告警阈值。数据超出范围时触发告警。
POST /api/v2/projects/{project_id}/devices/{device_id}/factors/{id}/set-threshold/请求参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
min_value | float | 否 | 最小阈值 |
max_value | float | 否 | 最大阈值 |
json
{
"min_value": 10.0,
"max_value": 35.0
}提示
设置为 null 可清除阈值。
获取实时数据
GET /api/v2/projects/{project_id}/devices/{device_id}/factors/{id}/current-data/响应示例
json
{
"agri_id": "d-1000-abc123-1-00",
"value": 25.6,
"t": 1711008140
}相关文档
- 因子类型 - 系统支持的因子类型列表
- 因子控制 - 开关类因子的远程控制
- 因子数据 - 查询因子历史数据
- 基础数据 - Modbus 配置选项说明
- Access Token - 如何创建和管理访问令牌
