脚本系统
项目有两种文本处理用途,共用“规则引擎”功能入口。commandScript 是依赖 ruleScript 的内部附属能力,两者由功能配置强制组合。
| 用途 | 入口 | 语法与结果 |
|---|---|---|
| 命令脚本 | 外设执行动作 15 | PERIPH/DELAY/GPIO/PWM/DAC/LOG/MQTT 逐行命令,产生实际动作 |
| 数据模板规则 | “规则脚本”页面 | ${key} 替换 JSON 数据字段,转换协议正文 |
| 传感器显示模板 | 受支持的显示等动作参数 | ${periphId.field} 读取采样缓存,不主动采集 |
三者都不提供通用 JavaScript、循环、变量声明或 gpioWrite()。
命令序列
# 整行注释
PERIPH led1 HIGH
DELAY 300
PERIPH led1 LOW
LOG pulse finished每行一条命令,命令名称不区分大小写。数字须为对应范围内完整十进制整数,ID 指向保存的目标。不要在控制命令后追加行尾注释;LOG、MQTT 和显示文字会合并正文单词。
动作 15 的 actionValue 保存整份文本。先全量解析及校验,再执行;后续行无效时不会输出已解析的前缀。运行时输出失败后停止余项,已执行动作保留,不自动回滚或重试。命令、MQTT 队列与大小边界见脚本动作。
脚本最多 1024 字节和 50 条命令,每次延时最多 10 秒,总延时最多 30 秒,执行截止最多 35 秒。周期采集、循环灯效和持续温控使用现有触发器、驱动或控制器,不靠堆叠延时占满任务。
数据模板转换
输入对象:
{
"temperature": 25.6,
"humidity": 60
}模板:
[{"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 两个通道,再使用:
# 房间
温度: ${dht_room.temperature} ${dht_room.temperature.unit}
湿度: ${dht_room.humidity} ${dht_room.humidity.unit}缓存模板不会主动读取、更新采样时间或把旧值变成新读数,缺失时保留占位符。${temperature} 与 ${dht_room.temperature} 分属数据模板与缓存用途。${sys.ip}、${sys.time_hhmm} 不是内置系统变量。详情见显示动作。
验证
先确认功能与外设状态,以停用草稿核对参数。现场执行须处于授权范围,观察本机结果、平台收到的完整正文及实物反馈。配置保存、队列接收、协议确认与负载执行是不同证据,本页说明不代表实机或长期稳定测试通过。

