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

nVisual集成node-red 实现数据采集

node-red是nvisual系统用于连接硬件设备以及第三方系统的重要组成部分,咱们来介绍一下如何使用node-red实现数据采集。

首先先来简单介绍一下node-red的通用使用方式。在页面的左侧,包含很多的节点,每个节点相当于一个函数(方法),通常用于获取数据或者处理数据。节点之间可以通过连线的形式进行数据的传递,从而形成一个“流”,我们可以通过这个”流“来实现各式各样的功能。

接下来我们详细介绍一下如何通过node_red来实时采集nvisual设备在线状态数据。

实时采集nvisual设备在线状态数据,即根据nvisual系统的设备ip列表,监测这些设备状态的在线情况并显示在系统中。首先对此功能进行一下分解:首先需要获取nvisual系统所有设备的ip列表、检测设备的在线状态、对比设备在系统中的原有状态与检测的状态是否一致,最后向系统中写入设备属性并发送提示通知。

下面根据功能的分解来具体实现,首先通过inject节点来设置每隔30秒来监测一下设备状态,此时间间隔可以自行设置。双击inject节点,进入设置界面(所有节点都是通过双击节点的形式进入设置界面),可设置周期性执行以及时间间隔。

之后在获取nVisual设备ip列表之前,需要通过nVisual-getToken节点来登录用户名密码来登录。在nVisual-getToken节点中,打开设置界面,设置连接地址以及用户名、密码,点击完成即可登录成功。

接下来可以通过get-nVisual-ip节点来获取nVisual设备的所有ip。该节点通过设置传入对象类型,可以获取该对象类型下的nVisual系统所有的IP以及各个IP当前在nVisual系统中的监测状态值并返回在msg.payload变量中,数据结构为一个数组。

随后我们遍历从get-nVisual-ip节点返回的数组,将每一个IP通过ui ping节点以ping的方式监测设备是否在线,通过ui ping的使用文档我们的值,需要传入ip的遍变量为msg.host。因此我们将遍历得到的每一个ip来msg.host的变量名传递给ui ping节点,随后即可得出该ip的设备是否在线。

将检测到的在线情况与nvisual系统中的进行对比,如果一致,则跳过。如果不一致,则通过write-propertie节点写入属性值。通过查看使用文档,我们可以看到,可以使用msg.nvisual.id、msg.nvisual.ip、msg.nvisual.propery和msg.nvisual.properyValue写入目标值。

另外可以通过和send-message节点来发送通知信息。通过查看使用文档,我们可以看到,可以使用msg.nvisual.title、msg.nvisual.content、msg.nvisual.noticePop和msg.nvisual.userId设置目标值。这里需要注意的是nvisual系统管理员权限的用户能收到所有的消息,普通权限的用户只能收到关于自己的消息。

通过以上步骤,我们便可以实现通过node_red来实时采集nvisual设备在线状态数据。在node-red中,每一个节点都有着非常详细的使用介绍,主要是了解每个节点的用途以及接收和发送数据的传参变量名称。下面来介绍一下关于nVisual系统的节点使用:

1. nVisual-getToken

功能:通过用户名和密码来获取nVisual的Token

说明:每条需要调用nVisual接口的流程都需要事先该节点。用于收集用户的用户名和密码以及api的连接地址,保证token的有效性以支撑整条流程的正常运行。

## 2. get-nVisual-ip

功能:获取nVisual的所有IP

说明:通过传入对象类型,可以获取该对象类型下的nVisual系统所有的IP以及各个IP当前在nVisual系统中的监测状态值

3. read-properties

功能:获取nVisual的属性值

说明:该节点的作用为读取nVisual的节点的属性值,您必须输入属性名称的变量,而IP或ID两者选其一进行输入即可,如果IP以及ID都有输入,则以IP为准。

输入:使用msg.nvisual.id和msg.nvisual.ip和msg.nvisual.propery设置目标值,但是静态配置的值具有优先权。

输出:msg.nvisual.id(节点的ID)、msg.nvisual.ip(节点的IP)、msg.property.key(节点的属性名称)、msg.property.value(节点的属性值)

4. write-properties

功能:写入nVisual的属性值

说明:该节点的作用为写入nVisual的节点的属性值,必须输入属性名称、属性值两个变量值,而IP或ID两者选其一进行输入即可,如果IP以及ID都有输入,则以IP为准。

输入:使用msg.nvisual.id、msg.nvisual.ip、msg.nvisual.propery和msg.nvisual.properyValue设置目标值,但是静态配置的值具有优先权。

输出:msg.nvisual.id(节点的ID)、msg.nvisual.ip(节点的IP)、msg.property(节点的属性名称)、msg.property.value(节点的属性值)

5. send-message

功能:发送nVisual的消息

说明:该节点的作用为写入nVisual的消息标题、消息内容、接收消息的用户id以及是否弹出,默认为弹出。用户id可通过nVisual系统中的权限管理来查看

输入:使用msg.nvisual.title、msg.nvisual.content、msg.nvisual.noticePop和msg.nvisual.userId设置目标值,但是静态配置的值具有优先权。

6. write-port-property

功能:批量写入nVisual设备的端口属性值

说明:该节点的作用为批量写入nVisual设备的端口属性值,必须输入端口名称、属性名称、属性值三个变量值,而IP或ID两者选其一进行输入即可,如果IP以及ID都有输入,则以IP为准。

输入:使用msg.nvisual.id、msg.nvisual.ip、msg.nvisual.ports、msg.nvisual.properyValue和msg.nvisual.propery来分别设置id、ip、端口名称、属性值、属性名称等目标值,但是静态配置的值具有优先权。

主要注意的是当使用msg.nvisual.ports、msg.nvisual.properyValue时,需要传递一个数组

7. nVisual-websocket

功能:连接nVisual系统的WebSocket

说明:该节点在每次部署时自动连接,连接成功后当每次收到WebSocket消息则通过msg.webSocket变量来输出。


http://www.kler.cn/a/421167.html

相关文章:

  • 【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度
  • 经典C语言代码——part 19(链表)
  • Shire 1.1 发布:更强大的交互支持,升级 AI 智能体与 IDE 的整合体验
  • 时间表格Java
  • BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比
  • vue实现懒加载
  • 利用HTML5获取店铺详情销量:电商数据洞察的新纪元
  • 【算法】——前缀和
  • 利用Python爬虫获取亚马逊商品详情数据:一篇详细的教程
  • kafka-clients之CommonClientConfigs
  • 使用 Apache Commons IO 实现文件读写
  • 二叉树的前中后序遍历(非递归)
  • SpringBoot开发——整合Redis 实现分布式锁
  • Node.js实现WebSocket教程
  • C语言:指针与数组
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(七):JMeter断言
  • Python 网络爬虫高级教程:分布式爬取与大规模数据处理
  • C++ 游戏开发:跨平台游戏引擎的构建与优化
  • 【练习Day6】链表
  • Influxdb 架构
  • 华为HarmonyOS 让应用快速拥有账号能力 -- 3 获取用户手机号
  • C++中protobuf Message与JSON的互相转换
  • Android V GtsPermissionTestCases
  • 观成科技:寄生虫(APT-C-68)APT组织加密通信分析
  • 低资源部署 KubeSphere 4.1.2:2 核 4G 极简云原生实战
  • 16asm - 寻址