ThingsBoard规则链节点:JSON Path节点详解

news2024/11/25 6:42:35

引言

JSON Path节点简介

用法

含义

应用场景

实际项目运用示例

智能农业监控系统

工业自动化生产线

车联网平台

结论


引言

ThingsBoard是一个功能强大的物联网平台,它提供了设备管理、数据收集与处理以及实时监控等核心功能。其规则引擎允许用户通过创建复杂的业务逻辑来自动处理来自设备的数据流。本文将详细介绍规则链中的“JSON Path”节点,包括其基本用法、含义及在实际项目中的应用案例。

https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4 

JSON Path节点简介

在现代Web开发和物联网领域中,JSON(JavaScript Object Notation)是一种常用的数据交换格式。当从设备接收到的数据是以JSON格式表示时,可能需要从中提取特定的信息以供进一步处理或分析。这时,“JSON Path”节点就显得非常有用。该节点使用JSONPath表达式来查询和提取JSON对象中的数据。

用法
  1. 添加到规则链:在规则链编辑器界面,从左侧工具箱拖动“JSON Path”节点至右侧工作区。
  2. 配置选项
    • 输入数据:指定要解析的JSON数据源,通常是从上一个节点传递过来的消息体。
    • JSONPath表达式:编写用于定位所需数据的JSONPath表达式。例如,$.temperature可以用来获取名为temperature的字段值。
    • 目标键名:定义输出结果存储的新键名。如果留空,则默认使用整个匹配结果。
  3. 连接到其他节点:通常该节点会放置在需要从复杂JSON结构中提取信息的地方,以便于后续处理步骤能够访问这些数据。
  4. 查看结果:执行后,根据JSONPath表达式匹配的结果会被添加到消息体中,或者更新现有的键值对。
含义

JSON Path节点的主要作用是从复杂的JSON结构中抽取特定的信息。这对于简化数据处理流程、优化性能以及提高代码可读性非常重要。

应用场景
  • 数据过滤:当接收到包含多个属性的遥测数据时,可以通过JSON Path节点筛选出感兴趣的部分进行进一步处理。
  • 动态数据绑定:在构建可视化仪表盘时,可能需要从不同的数据源中提取相关信息并展示给用户。JSON Path节点可以帮助实现这一点。
  • 条件判断:基于提取出的某些关键指标,可以设置触发报警或其他操作的条件。
  • 数据转换:在将数据存储到数据库之前,可能需要对原始JSON数据进行一定的转换或重组。JSON Path节点可以在这一过程中发挥作用。
实际项目运用示例
智能农业监控系统

假设你正在开发一套智能农业监控系统,该系统集成了土壤湿度传感器、温度传感器和光照强度传感器。这些传感器定期向服务器发送包含多种参数的JSON格式数据。

  • 数据提取与处理:每个传感器发送的数据可能如下所示:
     Json 

    深色版本

    {
      "device_id": "sensor_001",
      "timestamp": "2023-10-01T12:00:00Z",
      "measurements": {
        "soil_moisture": 35,
        "temperature": 22.5,
        "light_intensity": 800
      }
    }
    使用JSON Path节点,可以从这个JSON对象中提取出具体的测量值。例如,使用表达式$.measurements.soil_moisture来获取土壤湿度值,并将其存储在一个新的键msg.soilMoisture中。这样,在后续的处理步骤中就可以直接使用msg.soilMoisture来进行数据分析或报警触发。
工业自动化生产线

在一个工业自动化生产线上,各种传感器和控制器不断生成大量的操作日志和状态报告。这些数据通常以复杂的JSON格式表示,包含了设备ID、时间戳、状态码、错误描述等多种信息。

  • 错误日志分析:为了快速识别和响应生产线上的故障,可以使用JSON Path节点从日志中提取出错误描述。例如,使用表达式$.error_description来获取错误描述,并将其作为邮件通知的内容发送给维护团队。
  • 性能监控:对于性能监控,可以使用JSON Path节点提取关键指标,如生产速度、停机时间等。然后,利用这些数据生成实时图表,帮助管理人员了解当前的生产状况。
