Skip to content

10. 传感器管理 ​

10.0 快速上手:10 分钟接入第一个传感器 ​

你有一台「空压机-A01」需要实时采集温度和振动数据。以下步骤带你完成传感器登记 → 数据接入 → 实时监控 → 报警配置的完整链路。

Step 1:登记传感器 ​

进入「传感器管理」页面 → 点击「新增传感器」→ 填写传感器ID SENSOR-001、名称 压缩机温度传感器、关联设备 EQ-COM-001、类型 温度 → 设置正常范围 20-60℃、预警上限 75℃、报警上限 85℃ → 保存。 → 详见 §10.3

Step 2:配置 MQTT 数据上报 ​

在 IoT 设备端配置 MQTT Broker 连接信息,主题格式:sensor/{tenant_id}/{sensor_id}/{metric}。例如 sensor/TENANT-DEFAULT/SENSOR-001/temperature,上报 JSON 格式数据。 → 详见 §10.3.4

Step 3:打开实时监控 ​

进入「传感器实时监控」页面 → 点击「连接」按钮建立 WebSocket → 在传感器列表中选择已登记的传感器 → 点击「订阅」→ 实时数据卡片和趋势曲线开始更新。 → 详见 §10.4

Step 4:配置报警规则 ​

进入「传感器报警管理」页面 → 点击「规则管理」→ 点击「新建规则」→ 命名 压缩机温度过高 → 关联传感器 SENSOR-001 → 条件类型 threshold(阈值触发)→ 配置报警级别 warning → 勾选「自动创建工单」→ 保存。 → 详见 §10.5

Step 5:使用模拟器测试(无真实设备时) ​

进入「传感器模拟器」页面 → 点击「连接MQTT」→ 点击「新增传感器」→ 模式选择 auto → 配置模拟参数(基准值、波动范围、间隔、趋势等)→ 保存后传感器自动开始按配置间隔发送数据 → 切换到实时监控页面查看模拟数据。 → 详见 §10.6

💡 完成以上步骤后,你已完成「登记 → 接入 → 监控 → 报警 → 模拟」的完整传感器管理链路。实时数据通过 MQTT 协议上报,经 WebSocket 推送到前端,报警规则触发后可自动生成工单。


10.1 功能概述 ​

本章介绍「传感器管理」菜单组下的四个子模块(另含「设备健康评分」,入口在设备详情页)。传感器管理模块是设备运维系统与物理设备连接的桥梁,覆盖从传感器配置、数据采集、实时监控到报警管理的全流程:

模块定位核心功能
传感器管理传感器配置与生命周期管理传感器登记/编辑/删除、阈值配置、多协议支持(MQTT/HTTP/Modbus)、按设备/类型/状态筛选、批量导入
传感器实时监控实时数据可视化WebSocket 实时连接、传感器卡片(实时值/状态/趋势)、ECharts 趋势曲线、多传感器同时监控、报警实时弹窗
传感器报警管理报警规则与事件管理报警规则 CRUD、四种条件类型(阈值/变化率/持续时间/组合)、报警级别(info/warning/critical/urgent)、报警确认/解决、自动创建工单、通知渠道配置
传感器模拟器无设备时的测试工具MQTT 模拟器连接管理、模拟传感器配置(基准值/波动/趋势/噪声/异常概率)、自动/手动/场景三种模式、统计仪表板
设备健康评分基于传感器数据的设备健康评估四维度综合评分(传感器数据 40% + 故障率 30% + 维护合规性 20% + MTBF 10%)、健康等级判定、风险等级判定、维护建议生成

10.2 页面入口 ​

  • PC端:左侧菜单「传感器管理」→ 四个子菜单(需要对应权限)。「设备健康评分」入口在设备详情页,非独立菜单项
  • PC端:设备详情页 → 可查看设备健康评分(详见 §10.7)
  • 移动端:传感器报警推送通知 → 点击查看详情弹窗 → 支持确认/解决

10.3 PC端 - 传感器管理 ​

10.3.1 页面布局 ​

