了解如何配置规则引擎以将传入的遥测存储在数据库中之前基于JavaScript函数对其进行转换。
用例
假设你的设备正在使用自定义传感器来收集温度读数并将其推送到ThingsBoard。
该传感器以°F为单位收集温度读数,你希望在将其存储到数据库和可视化之前将其转换为°C。
在本教程中,我们将配置ThingsBoard Rule Engine来根据以下公式修改温度读数:
[°C] = ([°F] - 32) × 5/9.
先决条件
我们假设你已完成以下指南并查看了以下文章:
- 入门指南。
- 规则引擎概述。
步骤1:添加温度transformation节点
我们将修改默认规则链,并使用温度转换脚本添加transformation规则节点。
我们将这个规则节点放置在默认的”message type switch”和”save timeseries”规则节点之间。
请注意我们也从根规则链中删除了不相关的规则节点。
生成模拟数据function precisionRound(number, precision) {
var factor = Math.pow(10, precision);
return Math.round(number * factor) / factor;
}
if (typeof msg.temperature !== 'undefined'){
msg.temperature = precisionRound((msg.temperature -32) * 5 / 9, 2);
}
return {msg: msg, metadata: metadata, msgType: msgType};
步骤2:验证脚本调试
我们使用内置的”Test transformer function”按钮来检查脚本是否正确
TL;DR
从本教程中下载并导入带有规则链的附件json文件不要忘记将新规则链标记为”root”规则链。