脚本规则
大约 4 分钟featurerule
概念说明
脚本规则提供了灵活的可编程能力,允许用户通过编写脚本代码来实现复杂的业务逻辑处理。支持 Groovy 和 JavaScript 两种脚本语言,可以在设备数据上报、平台下发命令、设备上下线等多种场景下触发执行,实现数据转换、过滤、聚合等高级功能。
一、创建脚本规则
- 登录物联网平台,选择【规则引擎】>【脚本规则】,进入脚本规则管理页面。
- 点击【创建脚本规则】,填写脚本名称、脚本编码等基础信息。
- 其中脚本编码支持自动生成,点击输入框右侧的【自动生成】按钮即可。
- 选择需要关联的产品,脚本将处理该产品下设备的相关数据。
- 创建成功后,可以在脚本规则列表中查看。

二、选择脚本类型
平台支持两种脚本语言类型:
概念说明
- Groovy 脚本: Groovy 是一种基于 JVM 的动态语言,语法简洁且功能强大。
- 适用场景:需要 Java 生态集成、复杂业务逻辑处理
- 性能特点:执行效率高,适合处理大量数据
- 语法特点:支持 Java 语法,学习成本低
- JavaScript 脚本: JavaScript 是广泛使用的脚本语言,易于上手。
- 适用场景:前端开发人员熟悉、轻量级数据处理
- 性能特点:解释执行,适合中小规模数据处理
- 语法特点:语法灵活,开发效率高

三、配置触发模式
脚本规则支持多种触发模式,根据不同的业务场景选择合适的触发时机:
概念说明
设备上报: 当设备上报数据到平台时触发脚本执行,可用于数据预处理、格式判断等。
平台下发: 当平台向设备下发命令时触发脚本执行,可用于命令参数校验、转换等。
设备上线: 当设备连接到平台并上线时触发脚本执行,可用于初始化操作、状态同步等。
设备下线: 当设备与平台断开连接时触发脚本执行,可用于清理资源、记录日志等。

四、编写脚本内容
- 在规则编辑页面,找到【脚本内容】编辑器。
- 编辑器提供代码高亮、语法检查等功能,提升开发体验。
- 根据所选脚本类型编写相应的处理逻辑。
- 脚本中可以访问设备数据、产品信息等上下文变量。
- 编写完成后点击【保存】。
Groovy 脚本示例:
// 处理设备上报数据
def deviceData = context.getData()
def temperature = deviceData.temperature
// 温度单位转换(摄氏度转华氏度)
if (temperature != null) {
deviceData.temperatureF = temperature * 9 / 5 + 32
}
// 返回处理后的数据
return deviceDataJavaScript 脚本示例:
// 处理设备上报数据
var deviceData = context.getData();
var temperature = deviceData.temperature;
// 数据过滤:只保留温度在正常范围内的数据
if (temperature >= -50 && temperature <= 100) {
return deviceData;
}
// 异常数据返回 null,不进行后续处理
return null;

五、设置优先级
- 在规则编辑页面,配置【优先级】字段。
- 当多个脚本规则应用于同一产品时,按优先级顺序执行。
- 数值越大优先级越高,建议合理规划避免冲突。
六、启用与测试
- 脚本规则配置完成后,通过列表页面的开关启用规则。
- 建议先在测试环境验证脚本逻辑是否正确。
- 可以通过日志查看脚本执行情况和错误信息。
- 确认无误后再在生产环境启用。

注意
- 脚本执行超时时间有限制,避免编写耗时过长的逻辑。
- 脚本中的错误可能导致数据处理失败,请充分测试后再上线。
- 不同触发模式下可访问的上下文变量可能不同,请参考开发文档。
- 脚本修改后需要重新保存才能生效,建议做好版本管理。
