更新记录

1.0.0(2026-08-12)

v1.0.0

  • 告警看板:今日/未处理/已恢复统计、设备排行、最新告警
  • 告警管理:列表筛选分页、详情、标记已处理(含备注)
  • 规则配置:状态/阈值/故障码规则、多条件组合(且/或 + 区间上下限)、设备/分组绑定、防抖、离线阈值、启停
  • 推送渠道:UniPush/钉钉/企业微信/短信/邮件,新增/删除/启停/连通测试
  • 消息模板:自定义内容与占位符、规则级内容模板
  • 接收人:多渠道接收人、按项目分组定向推送
  • 统计报表:趋势、总数、CSV 导出
  • 告警分发引擎:规则匹配 → 模板渲染 → 多渠道推送(钉钉/企微/UniPush)→ 落库
  • 离线检测:定时触发器每分钟巡检心跳,超时自动判离线并推送
  • uni-id 登录鉴权:管理端接口需登录访问,设备侧上报免登录
  • 云端:iot-alert-server 云对象(真实落库)+ 6 张表 schema + uni-config-center 登录配置
  • 设备侧:心跳上报、告警上报(防抖去重)、恢复上报

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云
×

uni-app x(3.8.1)

Chrome Chrome插件版本 Safari Safari插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序 微信小程序插件版本
66 1.0.0 12.2 1.0.0 1.0.0 12 1.0.0 × 2.6.8 1.0.0

其他

多语言 暗黑模式 宽屏模式
× ×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


IoT 设备告警消息推送插件 · 管理端

一款面向 IoT 场景的设备告警管理与推送插件:云端 iot-alert-server 云对象负责数据存储与规则判断,配套 uni-app x 管理端页面,支持告警看板、告警列表/详情、规则配置(多条件组合)、推送渠道、消息模板、接收人、统计报表等完整能力。

功能特性

  • 告警看板:今日告警数、未处理数、已恢复数、设备告警排行、最新告警流
  • 告警管理:列表(状态筛选/分页)、详情、标记已处理(含备注)
  • 规则配置:离线/上线状态规则、阈值规则(且/或多条件组合、区间上下限)、故障码规则;支持绑定设备/分组、防抖间隔、启停开关
  • 推送渠道:UniPush / 钉钉 / 企业微信 / 短信 / 邮件,支持新增、删除、启停、连通性测试
  • 消息模板:自定义推送内容,支持 {deviceId} {deviceName} {status} {time} {project} {content} {level} 占位符
  • 接收人:按渠道配置接收人,支持按项目分组定向推送
  • 统计报表:近 7/30/90 天告警趋势、总数统计、CSV 导出

云端配套