传感器管理页面是传感器配置的主入口,采用工具栏 + 表格布局:

  1. 顶部标题栏:页面标题「📡 传感器管理」+ 操作按钮组(刷新、新增传感器、批量导入)

  2. 筛选工具栏:

    • 设备ID(文本输入)
    • 传感器类型(下拉选择:温度/振动/压力/电流/电压)
    • 状态(下拉选择:正常/预警/报警/离线)
    • 启用状态(下拉选择:全部/启用/禁用)
    • 搜索按钮、重置按钮
  3. 传感器列表表格:

    • 传感器ID、名称、设备ID、类型、单位、最新值、状态(normal=绿色/warning=橙色/alert=红色/offline=灰色)、启用状态(显示 ✓ 启用 / ✗ 禁用 文本标记)、最后采集时间、操作按钮(查看/编辑/删除)

💡 「传感器类型」筛选下拉仅包含 5 项:温度/振动/压力/电流/电压;新增/编辑弹窗的类型枚举为 7 项(详见 §10.3.2),两处范围不同。

  1. 分页:上一页/下一页按钮 + 页码显示 + 总记录数

PC端传感器管理-主页面

10.3.2 新增传感器 ​

点击「新增传感器」按钮,打开新增弹窗,包含以下字段:

字段说明必填
传感器ID唯一标识,如 SENSOR-001。需由调用方提供(新增 API 不会自动生成);批量导入时若 CSV 未提供 sensor_id,系统会自动生成 20 位去分隔符的 UUID 片段✅
传感器名称如:主轴温度传感器✅
设备ID关联的设备ID,如 EQ-001✅
传感器类型temperature(温度)/ vibration(振动)/ pressure(压力)/ current(电流)/ voltage(电压)/ humidity(湿度)/ other(其他)共 7 项✅
单位如:℃、Hz、MPa、A、V(自由文本)❌
协议MQTT / HTTP / Modbus❌(默认 MQTT)
MQTT主题如:sensor/TENANT-DEFAULT/SENSOR-001/temperature❌
采集间隔秒,默认 60❌
正常范围最小值 ~ 最大值(6 个独立字段:normal_min/max、warning_min/max、alert_min/max)❌
预警范围最小值 ~ 最大值❌
报警范围最小值 ~ 最大值❌
启用传感器复选框,默认勾选❌

阈值关系(推荐配置,非系统强制校验):正常范围(内)→ 预警范围(中间地带)→ 报警范围(外)。例如温度:正常 20-60℃ → 预警 60-75℃ → 报警 >75℃。

⚠️ 三层阈值是 6 个独立数值字段,后端 不会强制校验 alert > warning > normal 的单调关系,需要运维人员自行保证配置合理。

⚠️ 协议支持现状:当前版本仅 MQTT 协议已实现完整的数据接收服务(mqtt_service_multi_tenant.py)。HTTP / Modbus 选项在数据库中可存储,但尚未提供对应的数据接收端,选择后不会接收任何数据。

PC端传感器管理-新增弹窗

10.3.3 编辑传感器 ​

点击表格行操作列的「编辑」,打开编辑弹窗。编辑弹窗与新增弹窗内容相同,但传感器ID字段变为只读状态。

编辑时注意:如果修改设备ID,系统会校验新设备是否存在;如果设备不存在,保存将失败并提示。

10.3.4 MQTT 数据上报格式 ​

传感器登记后,IoT 设备端需配置 MQTT Broker 连接并按以下主题和格式上报数据:

MQTT 主题规范(多租户架构):

sensor/{tenant_id}/{sensor_id}/{metric}

例如:sensor/TENANT-DEFAULT/SENSOR-001/temperature

数据上报 JSON 格式(最小字段集):

json
{
  "sensor_id": "SENSOR-001",
  "equipment_id": "EQ-COM-001",
  "value": 65.5,
  "timestamp": "2026-05-07T14:30:00Z",
  "metadata": {
    "battery": 85,
    "signal_strength": -45
  }
}

