Skip to content

规则脚本 ​

“规则脚本”页面管理协议数据模板(RuleScript)。“规则引擎”须已编译、启用并通过资源准入;内部 commandScript 附属键与 ruleScript 强制组合。

这里不执行 JavaScript,也不使用 {"type":"script","params":{"code":"..."}} 外设格式。硬件命令序列在外设执行动作 15配置。

开发环境功能默认关闭。新增、修改、启停、删除或导入时,按需通过密码确认开启;已有设备的选择保留。列表读取需要登录,规则引擎关闭时接口返回不可用。

字段 ​

字段当前含义
id/name/enabled唯一 ID、名称、启用状态
triggerType0 接收转换;1 上报转换
protocolType0 MQTT;1 Modbus RTU
scriptContent最多 2048 字节的纯文本模板
sourceTopicMQTT 接收主题筛选,空表示全部;支持完整层级 + 和末尾 #
targetTopicMQTT 接收重定向发布目标,空表示不重定向;不能带通配符

仅首条匹配的启用规则生效,不叠加转换。sourceTopic/targetTopic 用于 MQTT 接收调用路径,不能承诺所有协议或上报路径支持重定向。

示例与导入结构 ​

输入 {"temperature":25.6} 可用下方停用模板生成平台数组,也支持输入 id/value 数组按 ID 提取。先核对主题和最终正文,再启用:

json
{
  "rules": [
    {
      "id": "rs_temperature",
      "name": "温度格式转换",
      "enabled": false,
      "triggerType": 0,
      "protocolType": 0,
      "scriptContent": "[{\"id\":\"room_temperature\",\"value\":\"${temperature}\"}]",
      "sourceTopic": "sensors/room/state",
      "targetTopic": ""
    }
  ]
}

替换只取顶层键或数组项目 ID,最多 32 项。不提供表达式、变量存储、嵌套访问或 JSON 转义。缺失项保留占位符,非 JSON 或标量输入不会生成新模板结果;包含引号等特殊字符时先核对最终 JSON。

保存、导入与恢复 ​

普通新增、编辑、启停和删除先校验候选,磁盘事务确认后才替换运行态。失败或 409 表示修改未确认,应重新加载,不根据按钮响应推断旧规则已改变。

整组导入最多 64 条、24 KiB,顶层只允许 rules;仍须满足内部 RAM 与连续块预算。错误、超限、重复 ID、非法主题或分配失败保留有效配置和运行规则。

/api/rule-script/import 是专用整组导入,成功响应 saved=true, applied=true, restartRequired=false,即事务保存并应用。系统配置文件传输入口对整组配置暂存后需要重启,两者行为不同。导入前导出本机配置,不用公开样例覆盖现场主题或凭据。

接口用途
GET/POST /api/rule-script列表/新增
POST /api/rule-script/update更新
POST /api/rule-script/enable、/api/rule-script/disable启用/停用
DELETE /api/rule-script/删除指定 ID,参数以接口约定为准
POST /api/rule-script/import专用整组导入,需编译配置传输能力

重定向还须通过 MQTT 实例、主题、队列和正文长度检查,配置保存不代表平台收到数据。安全上报路径拒绝不完整或超限结果;普通转换原文回退不代表所有发送失败都成功。更多模板与缓存区别见脚本系统。

蜂信物联 | fastbee.cn