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