字段说明:

  • sensor_id / equipment_id / value / timestamp:核心字段,timestamp 建议带 UTC 后缀 Z。
  • metadata:设备端自定义元数据(电量、信号强度等),会被原样存入 TimescaleDB sensor_readings.metadata JSON 列。

⚠️ 避免使用 quality 作为顶层字段:后端 sensor_payload_service.py 将 quality 识别为良率指标(yield_rate)的别名,上报顶层 quality 会被视为良率值参与业务计算,而非"数据质量分"。若需要表达数据质量/信号质量,请放入 metadata.quality 中。

⚠️ raw_data 顶层字段会被静默丢弃:当前 MQTT / payload 服务未解析顶层 raw_data。附加原始信息请使用 metadata 字段承载。

💡 系统支持多指标 payload 展开:当上报的 payload 包含多个指标时(如 {"temperature": 65.5, "vibration": 2.3}),系统会自动拆分为多条传感器记录。

10.3.5 批量导入 ​

后端已提供 CSV 批量导入能力(_import_sensors),CSV 列支持:sensor_id、name、equipment_code、sensor_type、unit、protocol、topic、collect_interval、normal_min/max、warning_min/max、alert_min/max、is_active;其中 name、equipment_code、sensor_type 为必填,sensor_id 不提供时自动生成。导入完成后返回新增/更新/跳过/失败的数量及行级错误明细。

⚠️ 前端按钮当前未绑定事件:传感器管理页面顶部「批量导入」按钮在当前版本尚未接入前端交互,点击无反应。如需执行批量导入,请通过 /api/v1/import/sensors 接口或后台批量导入入口调用。前端交互将在后续版本补齐。

PC端传感器管理-批量导入


10.4 PC端 - 传感器实时监控 ​

10.4.1 页面布局 ​

传感器实时监控页面是数据可视化的核心页面,采用卡片 + 曲线图 + 报警列表的组合布局:

  1. 顶部状态栏:
    • WebSocket 连接状态指示灯(绿色=已连接 / 红色=断开 / 灰色=未连接)
    • 在线传感器数、当前报警数、最后更新时间
    • 连接/断开按钮

💡 「在线传感器数」的语义:该数值来自前端本地缓存 sensorDataCache,表示当前页面已接收到 WebSocket 推送数据的传感器数量,不是数据库中 status != offline 的传感器数。刚打开页面或刚连接 WS 时显示为 0,需要等到有数据推送后才会逐步累加。

  1. 左侧传感器选择区:

    • 传感器多选下拉框(搜索过滤)
    • 订阅 / 取消订阅 / 清空图表按钮
    • 自动滚动开关
  2. 中间实时卡片区(传感器卡片网格):

    • 每张卡片显示:传感器名称、当前值(大字号)、单位、状态彩色指示灯、状态标签
    • 状态背景色随传感器状态动态变化(正常=绿色调 / 预警=橙色调 / 报警=红色调 / 离线=灰色调)
    • 卡片数据由 WebSocket 实时推送更新
  3. 底部趋势曲线区:

    • ECharts 渲染的实时趋势折线图
    • 多传感器同时显示(不同颜色区分)
    • X轴=时间,Y轴=传感器值
    • 支持缩放、hover 查看具体数值
  4. 右侧报警列表区:

    • 最新报警事件列表
    • 显示报警级别标签、传感器名、报警消息、触发时间
    • 点击可查看报警详情

PC端传感器实时监控-主页面

10.4.2 WebSocket 连接 ​

点击「连接」按钮,前端通过 WebSocket 建立与服务器的实时连接。连接成功后状态指示灯变为绿色,「在线传感器数」和「最后更新时间」开始更新。

WebSocket 连接地址:ws://<host>:8765?tenant_id=<租户ID>

订阅消息格式:

json
{
  "action": "subscribe",
  "sensor_ids": ["SENSOR-001", "SENSOR-002"]
}

收到数据推送格式:

json
{
  "type": "sensor_data",
  "data": {
    "sensor_id": "SENSOR-001",
    "equipment_id": "EQ-COM-001",
    "value": 65.5,
    "timestamp": "2026-05-07T14:30:00Z",
    "alert_level": "normal"
  },
  "push_time": "2026-05-07T14:30:00.123456Z"
}