车联网平台

车联网平台涉及车辆位置跟踪、驾驶行为分析等功能。车辆上传的数据通常是JSON格式,包含了大量的车辆状态信息。

  • 位置信息提取:车辆的位置信息是车联网服务的核心部分。使用JSON Path节点,可以从车辆上报的数据中提取出GPS坐标。例如,使用表达式$.gps.latitude$.gps.longitude来分别获取纬度和经度,并将它们存储在消息体中,便于后续的地图显示或路径规划。
  • 驾驶行为分析:为了分析驾驶行为,可以从JSON数据中提取出速度、加速度等关键参数。例如,使用表达式$.speed$.acceleration来获取这些值,并将它们用于计算驾驶评分或生成驾驶报告。
结论

JSON Path节点是ThingsBoard规则链中一个强大而灵活的工具,它使得开发者能够轻松地从复杂的JSON数据中提取所需信息。无论是为了简化数据处理流程、提高系统的响应速度还是增强用户体验,合理使用JSON Path节点都能够显著提升你的IoT项目的效率和灵活性。随着物联网技术的发展,期待未来能看到更多创新的应用实例出现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-学生管理系统[初阶]

这次我们来尝试使用Java实现一下"学生管理系统",顾名思义,就是实现一个能用来管理学生各种数据的系统。在后续学习中我们将对"学生管理系统"进行两种实现: 📚 学生管理系统[初阶](不带模拟登录系统) &#…

衡石分析平台系统管理手册-智能运维之系统日志

系统日志​ 点击系统设置->系统日志 在这个页面,从时间,操作者, IP,行为,结果,类别,对象,描述等方面记录了用户行为,系统管理员可以从此页面针对整个系统的用户行为进行审计工作…

【C++】set/map 与 multiset/multimap

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:C 个人主页:Celias blog~ 目录 ​编辑 序列式容器和关联式容器 一、set 1.1 set介绍 1.2 …

大健康零售电商的智囊团:知识中台的应用与影响

在数字化浪潮席卷各行各业的今天,大健康零售电商行业也在积极探索转型升级的新路径。知识中台,作为一种集知识管理、数据挖掘与智能化应用于一体的新型技术架构,正逐渐成为推动这一转型的关键力量。本文将深入探讨知识中台在大健康零售电商中…

Light灯光组件+组件的相关操作+游戏资源的加载

Light灯光组件 Type: Directional:平行光,模仿的是太阳光 Spot:聚光灯 Area:区域光 Color: 颜色值 Mode: RealTime:实时 Mix:混合 Baked:烘焙 Intersity: 光照强度 Indirect Multiplier:光照强度乘数 Shadow Type:影子设置:…

CV方法再学习

轻量化模型 Mobile系列(V1~V3) MobileNetV1 MobileNetV1之所以轻量,与深度可分离卷积的关系密不可分 深度可分离卷积 主要是两种卷积变体组合使用,分别为逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise C…

Nginx UI 一个可以管理Nginx的图形化界面工具

Nginx UI 是一个基于 Web 的图形界面管理工具,支持对 Nginx 的各项配置和状态进行直观的操作和监控。 Nginx UI 的功能非常丰富: 在线查看服务器 CPU、内存、系统负载、磁盘使用率等指标 在线 ChatGPT 助理 一键申请和自动续签 Let’s encrypt 证书 在…

八、Python基础语法(判断语句-下)

一、if elif else 结构 应用场景:多个判断条件下,并且这些判断条件存在一定的关联。 语法: elif也是python中关键字,后面跟一个判断条件,判断条件后面跟冒号 存在冒号,需要换行缩进,处于elif…

金九银十软件测试面试题(800道)

今年你的目标是拿下大厂offer?还是多少万年薪?其实这些都离不开日积月累的过程。 为此我特意整理出一份(超详细笔记/面试题)它几乎涵盖了所有的测试开发技术栈,非常珍贵,人手一份 肝完进大厂 妥妥的&#…

