YunIOT平台文档
  • 背景介绍
  • 平台介绍
    • 产品架构
    • 产品特点
    • 产品优势
    • 设备和应用接入
    • 部分应用案例
    • 名词解释
    • 特色
      • 特点
      • 系统角色
      • 实体和关系
      • 设备属性
      • 遥测数据
      • 设备警报
      • 物联网设备接入
      • 设备连接状态
      • 物联网设备管理
      • 系统水平可伸缩性
      • 系统容错
  • 平台入驻
    • 注册登录
  • 快速入门
    • 业务使用全流程
    • 使用模拟器体验全流程
  • 设备接入
    • 创建设备
  • 管理后台
    • 业务租户
    • 客户管理
    • 客户用户
    • 场地设施
    • 设备管理
      • 网关管理
      • 中继管理
      • 终端管理
      • 设备分布
      • 远程升级
    • 实体视图
    • 仪表组件
      • 组件库部件包
      • 开发自定义组件
    • 数据仪表
    • 操作日志
    • 流量监控
  • 规则引擎
    • 什么是规则引擎?
    • 规则引擎概述
    • 数据规则引擎
    • 规则链功能节点
      • Filter
      • Enrichment
      • Transformation
      • Action
      • 外部节点
  • 组态控件
    • 图表控件
    • GPIO控件
    • 地图控件
    • 输入框控件
    • 自定义控件
    • 实体管理控件
    • 实时监控控件
    • 异常报警部件
    • 控制开关控件
    • 数字仪表控件
    • 卡片相关控件
  • 创建可视应用界面
    • 设备实践
  • 应用开发指南及协议API
    • MQTT协议
    • Yun-IOT后台服务HTTP接口
由 GitBook 提供支持
在本页
  • 变更发起者
  • 脚本
  • 邮件转换

这有帮助吗?

  1. 规则引擎
  2. 规则链功能节点

Transformation

上一页Enrichment下一页Action

最后更新于4年前

这有帮助吗?

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 - 消息类型

脚本应返回以下结构

{   
    msg: new payload,
    metadata: new metadata,
    msgType: new msgType 
}

结果对象中的所有字段都是可选的如果未指定则将从原始消息中获取

来自此节点的出站消息将是使用已配置的JavaScript函数构造的新消息。

Example

节点收到带有payload的消息:

{
    "temperature": 22.4,
    "humidity": 78
}

Original Metadata:

{ "sensorType" : "temperature" }

原始Message Type - POST_TELEMETRY_REQUEST

应该执行以下修改:

  • 将消息类型更改为’CUSTOM_UPDATE’

  • 将其他属性version添加到payload中值为v1.1

  • 将元数据中的_sensorType_属性值更改为roomTemp

以下转换函数将执行所有必要的修改:

var newType = "CUSTOM_UPDATE";
msg.version = "v1.1";
metadata.sensorType = "roomTemp"
return {msg: msg, metadata: metadata, msgType: newType};

在下一面教程中你可以看到使用该节点的真实示例:

  • 转换入站遥测

  • RPC调用回复

邮件转换

通过使用从消息元数据派生的值填充电子邮件字段后将消息转换为电子邮件并设置’SEND_EMAIL’为输出消息类型后使用发送邮件节点发送。

可以将所有电子邮件字段配置为元数据中的值。

例如入站消息在元数据中具有deviceName字段并且电子邮件正文应包含其值。

在这种情况下可以像下面的示例一样引用deviceName值${deviceName}:

 Device ${deviceName} has high temperature

如果入站消息元数据包含引用存储在数据库中的attachments字段可以做为电子邮件的附件使用。