💡 alert_level 取值为 normal / warning / critical / urgent,表示本条数据对应的报警级别(而非传感器表的 status 字段)。push_time 为服务端推送时间戳(UTC),可用于判断数据延迟。

10.4.3 多传感器同时监控 ​

在传感器下拉框中可多选传感器,点击「订阅」后:

  • 所有已订阅传感器的卡片同时显示在卡片区域
  • 趋势曲线图中各传感器用不同颜色绘制,legend 可点击切换显示
  • 支持随时取消订阅某个传感器

PC端传感器实时监控-多传感器


10.5 PC端 - 传感器报警管理 ​

10.5.1 页面布局 ​

传感器报警管理页面用于报警事件的查看、处理和报警规则管理:

  1. 顶部统计栏(3 个指标):
    • 总报警数、待处理(open)、已确认(acknowledged)

💡 当前页面上方仅展示 3 个行内统计指标,「已解决数」和「今日新增」需结合下方状态分布图/趋势图查看。

  1. 工具栏:

    • 刷新按钮、规则管理按钮(打开规则管理弹窗)
  2. 筛选栏(6 项):

    • 状态(下拉)、报警级别(下拉)、设备ID(文本输入)、传感器ID(文本输入)、开始日期、结束日期
    • 应用筛选 / 重置按钮
  3. 报警列表表格:

    • 报警ID、传感器名称、报警级别(彩色标签)、报警消息、触发值/阈值、状态、触发时间、操作(确认/解决/查看详情)
  4. 底部图表区(三图表):

    • 报警趋势图(ECharts 折线/柱状图 — 按时间统计报警数量)
    • 报警级别分布图(ECharts 饼图 — info/warning/critical/urgent 占比)
    • 报警状态分布图(ECharts 饼图 — open/acknowledged/resolved/closed 占比)
  5. 分页

PC端传感器报警管理-主页面

10.5.2 报警处理流程 ​

报警事件有四种状态,通过操作按钮流转:

当前状态可用操作操作后状态说明
open(打开)确认 / 解决acknowledged / resolved可直接确认也可直接解决;不支持从 open 直接关闭
acknowledged(已确认)解决 / 关闭resolved / closed填写解决说明,可选关联工单;或直接关闭归档(可跳过 resolved)
resolved(已解决)关闭closed归档事件
closed(已关闭)查看详情—历史记录只读

确认报警:点击「确认」按钮,弹出输入框可 选填确认说明(notes,可省略),提交后系统会记录确认人、确认时间和确认说明,状态变为 acknowledged。

解决报警:点击「解决」按钮,弹出填写解决说明弹窗(必填),可选关联工单号。提交后状态变为 resolved。支持从 open 或 acknowledged 状态直接解决。

PC端传感器报警管理-确认弹窗PC端传感器报警管理-解决弹窗

10.5.3 报警规则管理 ​

点击「规则管理」按钮,打开规则管理弹窗,包含:

  1. 规则列表表格:

    • 规则名称、关联传感器、条件类型(阈值/变化率/持续时间/组合 — 带颜色标签)、报警级别、自动创建工单(是/否)、启用开关、操作(编辑/删除)
  2. 工具栏:新建规则、刷新按钮

PC端传感器报警管理-规则管理

10.5.4 新建/编辑报警规则 ​

点击「新建规则」或「编辑」按钮,打开弹窗:

字段说明必填
规则名称如:压缩机温度过高✅
关联传感器下拉选择传感器❌(不选则为全局规则)
关联设备设备ID❌(不选则为全局规则)
条件类型threshold(阈值)/ change_rate(变化率)/ duration(持续时间)/ composite(组合条件)✅(默认 threshold)
条件配置(JSON)根据条件类型不同,配置阈值、变化率、持续时间等参数✅
报警级别info / warning / critical / urgent✅(默认 warning)
自动创建工单开关❌(默认否)
工单优先级low / medium / high / urgent❌(当自动创建工单开启时生效)
通知渠道多选:站内通知/邮件/短信/企业微信❌
通知用户多选用户ID列表❌
冷却期秒,默认 3600(同一条件在此时间内不重复触发)❌
启用开关❌(默认启用)