本插件需要搭配 uniCloud 云对象 iot-alert-server 使用,插件包内已包含:

  • uniCloud/cloudfunctions/iot-alert-server/ — 云对象(含告警规则、设备心跳、告警上报/恢复、渠道/模板/接收人 CRUD、统计报表等 20+ 方法)
  • uniCloud/database/*.schema.json — 6 张数据表结构(iot_device / iot_alert_rule / iot_alert_log / iot_channel / iot_recipient / iot_template)

使用步骤

  1. 导入插件:将 uni_modules/iot-alert-admin 目录放入项目 uni_modules 下。HBuilderX 会自动将插件内 uniCloud/ 内容(云对象 + schema)以引用方式合并到项目根目录的 uniCloud-aliyun(或 uniCloud-tcb
  2. 关联服务空间:项目根目录 uniCloud-aliyun(或 uniCloud-tcb)右键 → 关联云服务空间
  3. 上传 schema:在项目根 uniCloud-aliyun/database 下选中 6 个 schema 文件 → 右键上传(或 uniCloud 控制台「数据库 → schema」上传)
  4. 上传云对象:项目根 uniCloud-aliyun/cloudfunctions 下选中 iot-alert-server → 右键上传部署(依赖 uni-id-commonuni-config-center 公共模块会自动一并部署) 4.1 配置 uni-id 登录:在项目 uniCloud-aliyun/cloudfunctions/common/uni-config-center/uni-id/ 下新建 config.json,写入 tokenSecret(必填,请使用自己的随机字符串):
    {
    "tokenSecret": "your-random-32-char-secret",
    "tokenExpiresIn": 2592000,
    "passwordErrorMaxTimes": 5
    }

    然后右键上传公共模块 uni-config-center

  5. 定时触发器已内置:云函数 package.json 已配置每分钟定时触发(cloudfunction-config.triggers),上传云对象后自动生效。云端会定时调用云对象内置 _timing 方法 → 内部执行 scanOfflineDevices 离线巡检。若需调整频率,可修改 package.json 中 config 的 cron 表达式后重新上传:
    • 阿里云(忽略年份位):0 * * * * *(每分钟)
    • 腾讯云(7 位):0 * * * * * *(每分钟)
  6. 注册页面:插件内 pages_init.json 会在导入时自动合并页面路由到项目 pages.json(无需手动配置)
  7. 设置启动页:在项目 pages.jsonpages 数组第一位添加管理端首页,例如:
    { "path": "uni_modules/iot-alert-admin/pages/index/index", "style": { "navigationBarTitleText": "告警看板" } }
  8. 运行管理端:编译运行项目,进入告警管理各页面

说明:若项目已存在同名 uniCloud-aliyun 目录,HBuilderX 会自动合并插件内 uniCloud 内容;若导入后未出现 iot-alert-server,请在 HBuilderX 中重新加载项目。

设备接入

设备侧(MQTT/边缘网关)可调用云对象上报入口:

  • reportHeartbeat() — 心跳上报(自动维护设备在线状态,供离线检测使用)
  • reportAlert() — 主动上报告警(规则匹配 → 模板渲染 → 多渠道推送,内置防抖去重)
  • recoverAlert() — 告警恢复上报
  • scanOfflineDevices() — 离线巡检(由定时触发器每分钟触发,经 _timing 入口自动调用,判定心跳超时设备离线并自动建单推送)

告警分发链路

设备上报 → 命中规则(阈值/故障码/状态)→ 渲染消息模板 → 按渠道分发:

  • 钉钉机器人:POST webhook,text 消息
  • 企业微信机器人:POST webhook,text 消息
  • UniPush:uni-push2 服务端推送
  • 短信 / 邮件:预留渠道(需配置 webhook 或专业版支持)

分发结果(渠道名、接收人、失败原因)会写回告警日志,管理端「告警详情」可查看。

权限与安全

  • 默认所有 schema 为「客户端只读」(告警日志、设备表允许创建),管理端增删改均通过云对象服务端执行,不受 schema 权限限制
  • 管理端接口已启用 uni-id 登录鉴权AUTH_ENABLED=true):看板、规则、渠道、接收人、模板、统计等接口需登录后访问,未登录返回"未登录或登录态已失效"
  • 设备侧上报接口免登录reportHeartbeat / reportAlert / recoverAlert / scanOfflineDevices 自动放行(设备无用户账号),可放心对接 MQTT/边缘网关
  • 登录页接入:管理端需登录后才能使用,请安装登录组件:
    1. 插件市场安装 uni-id-pages-x(含登录/注册页 + uni-id-co 云对象)
    2. 部署 uni-id-co 云对象,并在 uni-config-center/uni-id/config.json 配置登录参数(参照上方步骤 4.1,tokenSecret 请使用自己的随机值)
    3. 客户端登录后 token 由 uniCloud SDK 自动携带,管理端各页面即可正常访问

平台兼容

  • uni-app x:App(Android / iOS)、Web、微信小程序
  • 云端:阿里云 / 腾讯云 uniCloud 服务空间

更新日志

详见 changelog.md

隐私、权限声明

1. 本插件需要申请的系统权限列表:

网络访问

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件仅展示告警数据;管理端数据通过 uniCloud 云对象(iot-alert-server)读写,不在客户端存储敏感配置(webhook 密钥仅存云端)

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。