转化节点
转化节点可以修改传入消息字段,例如发送器,消息类型,消息负载和元数据
Change originator
Thingsboard中的所有传入消息都有发起者字段来识别发送消息的实体。实体可以是设备、资产、客户、租户等。 提交的消息作为另一个实体的消息进行处理时可以使用该节点。例如,设备提交遥测,将遥测复制到更高层次的资产或客户。在这种情况下,管理员应该在保存Timeseries节点之前添加这个节点。 发起人可以改为:
- 发起者的客户
- 发起者的租户
- 通过关系Query识别的相关实体 在“关系查询”配置中,管理员可以选择所需的指令和关系深度级别。还可以配置关系过滤器,并配置所需的关系类型和实体类型。
如果发现多个相关实体,则将第一个实体作为新的发起者,丢弃其他实体。 如果没有找到相关实体/客户/租户,则使用failure链,否则使用success链。 出站消息将具有新的发送者Id。
脚本转换节点
使用配置的JavaScript函数更改消息有效负载、元数据或消息类型。 JavaScript函数接收3个参数:
{
msg: new payload,
metadata: new metadata,
msgType: new msgType
}
结果对象中的所有字段都是可选的,如果没有指定,将从原始消息中获取。 此节点的出站消息将是使用配置好的JavaScript函数构造的新消息。 可以使用JavaScript测试函数验证JavaScript转换函数。
例如
Node receives Message with payload: 节点接受有消息负载的消息
{
"temperature": 22.4,
"humidity": 78
}
Original Metadata:
原始元数据
{ "sensorType" : "temperature" }
原始消息类型- POST_TELEMETRY_REQUEST 应进行下列修改:
- 将消息类型更改为“CUSTOM_UPDATE”
- 在有效负载中添加附加属性v1.1版本。
- 将元数据中的sensorType属性值更改为roomTemp 使用如下转换函数完成修改:
var newType = "CUSTOM_UPDATE";
msg.version = "v1.1";
metadata.sensorType = "roomTemp"
return {msg: msg, metadata: metadata, msgType: newType};
可在以下章节中查看该节点使用实例:
- 转换传入遥测
- RPC调用回应
To Email Node
到邮件节点
使用消息元数据派生的值填充电子邮件字段,将消息转换为电子邮件消息。将“SEND_EMAIL”输出消息类型设置成发送电子邮件节点可接受的消息类型。可以使用元数据中的值配置邮件中的所有字段。
例如,传入消息在元数据中有deviceName字段,电子邮件正文应该包含该字段值。 在这种情况下,deviceName的值可以引用为${deviceName},如下面的示例所示:
Device ${deviceName} has high temperature