条件类型说明:

条件类型说明配置示例
threshold阈值触发简单区间格式:{"min": 85, "max": 95};或操作符格式:{"field": "value", "operator": ">", "threshold": 80}
change_rate变化率触发{"field": "value", "time_window": 300, "rate_threshold": 0.1}
duration持续时间触发{"field": "value", "operator": ">", "threshold": 70, "duration": 300}
composite组合条件{"logic": "AND", "conditions": [...]}

💡 通知渠道英文 key:notification_channels 字段为 JSON 列表,常用取值为 in_app(站内通知)/ email(邮件)/ sms(短信)/ wecom(企业微信)。notification_users 为用户 ID 字符串数组。

PC端传感器报警管理-新建规则弹窗

10.5.5 关联工单 ​

开启「自动创建工单」后,当报警触发时系统会自动创建一张工单并关联到该报警记录。在报警详情中可点击工单号跳转到工单详情页面。手动解决报警时也可以选择关联已有工单。


10.6 PC端 - 传感器模拟器 ​

10.6.1 页面布局 ​

传感器模拟器用于在无真实IoT设备时模拟传感器数据上报,是开发测试和演示的重要工具:

  1. 顶部连接状态区:

    • MQTT 连接状态指示灯
    • 连接/断开 MQTT 按钮
    • 重新加载配置按钮
  2. 统计卡片区:

    • 活跃传感器数 / 总传感器数
    • 发送总量 / 成功数 / 失败数
    • 成功率百分比
    • 发送历史列表(最近N条)
  3. 传感器配置表格:

    • 传感器ID、名称、设备ID、类型、单位、模拟模式(自动/手动)、运行状态指示灯、最新发送值、操作(编辑/删除)
    • 新增传感器按钮
  4. 手动发送面板(选中手动模式的传感器时显示):

    • 当前选中传感器信息
    • 数值输入框 + 发送按钮

PC端传感器模拟器-主页面

10.6.2 MQTT 连接管理 ​

点击「连接MQTT」按钮,系统使用配置的 Broker 地址(默认 localhost:11883)建立连接。连接成功后状态指示灯变绿,所有启用的自动模式传感器开始按配置间隔发送数据。

MQTT 连接参数(可在连接时配置,也可不填直接使用默认值):

参数默认值说明
Broker地址localhostMQTT Broker 主机
端口11883MQTT Broker 端口(非标准 1883)
用户名—认证用户名(可选)
密码—认证密码(可选)

💡 端口默认为 11883(在 .env 的 MQTT_BROKER_PORT 中配置),非 MQTT 标准端口 1883。连接 IoT 设备或外部客户端时请确认端口一致。

10.6.3 新增/编辑模拟传感器 ​

点击「新增传感器」按钮,打开配置弹窗:

字段说明必填
传感器ID唯一标识,如 SIM-TEMP-001✅
传感器名称如:模拟温度传感器✅
设备ID关联设备ID✅
传感器类型temperature(温度)/ vibration(振动)/ pressure(压力)/ current(电流)/ voltage(电压)/ speed(转速)/ flow(流量)共 7 项✅
单位℃、Hz、MPa、A、V❌
模拟模式auto(自动)/ manual(手动)✅(默认 auto)
基准值数据围绕此值波动✅(默认 25)
波动范围±范围✅(默认 5)
发送间隔秒✅(默认 10)
趋势stable(平稳)/ rising(上升)/ falling(下降)/ random(随机)✅(默认 stable)
噪声水平0-1,叠加的随机噪声比例❌(默认 0.1)
异常概率0-1,产生异常值的概率❌(默认 0.05)
正常范围最小值 ~ 最大值❌
预警范围最小值 ~ 最大值❌
报警范围最小值 ~ 最大值❌
启用开关❌(默认启用)

PC端传感器模拟器-新增弹窗

10.6.4 两种模拟模式 ​

