本教程将展示如何根据室内和室外仓库温度计的读数计算温度变化量。
假设你有一个带有室内温度计和室外温度计的仓库:我们将配置ThingsBoard规则引擎以根据温度传感器的最新读数自动计算仓库内部和外部的温度变化量。
请注意这只是一个简单的理论用例用于演示平台的功能。
你可以将本教程用作更复杂场景的基础。
我们假设你已完成以下指南并查看了以下文章:
我们将创建一个名称为“Warehouse A”的资产后输入“warehouse”。
我们将创建两个名称分别为“Inside Thermometer”和“Outside Thermometer”的设备并分别使用“Inside Thermometer”和“Outside Thermometer”类型。
我们还必须在资产“Warehouse A”和设备“Inside Thermometer”之间建立关系。
此关系将在规则链中使用以将消息的始发者从温度计更改为仓库本身以及从设备“Inside Thermometer”到设备“Outside Thermometer”的关系,以从“Outside Thermometer”获取最新温度。
注意:请查看以下文档页面以了解如何创建资产和关系。
在本节中我们将解释本教程中每个节点的用途。将涉及三个规则链:
“Thermometer Emulators”-可选规则链用于模拟来自两个温度传感器的数据。
“Root rule chain” - 规则链实际上将遥测从设备保存到数据库中并在将设备重定向到”Delta Temperature”链之前按设备类型过滤消息。
“Delta Temperature” - 规则链用于实际计算仓库内和室外温度计之间的温度增量。
节点A和B:生成器节点
两个类似的节点会定期生成一个非常简单的消息,并带有随机温度读数。
节点A:室内温度计模拟器
var msg = {
temperature: (20 + 5 * Math.random()).toFixed(1)
};
return {
msg: msg,
metadata: {
deviceType: "indoor thermometer"
},
msgType: "POST_TELEMETRY_REQUEST"
};
var msg = {
temperature: (18 + 5 * Math.random()).toFixed(1)
};
return {
msg: msg,
metadata: {
deviceType: "outdoor thermometer"
},
msgType: "POST_TELEMETRY_REQUEST"
};
注意: 在实际情况下,设备类型默认设置为消息metadata。
节点C:规则链节点
节点D:规则链节点
节点E: Switch node.
function nextRelation(metadata, msg) {
if (metadata.deviceType === 'indoor thermometer') {
return ['indoor'];
} else if (metadata.deviceType === 'outdoor thermometer')
return ['outdoor'];
}
return nextRelation(metadata, msg);
节点F和G: Transform script nodes
两个类似的节点根据来自先前节点的关系类型,将密钥名称从消息有效负载从”temperature”更改为”indoorTemperature”或”outdoorTemperature”。
创建新的出站消息,并在其中放入新的遥测。
节点F: 更改为Outdoor
var newMsg = {};
newMsg.outdoorTemperature = msg.temperature;
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
var newMsg = {};
newMsg.indoorTemperature = msg.temperature;
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
节点H: 更改发起方节点。
节点I: Save Timeseries node.
节点J: Originator attributes node.
节点K: Transform script node.
var newMsg = {};
newMsg.deltaTemperature = parseFloat(Math.abs(metadata.indoorTemperature - metadata.outdoorTemperature).toFixed(2));
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
节点L: Save Timeseries节点.
下载并导入附加的模拟器规则链文件作为新的”Thermometer Emulators”规则链, 根规则链文件作为新的”Root rule chain”和”Delta Temperature”文件。 请注意,某些节点已启用调试。
下载并导入附加的信息中心文件作为新的”Warehouse dashboard”。
入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。
安装指南 - 了解如何在各种操作系统上安装ThingsBoard。
设备连接 - 了解如何根据您的连接方式或解决方案连接设备。
数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。
数据处理 - 了解如何使用ThingsBoard规则引擎。
硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。
高级功能 - 了解高级ThingsBoard功能。
开发指南 - 了解ThingsBoard中的贡献和开发。