Transformation节点用于更改入站的消息字段例如:发起者、消息类型、playload和元数据。
支持TB版本2.0+ |
Thingsboard中的所有入站消息都有“发起者”字段该字段标识提交消息的实体可以是Device, Asset, Customer, Tenant等。
当提交的消息是来自另一个实体的消息处理的情况下使用此节点;例如:设备上传遥测并且遥测应复制到更高级别的资产或客户中。
在这种情况下管理员必须在Save Timeseries节点之前添加此节点。
发起者可以更改为:
在’Relations query’管理员可以选择所需的Direction和relation depth level还可以使用必需的关系类型和实体类型配置Relation filters。
如果找到多个相关实体则仅第一个实体当作新的发起者其他实体则被丢弃。
如果未找到相关实体/客户/租户则使用Failure链否则Success链。
出站邮件将具有新的发起者ID。
支持TB版本2.0 |
使用已配置的JavaScript函数更改消息payload、Metadata或消息类型。
JavaScript函数接收3个输入参数:
msg
- 消息payloadmetadata
- 消息metadatamsgType
- 消息类型脚本应返回以下结构
{
msg: new payload,
metadata: new metadata,
msgType: new msgType
}
结果对象中的所有字段都是可选的如果未指定则将从原始消息中获取
来自此节点的出站消息将是使用已配置的JavaScript函数构造的新消息。
JavaScript转换功能可以使用Test JavaScript function进行验证.
Example
节点收到带有payload的消息:
{
"temperature": 22.4,
"humidity": 78
}
Original Metadata:
{ "sensorType" : "temperature" }
原始Message Type - POST_TELEMETRY_REQUEST
应该执行以下修改:
以下转换函数将执行所有必要的修改:
var newType = "CUSTOM_UPDATE";
msg.version = "v1.1";
metadata.sensorType = "roomTemp"
return {msg: msg, metadata: metadata, msgType: newType};
在下一面教程中你可以看到使用该节点的真实示例:
支持TB版本2.0 |
通过使用从消息元数据派生的值填充电子邮件字段后将消息转换为电子邮件并设置’SEND_EMAIL’为输出消息类型后使用发送邮件节点发送。
可以将所有电子邮件字段配置为元数据中的值。
例如入站消息在元数据中具有deviceName字段并且电子邮件正文应包含其值。
在这种情况下可以像下面的示例一样引用deviceName值${deviceName}
:
Device ${deviceName} has high temperature
如果入站消息元数据包含引用存储在数据库中的attachments字段可以做为电子邮件的附件使用。
注意: 这是ThingsBoard专业版支持的文件存储功能的一部分。
在下一面教程中你可以看到使用该节点的真实示例: