Skip to content

脚本系统 ​

项目有两种文本处理用途,共用“规则引擎”功能入口。commandScript 是依赖 ruleScript 的内部附属能力,两者由功能配置强制组合。

用途入口语法与结果
命令脚本外设执行动作 15PERIPH/DELAY/GPIO/PWM/DAC/LOG/MQTT 逐行命令,产生实际动作
数据模板规则“规则脚本”页面${key} 替换 JSON 数据字段,转换协议正文
传感器显示模板受支持的显示等动作参数${periphId.field} 读取采样缓存,不主动采集

三者都不提供通用 JavaScript、循环、变量声明或 gpioWrite()。

命令序列 ​

text
# 整行注释
PERIPH led1 HIGH
DELAY 300
PERIPH led1 LOW
LOG pulse finished

每行一条命令,命令名称不区分大小写。数字须为对应范围内完整十进制整数,ID 指向保存的目标。不要在控制命令后追加行尾注释;LOG、MQTT 和显示文字会合并正文单词。

动作 15 的 actionValue 保存整份文本。先全量解析及校验,再执行;后续行无效时不会输出已解析的前缀。运行时输出失败后停止余项,已执行动作保留,不自动回滚或重试。命令、MQTT 队列与大小边界见脚本动作。

脚本最多 1024 字节和 50 条命令,每次延时最多 10 秒,总延时最多 30 秒,执行截止最多 35 秒。周期采集、循环灯效和持续温控使用现有触发器、驱动或控制器,不靠堆叠延时占满任务。

数据模板转换 ​

输入对象:

json
{
  "temperature": 25.6,
  "humidity": 60
}

模板:

text
[{"id":"room_temperature","value":"${temperature}"},{"id":"room_humidity","value":"${humidity}"}]

模板取顶层对象键或 id/value 数组项目 ID,最多处理 32 个键;不提供嵌套表达式、数值运算或 JSON 自动转义。缺失键保留占位符,非 JSON、标量或无可用键的输入不会得到新模板结果。应使用受控数值并校验最终格式,不能把替换当作任意字符串的编码器。

模板单条内容最多 2048 字节,整组最多 64 条且配置最多 24 KiB;内存预算仍可能提前拒绝。接收 triggerType=0,上报 triggerType=1;协议 0=MQTT、1=Modbus RTU。仅首条匹配且启用的规则生效。MQTT 接收 sourceTopic 可使用 +/#,目标主题不能含通配符。管理与事务边界见规则脚本。

缓存显示 ​

先独立采集 temperature 和 humidity 两个通道,再使用:

text
# 房间
温度: ${dht_room.temperature} ${dht_room.temperature.unit}
湿度: ${dht_room.humidity} ${dht_room.humidity.unit}

缓存模板不会主动读取、更新采样时间或把旧值变成新读数,缺失时保留占位符。${temperature} 与 ${dht_room.temperature} 分属数据模板与缓存用途。${sys.ip}、${sys.time_hhmm} 不是内置系统变量。详情见显示动作。

验证 ​

先确认功能与外设状态,以停用草稿核对参数。现场执行须处于授权范围,观察本机结果、平台收到的完整正文及实物反馈。配置保存、队列接收、协议确认与负载执行是不同证据,本页说明不代表实机或长期稳定测试通过。

蜂信物联 | fastbee.cn