模式行为适用场景
auto(自动)按配置的间隔、基准值、波动、趋势自动生成并发送数据日常演示、功能测试
manual(手动)手动输入数值,点击发送按钮发送测试特定阈值触发报警

手动模式:在传感器列表中选中手动模式的传感器 → 在「手动发送面板」输入数值 → 点击「发送」。可逐条发送不同的值来测试报警规则触发。

⚠️ scenario 场景模式暂不对前端开放:后端模拟器引擎(scenario_engine.py)已实现场景脚本能力,SensorCreate.mode 的数据库枚举也支持 auto/manual/scenario,但 PC 端新增/编辑弹窗当前 固定传入 mode: 'auto',未暴露 scenario 选项。若需要用场景脚本驱动演示,请直接调用 /api/v1/simulator/sensors 接口或通过配置文件注入。

PC端传感器模拟器-手动发送

10.6.5 配置持久化 ​

模拟传感器配置保存在 JSON 文件中,系统重启后自动加载。点击「重新加载配置」可手动重新加载文件(适用于外部修改配置文件后刷新)。


10.7 设备健康评分 ​

10.7.1 评分模型 ​

设备健康评分是基于传感器数据、故障历史、维护记录等数据综合计算得出的设备健康度指标。评分模型采用加权计算:

维度权重数据来源说明
传感器数据得分40%传感器实时数据传感器值偏离正常范围的程度;所有传感器综合评估
故障率得分30%历史工单设备历史故障频率和严重程度
维护合规性得分20%维护计划执行记录维护计划是否按时执行、执行质量
MTBF 得分10%故障间隔时间平均无故障运行时间的标准化评分

健康等级(对应后端枚举 excellent / good / fair / poor / critical):

📋 评分维度与数据库字段对照:performance_score = 传感器数据得分 / reliability_score = 故障率得分 / maintenance_score = 维护合规性得分 / sensor_score = 传感器数据得分(与 performance_score 同值)

评分范围健康等级(枚举)中文标签标签颜色
90-100excellent优秀🟢 绿色
75-89good良好🟡 黄色
60-74fair一般🟠 橙色
40-59poor较差🔴 红色
0-39critical严重(后端返回 critical)⚫ 灰色

风险等级:后端综合总评分、传感器得分、故障率得分三个维度联合判定,输出 low / medium / high / critical 四个等级,对应中文“低风险 / 中风险 / 高风险 / 危急”。

10.7.2 查看设备健康评分 ​

在设备详情页面可查看当前设备的健康评分、各维度得分明细、健康等级、风险等级和维护建议。评分可通过定时任务定期刷新。

PC端设备健康评分


10.8 移动端操作 ​

10.8.1 传感器报警通知 ​

移动端接收传感器报警推送通知,点击通知弹出「传感器报警详情」弹窗,展示报警的完整信息(报警级别、设备/传感器、触发值/阈值、报警时间、确认/解决状态等),支持在移动端直接确认或解决报警。

移动端传感器报警详情

10.8.2 工单中的传感器数据 ​

在工单详情页中,如果工单关联了设备且该设备有传感器,会在工单信息区显示设备的传感器最新读数,帮助执行人员了解设备当前运行状态。


10.9 常见问题 ​

Q:传感器状态一直显示「离线」怎么办? A:检查以下几点:① IoT 设备端 MQTT Broker 连接是否正常;② MQTT 主题格式是否与传感器配置中的 topic 一致;③ MQTT 服务(mqtt_service)是否正常运行;④ 检查日志文件:多租户 MQTT 服务默认输出到 log/mqtt_service.log,如同时使用旧版单租户 MQTT 模块,日志位于 _log/mqtt_service.log;两个文件会同时存在,请确认实际运行的服务对应的日志文件。

Q:MQTT Broker 地址在哪里配置? A:MQTT Broker 地址在 .env 环境变量中配置,关键变量包括 MQTT_BROKER_HOST、MQTT_BROKER_PORT、MQTT_USERNAME、MQTT_PASSWORD。

