转换传入遥测值
- 用例
- 先决条件
- 步骤1:添加温度转换节点
- 步骤2:验证脚本调试
- TL;DR
用例
我们假设设备正在使用定制传感器来收集温度,并将温度读数推到TB上。该传感器读取的温度值计量单位为°F ,我们需要将温度值转换为°C才可存入数据库并进行可视化展示。 在本教程中,我们将配置ThingsBoard规则引擎,根据如下公式来转换温度:
[°C] = ([°F] - 32) × 5/9.
先决条件
请阅读完以下文章后进行接下来的操作:
- 入门指南。
- 规则引擎的概述。
步骤1:添加温度验证节点
修改默认的规则链,并添加带有温度转换脚本的转换规则节点。将该规则节点添加在默认的“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:验证脚本调试
我们使用内置的“测试转换功能”按钮检查脚本是否正确
您可以测试更多的用例,比如未设置温度时的情况。
TL;DR
从本教程下载并导入附带的有规则链的json文件。不要忘记将新规则链标记为“root”。