当前位置: 首页 > news >正文

ThingsBoard规则链节点:RPC Call Reply节点详解

引言

1. RPC Call Reply 节点简介

2. 节点配置

2.1 基本配置示例

3. 使用场景

3.1 设备控制

3.2 状态查询

3.3 命令执行

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,RPC Call Reply 节点用于回复远程过程调用(RPC)请求,这对于实现实时交互和设备控制非常有用。

ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计34条视频,包括: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. RPC Call Reply 节点简介

RPC Call Reply 节点的主要作用是在规则链执行过程中回复远程过程调用(RPC)请求。通过 RPC Call Reply 节点,可以将处理结果发送回发起 RPC 请求的客户端或设备,实现双向通信和实时交互。这在设备控制、状态查询和命令执行中非常有用。

2. 节点配置
  • 请求ID:指定要回复的 RPC 请求的 ID,通常从消息中获取。
  • 响应内容:设置要发送的响应内容,可以是静态值、动态表达式或消息中的属性。
2.1 基本配置示例
{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": "${msg.result}"}
}
3. 使用场景

RPC Call Reply 节点在多种场景下都非常有用,特别是在需要实现实时交互和设备控制时。以下是一些具体的应用场景:

3.1 设备控制

在设备控制系统中,需要根据用户的指令控制设备的状态,例如开关灯、调节温度等。通过 RPC Call Reply 节点,可以将控制结果反馈给用户。

{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": "Light turned on"}
}
3.2 状态查询

在状态查询系统中,需要根据用户的请求查询设备的状态,例如当前温度、湿度等。通过 RPC Call Reply 节点,可以将查询结果反馈给用户。

{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": {"temperature": "${msg.temperature}","humidity": "${msg.humidity}"}}
}
3.3 命令执行

在命令执行系统中,需要根据用户的指令执行特定的操作,例如重启设备、更新固件等。通过 RPC Call Reply 节点,可以将执行结果反馈给用户。

{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": "Device restarted successfully"}
}
4. 实际项目中的应用

下面是一个实际项目中的例子,展示如何在智能家居系统中使用 RPC Call Reply 节点。

4.1 项目背景

假设我们正在开发一个智能家居系统,该系统需要支持用户通过手机应用控制家中的灯光、空调等设备,并查询设备的状态。此外,还需要实现实时反馈,确保用户能够及时了解操作结果。

4.2 项目需求
  • 支持用户通过手机应用控制家中的灯光、空调等设备。
  • 支持用户查询设备的状态,例如当前温度、湿度等。
  • 实现实时反馈,确保用户能够及时了解操作结果。
4.3 实现步骤
  1. 部署设备

    • 在家中安装智能灯光、空调等设备,并连接到 ThingsBoard 平台。
  2. 创建规则链

    • 添加 RPC Call Reply 节点,用于回复 RPC 请求。
    • 添加其他处理节点,如设备控制、状态查询和数据存储。
  3. 配置规则链

    • 配置 RPC Call Reply 节点,回复控制灯光的 RPC 请求。
{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": "Light turned on"}
}
  • 配置 RPC Call Reply 节点,回复查询温度的 RPC 请求。
{"requestId": "${msg.rpcRequestId}","response": {"status": "SUCCESS","result": {"temperature": "${msg.temperature}","humidity": "${msg.humidity}"}}
}
  1. 处理数据
    • 根据用户的指令,控制设备的状态并生成响应。
