Rule Scripts
About 2 min
Rule Scripts
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Web console page purpose and related device-side configuration model.
- Available fields, operational workflow, and safety checks.
- Validation steps, logs, and maintenance recommendations.
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
规则脚本
功能说明
规则脚本是 FastBee 外设执行中的 script 动作类型,支持使用简化的 JavaScript 语法编写自定义逻辑。适用于复杂的条件判断、数据计算和多步骤控制。

脚本适合把多步 GPIO、PWM、延时、变量读写封装到一条动作中。上线前建议先在禁用规则状态下保存和检查,再通过手动执行验证。
脚本排障时先判断故障发生在哪一段:保存阶段、触发阶段、变量替换阶段、外设动作阶段或资源保护阶段。每一段对应的日志和处理方式不同。
操作指南
在外设执行规则的 actions 中使用 "type": "script" 动作:
{ "type": "script", "params": { "code": "你的脚本代码" } }参数说明
内置函数
| 函数 | 说明 | 示例 |
|---|---|---|
| gpioWrite(id, val) | GPIO写入 | gpioWrite('led_d1', 0) |
| gpioRead(id) | GPIO读取 | var v = gpioRead('key1') |
| pwmWrite(id, duty) | PWM写入 | pwmWrite('pwm_led', 128) |
| servoWrite(id, angle) | 舵机控制 | servoWrite('servo_01', 90) |
| analogRead(id) | ADC读取 | var v = analogRead('adc_01') |
| getVar(name, default) | 读全局变量 | var x = getVar('count', 0) |
| setVar(name, value) | 写全局变量 | setVar('count', x+1) |
| delay(ms) | 延时(毫秒) | delay(100) |
| log(msg) | 输出日志 | log('温度:' + temp) |
内置变量
| 变量 | 说明 |
|---|---|
| event.data | 触发事件携带的数据 |
| event.type | 触发事件类型 |
| event.source | 触发事件源 |
配置示例
条件控制
var temp = getVar('temperature', 25);
if (temp > 35) {
gpioWrite('fan_relay', 1);
gpioWrite('led_d1', 0);
} else {
gpioWrite('fan_relay', 0);
}循环渐变
var duty = getVar('duty', 0);
var dir = getVar('dir', 1);
duty += dir * 10;
if (duty >= 255) { duty = 255; dir = -1; }
if (duty <= 0) { duty = 0; dir = 1; }
pwmWrite('pwm_led', duty);
setVar('duty', duty);
setVar('dir', dir);故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 脚本不执行 | 语法错误 | 检查日志中的错误信息 |
| 变量丢失 | 设备重启 | 全局变量仅存于内存,重启后清零 |
| 执行超时 | 脚本过长/死循环 | 限制脚本复杂度,避免循环 |
| 函数未定义 | 拼写错误 | 检查函数名大小写 |