Q:阈值配置中的「预警」和「报警」有什么区别? A:预警(warning)是一种较轻的提醒,表示传感器值已偏离正常范围但尚未达到危险水平;报警(alert)是较严重的警告,表示传感器值已达到或超过危险阈值。管理员可以为预警和报警配置不同的通知渠道和处理流程。

Q:报警规则中的冷却期是什么? A:冷却期是指同一报警规则在触发一次后,在此时间段内不会再次触发。例如冷却期设置为 3600 秒,则同一传感器同一规则在一小时内仅触发一次报警,避免重复报警刷屏。

Q:如何让报警自动创建工单? A:在报警规则中开启「自动创建工单」开关,设置工单优先级。当规则触发报警时,系统自动创建一张关联的工单。工单的设备和优先级从规则配置继承。

Q:没有真实 IoT 设备该如何测试传感器功能? A:使用「传感器模拟器」模块。先连接 MQTT Broker,然后新增模拟传感器(模式选 auto),配置好基准值/波动/间隔后保存,传感器即自动按配置间隔发送模拟数据。切换到「传感器实时监控」页面可直观查看实时数据流。

Q:支持哪些数据接入协议? A:系统数据模型保留了三种协议的配置枚举,但当前版本 只有 MQTT 已实现数据接收服务:① MQTT(已支持、推荐) — 最常用的 IoT 协议,配合本系统 mqtt_service_multi_tenant.py 服务使用;② HTTP(计划中) — 数据模型支持,但尚未提供轮询/接收端;③ Modbus(计划中) — 数据模型支持,但尚未提供采集端。选择 HTTP / Modbus 后不会有数据自动写入。

Q:设备健康评分多久更新一次? A:设备健康评分通过定时任务定期计算,默认频率可在系统配置中调整。也可以通过 API 手动触发单台设备的健康评分重新计算。

Q:传感器数据存储在哪里?历史数据保留多久? A:传感器数据采用 MySQL + TimescaleDB 双写机制:MySQL 中 sensor_data_records 表存储原始记录,TimescaleDB(时序数据库)的 sensor_readings 超表存储持久化指标数据并提供 5min / hourly / daily 三个连续聚合视图。当前版本并未内置自动的数据保留/压缩策略,默认不会自动清理历史数据。如需启用 TimescaleDB 的自动压缩或保留策略,需由 DBA 在数据库层面使用 add_retention_policy / add_compression_policy 手工配置。


10.10 相关权限 ​

传感器与IoT模块涉及的权限列表:

权限中文名称说明
sensor:view查看传感器传感器管理菜单入口权限,查看传感器列表和详情;同时控制「传感器模拟器」子菜单可见性
sensor:create创建传感器新增传感器配置
sensor:update更新传感器编辑传感器信息(名称、阈值、采集间隔等)
sensor:delete删除传感器删除传感器配置
sensor:data:view查看传感器数据查看传感器实时监控页面、历史数据和趋势曲线
sensor:alert:manage管理传感器告警传感器报警管理菜单入口,管理报警规则和报警事件

💡 菜单可见性说明:前端「传感器与 IoT」一级菜单的可见条件是 sensor:view 或 sensor:data:view 或 sensor:alert:manage 任一成立(OR 关系),因此只要拥有其中任一个子菜单权限即可看到入口。三个子菜单的可见性分别控制:「传感器管理」和「传感器模拟器」都使用 sensor:view(两者共用同一权限,不分开);「传感器实时监控」 使用 sensor:data:view;「传感器报警管理」 使用 sensor:alert:manage。

角色默认权限分配:

角色传感器与IoT相关权限
超级管理员全部权限(含 sensor:view / create / update / delete / data:view / alert:manage)
租户管理员全部权限(含 sensor:view / create / update / delete / data:view / alert:manage)
设备主管sensor:view / create / update / data:view / alert:manage(无 delete)
技术员sensor:view / data:view(只读查看)
操作员sensor:view / data:view(只读查看)
仓库管理员无传感器相关权限
只读用户sensor:view / data:view(只读查看)

内容与产品内嵌操作手册同源同步,不做双向编辑