首页 > 其他分享 >ThingsBoard规则链节点:Generator节点详解

ThingsBoard规则链节点:Generator节点详解

时间:2024-10-30 15:46:48浏览次数:7  
标签:Generator type 生成 ThingsBoard 数据 节点

引言

1. Generator 节点简介

2. 节点配置

3. 使用场景

3.1 模拟数据流

3.2 定时任务

3.3 事件触发

3.4 数据填充

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,Generator 节点用于生成消息并将其发送到下一个节点,这对于模拟数据流、定时任务和事件触发非常有用。

ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计33条视频,包括:1、ThingsBoard项目介绍、2、ThingsBoard前端Vue版本代码编译、3、ThingsBoard本地后端源码编译等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0 

1. Generator 节点简介

Generator 节点的主要作用是定期或按需生成消息,并将这些消息传递给规则链中的下一个节点。通过这种方式,可以模拟数据流、执行定时任务或触发特定事件。Generator 节点支持多种配置选项,包括生成消息的时间间隔、消息内容和元数据等。

2. 节点配置
  • Type:选择生成的消息类型,例如 Post TelemetryPost Attributes 或 Custom Message
  • Interval:设置生成消息的时间间隔(以毫秒为单位)。
  • Message Content:指定生成的消息内容。可以使用静态值、动态表达式或脚本来生成消息。
  • Metadata:可选参数,可以在消息中添加额外的元数据信息。
  • Script:如果需要更复杂的逻辑,可以使用 JavaScript 或其他支持的脚本语言编写脚本来生成消息。
3. 使用场景

Generator 节点在多种场景下都非常有用,特别是在需要模拟数据流、执行定时任务或触发特定事件时。以下是一些具体的应用场景:

3.1 模拟数据流

在开发和测试阶段,可能需要模拟设备上报的数据流。Generator 节点可以帮助你生成模拟数据,以便测试系统的响应和性能。

{
  "type": "Post Telemetry",
  "interval": 5000, // 每5秒生成一次消息
  "messageContent": {
    "temperature": "${Math.random() * 100}", // 生成0到100之间的随机温度
    "humidity": "${Math.random() * 100}"     // 生成0到100之间的随机湿度
  }
}
3.2 定时任务

Generator 节点可以用于执行定时任务,例如定期检查设备状态、发送通知或执行维护操作。

{
  "type": "Custom Message",
  "interval": 3600000, // 每小时生成一次消息
  "messageContent": {
    "type": "CHECK_DEVICE_STATUS"
  },
  "metadata": {
    "deviceName": "sensor_001"
  }
}
3.3 事件触发

Generator 节点可以用于触发特定事件,例如在某个时间点启动某个流程或发送警报。

{
  "type": "Custom Message",
  "interval": 86400000, // 每天生成一次消息
  "messageContent": {
    "type": "DAILY_REPORT"
  }
}
3.4 数据填充

在某些情况下,可能需要在系统初始化时填充一些默认数据。Generator 节点可以用来生成这些初始数据。

{
  "type": "Post Attributes",
  "interval": 0, // 仅生成一次
  "messageContent": {
    "location": "New York",
    "status": "Active"
  }
}
4. 实际项目中的应用

下面是一个实际项目中的例子,展示如何在智能农业系统中使用 Generator 节点。

4.1 项目背景

假设我们正在开发一个智能农业系统,该系统需要定期收集土壤湿度和温度数据,并根据这些数据进行灌溉控制。此外,还需要每天生成一份报告,总结当天的环境数据。

4.2 项目需求
  • 每10分钟生成一次模拟的土壤湿度和温度数据。
  • 每天凌晨生成一份包含当天所有数据的报告。
  • 在系统初始化时,为每个设备设置默认属性。
4.3 实现步骤
  1. 定义设备和属性

    • 创建多个传感器设备(如土壤湿度传感器、温度传感器等)。
    • 为每个设备设置默认属性(如位置、状态等)。
  2. 创建规则链

    • 添加 Generator 节点,用于生成模拟数据。
    • 添加另一个 Generator 节点,用于生成每日报告。
    • 添加第三个 Generator 节点,用于初始化设备属性。
  3. 配置规则链

    • 配置第一个 Generator 节点,每10分钟生成一次模拟数据。
{
  "type": "Post Telemetry",
  "interval": 600000, // 每10分钟生成一次消息
  "messageContent": {
    "soilMoisture": "${Math.random() * 100}", // 生成0到100之间的随机土壤湿度
    "temperature": "${Math.random() * 50}"     // 生成0到50之间的随机温度
  }
}
  • 配置第二个 Generator 节点,每天凌晨生成一份报告。
{
  "type": "Custom Message",
  "interval": 86400000, // 每天生成一次消息
  "messageContent": {
    "type": "DAILY_REPORT"
  }
}
  • 配置第三个 Generator 节点,在系统初始化时设置默认属性。
{
  "type": "Post Attributes",
  "interval": 0, // 仅生成一次
  "messageContent": {
    "location": "Field 1",
    "status": "Active"
  }
}
  1. 数据处理和存储

    • 使用后续的规则链节点处理生成的数据,例如存储到数据库、发送通知或触发其他操作。
  2. 前端界面

    • 开发一个前端界面,显示实时的土壤湿度和温度数据。
    • 提供一个界面,让用户能够查看和下载每日报告。
  3. 数据查询

    • 使用 ThingsBoard 的 REST API 或 GraphQL 查询,获取历史数据和报告。
GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=soilMoisture,temperature&startTs={startTimestamp}&endTs={endTimestamp}
5. 总结

Generator 节点在 ThingsBoard 规则链中是一个非常强大的工具,可以帮助生成模拟数据、执行定时任务和触发特定事件。通过合理地使用这个节点,可以更好地管理和自动化系统中的各种操作。无论是在开发和测试阶段、日常运营还是数据填充等方面,Generator 节点都能发挥重要作用。

标签:Generator,type,生成,ThingsBoard,数据,节点
From: https://blog.csdn.net/2401_85648342/article/details/143328008

相关文章

  • Ansible自动化一键部署单节点&集群架构
    自动化部署利器:Ansible一键部署脚本在现代IT基础设施管理中,Ansible以其简洁、强大的自动化能力脱颖而出。以下是精心打造的Ansible自动化一键部署脚本,旨在简化部署流程,提升效率,确保一致性和可靠性。通过这个脚本,可以轻松实现:一键部署:简化复杂的部署流程,只需一条命令即可启动......
  • k8s之调动pod到指定节点与创建多容器pod并查找pod日志
    在Kubernetes中,可以通过以下步骤将Pod调度到指定节点、创建多容器Pod,并查找Pod日志。1.将Pod调度到指定节点要将Pod调度到特定节点,可以使用nodeSelector或nodeAffinity进行调度。方法一:使用nodeSelector首先,需要确保节点具有指定的标签,然后在Pod配置......
  • deployment扩容-查看pod使用的CPU-统计ready状态节点数量
    在Kubernetes中,以下命令可以帮助您完成这些操作:1.Deployment扩容使用kubectlscale命令扩容Deployment,将副本数(Pod数量)增加到指定数量:kubectlscaledeployment<deployment-name>--replicas=<number-of-replicas>例如,将名为my-deployment的Deployment扩......
  • centos9(linux): 在prometheus服务端添加被监控节点
    一,从服务端所在机器测试被监控节点是否9100端口打开1,用telnet$telnet172.16.13.191002,用nc$nc-nvv172.16.13.19100 二,在服务端prometheus中添加一个监控节点编辑配置文件:viprometheus.yml内容:在static_configs: 下增加一行:-targets:["172.16.13.......
  • antdesign vue 步骤条a-step按审核人员节点排序显示逻辑
    一、需求内容目前审核人员角色有:学术、法务、售后,串行执行审核流程。审核流程:发起/修改审核-》审核节点审核节点规则:学术-》法务-》售后,每个节点均可以审核或修改。审核状态:发起、修改、待审核、已审核。因此前端根据节点规则来展示审核步骤给用户。二......
  • YOLOv6-4.0部分代码阅读笔记-anchor_generator.py
    anchor_generator.pyyolov6\assigners\anchor_generator.py目录anchor_generator.py1.所需的库和模块2.defgenerate_anchors(feats,fpn_strides,grid_cell_size=5.0,grid_cell_offset=0.5, device='cpu',is_eval=False,mode='af'): 1.所需的库和模块imp......
  • K8S五节点集群部署
    1.概念简介Kubernetes是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。为什么需要Kubernetes,它能做什么?容器是打包和运行应用程序的好方式。在......
  • k8s 集群 master的节点ip 改变了重新的 init
    1、修改hosts的配置 10.136.195.44master10.136.195.150node1最好重新的启动虚拟机。2、清理上次生成的初始化文件rm-rf/etc/kubernetes/*rm-rf~/.kube/*rm-rf/var/lib/etcd/* 3、关闭端口占用的进程[init]UsingKubernetesversion:v1.23.6[preflight]Ru......
  • K8s节点频繁NotReady
    K8s节点频繁NotReady查看平台告警相关日志监控网络系统层面进程调整超时时间探测脚本查看平台告警相关日志describenode关键字:OOM、etcd关键字:newelapiserver关键字:etcdserver:noleadermessage关键字:updatenodestatuskubelet关键字:metallb关键......
  • IEEE33节点案例-计及风电出力不确定性的网架重构优化模型/配电网故障恢复重构(Matlab)
    随着能源转型的持续推进,以风电和光伏为首的新能源场站被大规模接入电力系统中,给电力系统安全防御体系带来了严峻挑战。分析电力系统发生大停电事故后的网架重构过程对减少由大停电事故带来的社会影响和经济损失有重要意义。计及风电出力的网架重构优化模型必须考虑风电场和......