转换节点
转换节点用于更改传入消息字段,如发起者、消息类型、有效负载和元数据。
更改发起人
自 YiCONNECT 2.0 版本以来 |
---|
YiCONNECT 中的所有传入消息都有发起者字段,用于标识提交消息的实体。它可以是设备、资产、客户、租户等。
当提交的消息应作为来自另一个实体的消息进行处理时,使用此节点。例如,设备提交遥测数据,遥测数据应复制到更高级别的资产或客户。在这种情况下,管理员应在保存时间序列节点之前添加此节点。
发起者可以更改为:
- 发起者的客户
- 发起人的租户
- 由关系查询标识的相关实体
在“关系查询”配置中,管理员可以选择所需的方向和 关系深度级别 。还可以使用所需的关系类型和实体类型配置关系过滤器集。
如果找到多个相关实体,则仅使用第一个实体作为新的发起者,其他实体将被丢弃。
如果未找到相关实体/客户/租户,则使用失败链,否则 -成功链。
出站消息将具有新的发起者 ID。
脚本转换节点
自 YiCONNECT 2.0 版本以来 |
---|
使用配置的 JavaScript 函数更改消息有效负载、元数据或消息类型。
JavaScript 函数接收 3 个输入参数:
msg
- 是消息有效负载。metadata
- 是消息元数据。msgType
- 是消息类型。
脚本应返回以下结构:
{
msg: new payload,
metadata: new metadata,
msgType: new msgType
}
结果对象中的所有字段都是可选的,如果未指定,将从原始消息中获取。
来自该节点的出站消息将是使用配置的 JavaScript 函数构造的新消息。
JavaScript 转换功能可以使用Test JavaScript 函数进行验证。
例子
节点接收带有有效负载的消息:
{
"temperature": 22.4,
"humidity": 78
}
原始元 数据 :
{ "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};
发送至电子邮件节点
自 YiCONNECT 2.0 版本以来 |
---|
通过使用从消息元数据派生的值填充电子邮件字段,将消息转换为电子邮件消息。设置“SEND_EMAIL”输出消息类型,稍后可由发送电子邮件节点接受。所有电子邮件字段都可以配置为使用元数据中的值。支持发送 HTML 页面和图像。
例如,传入消息在元数据中具有deviceName字段,并且电子邮件正文应包含其值。
在这种情况下,可以引用deviceName${deviceName}
的值,如下例所示:
Device ${deviceName} has high temperature
如果您想发送 html 或图像,则必须在“邮件正文类型”字段中选择 “HTML” 或 “动态” 。