// 控制灯光的 RPC 方法
public void controlLight(String action) {if ("on".equals(action)) {// 打开灯光turnOnLight();sendRpcReply("SUCCESS", "Light turned on");} else if ("off".equals(action)) {// 关闭灯光turnOffLight();sendRpcReply("SUCCESS", "Light turned off");}
}// 发送 RPC 回复
private void sendRpcReply(String status, String result) {JsonNode response = JsonNodeFactory.instance.objectNode().put("status", status).put("result", result);rpcCallReplyNode.reply(msg.getRpcRequestId(), response);
}
  1. 前端界面

    • 开发一个前端界面,显示设备的状态和控制按钮。
    • 提供一个界面,让用户能够查看和管理设备的状态。
  2. 数据查询

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

RPC Call Reply 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助回复远程过程调用(RPC)请求,实现实时交互和设备控制。通过合理地使用 RPC Call Reply 节点,可以更好地管理和自动化系统中的各种操作。无论是在智能家居、工业监控还是其他物联网应用中,RPC Call Reply 节点都能发挥重要作用。

  🌐 项目地址

Things Vueicon-default.png?t=O83Ahttp://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index

账号:admin@thingsboard.org 
密码:admin123456

🎽 安装使用

获取项目代码:

代码地址icon-default.png?t=O83Ahttps://gitee.com/tpsonwell_admin/thingsvue

相关文章:

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备管理…...

【AI换装整合包及教程】OOTDiffusion:以AI技术引领的时尚换装革命

在当今数字化快速发展的时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活。从智能家居到自动驾驶,从在线教育到虚拟现实,AI的应用范围正在不断扩展。而在时尚领域,一款名为OOTDiffusion&#xff0…...

排序算法详细总结

算法 定义:算法是解决特定问题的明确步骤集合。算法的效率通常用时间复杂度和空间复杂度来衡量。 排序算法 定义:排序算法是计算机科学中用于对元素序列进行排序的一系列算法。排序算法在各种应用中都非常常见,从简单的数据处理到复杂的数…...

uniapp MD5加密

安装: npm install js-md5 -D 引入: import Md5 from js-md5 需求加密一个对象, login_form: {openId: 123456789,phone: ,scenario: 656677,phoneSessionKey: ,openIdSessionKey: ,timeStamp: , }, //10位时间戳(秒)…...

提升视觉回归测试体验:Cypress 插件推荐

项目介绍 在现代前端开发中,视觉回归测试是确保用户界面在不同版本之间保持一致性的关键步骤。然而,传统的视觉回归测试工具往往复杂且难以使用。为了解决这一问题,我们推荐一款专为 Cypress 设计的插件:Cypress Plugin Visual Re…...

fastbootd模式刷android固件的方法

1. fastbootd追根溯源 Google在Android 10上正式引入了动态分区机制来提升OTA的可扩展性。动态分区使能后:andorid系统可以在开机阶段动态地进行分区创建、分区销毁、分区大小调整等操作,下游厂商只需要规划好super分区的总大小,其内部的各个…...

基于C#实现Windows后台窗口操作与图像处理技术分析

在Windows编程中,操作后台窗口是一项复杂而有用的技术。它可以用来自动化用户界面测试、应用程序机器人等场景。本文将深入探讨如何在C#中绑定后台窗口、获取后台窗口界面图片,以及在图片中寻找指定图标并获取坐标。本技术文章结合最先进的资料与实践经验…...

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS(基本输入输出系统)是计算机启动时运行的第一个程序,它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说,有时可能需要进入 BIOS 进行一些特定的设置调整,比如更改启动顺序、调整性能选项或解决硬件兼容性问题…...

数据结构之二叉树——堆 详解(含代码实现)

1.堆 如果有一个关键码的集合 K { , , , … ,},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,则称为小堆( 或大堆 ) 。将根节点最大的堆叫做最大堆或大根堆,根节点最小的…...

推荐一款面向增材制造的高效设计平台:nTopology

nTopology是一款面向增材制造的高效设计平台,平台预置了大量增材制造常用的设计工具包,工程师通过调用若干个预置工具包、或自主开发定制的工具包,建立一个工作流,实现复杂几何结构的参数化设计。nTopology集合了的强大几何建模和…...

SQL,力扣题目1767,寻找没有被执行的任务对【递归】

一、力扣链接 LeetCode_1767 二、题目描述 表:Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…...

JavaScript数据类型- Symbol 详解

文章目录 前言1.唯一性2. 描述3. 作为对象属性键4. 全局注册6. 不可变性7. 隐式转换 前言 Symbol是ES6新增内容,代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题 在JavaScript发展的过程中,其中的ES6带…...

WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放

结合bv号 改成以下嵌入式代码&#xff08;自适应屏幕大小,取消自动播放&#xff09; <iframe style"width: 100%; aspect-ratio: 16/9;" src"//player.bilibili.com/player.html?isOutsidetrue&bvidBV13CSVYREpr&p1&autoplay0" scrolling…...

11.6 校内模拟赛总结

打的很顺的一场 复盘 7:40 开题&#xff0c;看到题目名很interesting T1 看起来很典&#xff0c;中位数显然考虑二分&#xff0c;然后就是最大子段和&#xff1b;T2 构造&#xff1f;一看数据范围这么小&#xff0c;感觉不是很难做&#xff1b;T3 神秘数据结构&#xff1b;T…...

Redis常用的五大数据类型(列表List,集合set)

简介 List 的特点&#xff1a;单键多值。底层实际是个双向链表&#xff0c;对两端的操作性能很高&#xff0c;通过索引下标的操作中间的节点性能会较差。 Redis 列表是简单的字符串列表&#xff0c;按照插入顺序排序。你可以添加一个元素到列表的头部&#xff08;左边&#xff…...

Ubuntu 20.04 部署向量数据库 Milvus + Attu

前言 最开始在自己的办公电脑&#xff08;无显卡的 windows 10 系统&#xff09; 上使用 Docker Desktop 部署了 Milvus 容器&#xff0c;方便的很&#xff0c; 下载 Attu 也很方便&#xff0c;直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来&#xff0c;使用起来感…...

实现数传数据转网口(以太网)和遥控器SBUS信号转串口的功能

为了帮助你实现数传数据转网口&#xff08;以太网&#xff09;和SBUS信号转串口的功能&#xff0c;这里提供一个基本的框架。我们将使用STM32微控制器来完成这些任务。假设你已经具备了STM32的基本开发经验&#xff0c;并且已经安装了相应的开发环境&#xff08;如STM32CubeIDE…...

APP 后台广告位配置的关键要素与策略

在当今数字化营销的浪潮中&#xff0c;APP 作为重要的信息传播渠道&#xff0c;其后台广告位的配置显得尤为关键。这不仅影响着广告的展示效果&#xff0c;还直接关系到用户体验和平台收益。 首先&#xff0c;了解目标受众是配置广告位的基础。通过对 APP 用户的行为数据进行分…...

分布式数据库概述

分布式数据库概述 分布式数据库是一种将数据分散存储在多个物理节点上的数据库系统,这些节点通过网络相互连接,形成一个逻辑上统一的数据库系统。它旨在提高数据的可用性、可靠性、性能和可扩展性,是现代大数据和云计算环境下不可或缺的重要技术。 一、分布式数据库的核心…...

用通义灵码帮助实现校验bpmn.js当前画布上只能有一个开始节点的功能

最终代码&#xff1a; const elementRegistry this.bpmnModeler.get(elementRegistry);// 获取所有元素const allElements elementRegistry.getAll();// 过滤出开始节点const startEvents allElements.filter(element > element.type bpmn:StartEvent);// 校验开始节点的…...

OKHTTP断点续传

OKHTTP断点续传 文章目录 OKHTTP断点续传HTTP断点续传知识点RangeContent RangeEtag&If-Range&#xff08;文件唯一标志&#xff09; OKHTTP断点下载OKHTTP 简单短断点下载代码示例 Android 断点续传一直是面试的高频问点&#xff0c;这里从HTTP断点续传知识和Android续传思…...

软件测试学习笔记丨Flask操作数据库-ORM

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/23426 什么是持久化 是把数据保存到可永久保存的存储设备中&#xff08;比如磁盘&#xff09;。持久化的主要应用是将内存中的数据存储在关系型数据库中&#xff0c;当然也可以存储在磁盘文件…...

ABAP 开发的那些小技巧

在对话框程序中的选择屏幕添加图标 要在选择屏幕中添加图标&#xff0c;其中包括参数&#xff1a; 在参数的选择文本中或选择选项(select-option)中写入 01 或选择选项&#xff1a; 您可以使用 01、02、03&#xff0c;依此类推&#xff0c;以获取不同的不同图标。 在运行时…...

电科金仓(人大金仓)更新授权文件(致命错误: XX000: License file expired.)

问题:电科金仓(人大金仓)数据库链接异常,重启失败,查看日志如下: 致命错误: XX000: License file expired. 位置: PostmasterMain, postmaster.c:725 解决方法: 一、下载授权文件 根据安装版本在官网下载授权文件(电科金仓-成为世界卓越的数据库产品与服务提供商)…...

玩转「HF/魔搭/魔乐」平台

模型下载 Hugging Face 下载到 GitHub CodeSpace CodeSpace创建环境&#xff1a; # 安装transformers pip install transformers4.38 pip install sentencepiece0.1.99 pip install einops0.8.0 pip install protobuf5.27.2 pip install accelerate0.33.0下载internlm2_5-7b…...

鸿蒙系统的优势 开发 环境搭建 开发小示例

HarmonyOS是面向多智能终端、全场景的分布式操作系统,为消费者提供跨终端的无缝体验.华为开发者联盟从HarmonyOS应用设计、开发、测试、推广变现等环节全方位助力开发者。 开发者可以通过以下步骤学习鸿蒙系统的开发&#xff1a; 基础理论学习&#xff1a; 了解鸿蒙系统概述&a…...

python批量合并excel文件

当工作中发现有多个excel表需要进行相同的操作或者需要汇总在一起&#xff0c;一个一个处理太费时间&#xff0c;以下的python代码能够帮你解决这个问题~ import pandas as pd import os# 设置Excel文件所在的文件夹路径和合并文件的输出路径 folder_path D:\\Desktop\\dat…...

AWS S3 JavaScript SDK(v3)常用操作

安装 aws s3 sdk npm install aws-sdk/client-s3配置 创建 ~/.aws/credentials 文件&#xff0c;添加以下配置项&#xff1a; [default] aws_access_key_id<...> aws_secret_access_key<...> region<...>S3 SDK常用桶操作 获取桶列表 import {S3Client,…...

数据结构——图的基本操作

文章目录 1.图2.图的结构体定义3.图的初始化4.添加顶点、删除顶点4.1添加顶点4.2删除顶点 5.添加边、删除边5.1添加边5.2删除边 6.打印图7.main函数 在生命旅途中&#xff0c;我们就像是一个个节点&#xff0c;被无数看不见的边相连。每一次的相识与相离&#xff0c;都在这张巨…...

掌握全球速递:在表格中高效利用国际快递公式查询快递

在当今全球化的商业环境中&#xff0c;国际快递服务已成为连接世界各地企业与个人的重要桥梁。无论是跨国企业间的货物运输&#xff0c;还是个人用户的海外购物需求&#xff0c;国际快递都扮演着不可或缺的角色。然而如何快速准确地获取大量国际快递的物流轨迹成为了一个挑战。…...