QD1-P5 HTML 段落标签(p)换行标签(br)

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p5 ‍ 本节学习 HTML 标签&#xff1a; p标签 段落br标签 换行 ‍ 一、p 标签-段落 1.1 使用 p 标签划分段落 <p>段落文本</p>示例 <!DOCTYPE html> <html><head><meta charset"…

算法剖析:滑动窗口

文章目录 前言一、长度最小的子数组二、无重复字符的最长子串三、最大连续1的个数 III四、将 x 减到 0 的最小操作数五、水果成篮六、找到字符串中所有字母异位词七、串联所有单词的子串八、最小覆盖子串总结 前言 滑动窗口可以看作为一种特殊的通向双指针&#xff0c;这两个指…

轻松翻译:顶尖翻译器评测!

在工作生活中如果遇到翻译需求&#xff0c;就少不了一些好用的翻译器&#xff0c;接下来是我们就来为大家推荐几款市面上口碑极佳的翻译软件&#xff01; 福昕在线翻译 直达链接&#xff1a; fanyi.pdf365.cn/ 操作教程&#xff1a;立即获取 福昕在线翻译是一款基于云端技…

关于部分股市买卖的演示和总结

本文是对上一文的补充&#xff1a;一个普通人的投资认知-CSDN博客 一、简介 假设公司A 向某交易所发行100股股票&#xff0c;每股5元&#xff0c;预计将融资500元。 股民a买了10股&#xff0c;付出50元。 股民b买了20股&#xff0c;付出100元。 股民c买了30股&#xff0c;付出…

【3维视觉】超级好用的3D模型交互式可视化工具viser

项目地址 https://github.com/nerfstudio-project/viser 功能 SMPL模型可视化编辑 点云可视化 3DGS实时渲染播放 安装和使用 安装viser git clone https://github.com/nerfstudio-project/viser.git使用 官方说明文档 1. SMPL模型可视化编辑 先下载SMPLX人体模型 下载解…

290. 单词规律【哈希表】

文章目录 290. 单词规律解题思路Go代码 290. 单词规律 290. 单词规律 给定一种规律 pattern 和一个字符串 s &#xff0c;判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向…

小程序知识付费的优势 知识付费服务 知识付费平台 知识付费方法

在信息爆炸的时代&#xff0c;知识如同繁星点点&#xff0c;璀璨而散落。如何在这片知识的海洋中精准捕捞&#xff0c;成为现代人追求自我提升的迫切需求。小程序知识付费&#xff0c;正是这样一座桥梁&#xff0c;它以独特的优势&#xff0c;让智慧触手可及&#xff0c;轻触未…

metahuman如何导入UE5

1.启动 通过EPIC启动UE5(UE5内置有Bridge, 但是UE4是需要单独下在Bridge软件) 2.打开Quixel Bridge 在window(窗口)中打开Quixel Bridge 3.Bridge界面 在弹出的Bridge界面选择模型 需要先下载&#xff0c;然后再导入 4.下载模型 点击需要的模型右上方的绿色箭头下载 5.下…

TensorRT-LLM七日谈 Day1

Flag 利用7天时间熟悉tensort-llm的代码架构&#xff0c;cublas的使用方式以及flash attention的调优。 项目链接 https://github.com/NVIDIA/TensorRT-LLM 安装 https://nvidia.github.io/TensorRT-LLM/installation/linux.html 它的安装主要是需要下载相应的docker镜像&am…

金奖!实在Agent智能体问鼎华为昇腾AI创新大赛

为推动浙江计算产业高质量发展&#xff0c;激发行业数智化原生创新与规模化应用&#xff0c;华为于10月10日在杭州举办“激发原生创新&#xff0c;共赢数智浙里”浙江鲲鹏昇腾产业与人才创新论坛暨鲲鹏&昇腾创新大赛2024浙江总决赛颁奖仪式。 中国工程院院士、浙江大学教授…

STM32学习--5-1 对射式红外传感器计次

接线图 原理图&#xff1a; CountSensor.c #include "stm32f10x.h" // Device headeruint16_t CountSensor_Count;void CountSensor_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); // 开启APB2Periph外设GPIOB时钟RCC_APB2Pe…