thinsPanel中node-red的引用及提供的功能

543 阅读4分钟

thinsPanel中node-red的引用及提供的功能

1.  引用

在thingsPanel平台“规则引擎”模块-接入引擎-编辑规则跳转到node-red页面进行编辑。

2.  node-red在thingsPanel中使用

Node-RED是一个构建物联网应用的编程工具,提供了一个基于浏览器的流程编辑器,通过拖拽连接节点的编程方式,将硬件设备、API和在线服务连接在一起,可以一键部署运行,创建好的流程还可以通过导出导入JSON文件轻松实现程序移植。

Node-RED所在层:

(1)  node-red基本

左侧为节点栏,可拖不同节点到中间画布,通过双击节点修改配置。

基本节点:

inject-输入,debug-输出,function-函数,switch-判断,change-改变属性或者属性值

在thingsPanel中使用node-red目前需求上思路:

首先需要个触发器来定时触发采集行为,再借助OPC DA采集模块进行数据采集,然后将采集到的数据进行处理,处理完后进行入库和页面展示。

基于这个思路,我们从Node-RED节点组件库中可以快找触发器及其详细的介绍:

点击右上角栏目icon选择设置进入控制面板-安装搜索opcua选择node-red-contrib-opcua进行安装,安装成功后就会出现图中标记3:

(2)  配置节点

配置opcua节点(ThingsPanel平台对接opc-ua设备需先安装opc-ua客户端UaExpert)

UaExpert下载地址:uaexpert-bin-win32-x86-vs2008sp1-v1.6.3-448.zip

UaExpert使用方法:Uaexpert操作手册

其中Item中的数据和UaExpert的NodeId数据保持一致,数据类型Type和UaExpert的Datatype保持一致,name可以随意填写。

配置opcua-client节点:

配置debug节点:

(3)  运行opcua读取数据

部署完成后,单击注入后,调试窗口显示出数据。

3.  node-red常用节点

(1)  http in(设置请求方式、填写URL,最后组成的api为http://+node-red的ip+端口+URL)

例如:node-red在本地安装即本地ip地址,若本地ip为192.x.x.x,端口为1880

则图中请求的url为192.x.x.x:1880/test/api

(2)  http resonse(设置状态码和响应头)

若需要接口返回相关内容,可以在两个节点之间添加function节点,通过msg.payload进行输出

(3)  http request(前面定义了接口,可以通过http request进行验证接口的可行性)

4.  node-red的API

Node-RED管理API使用settings.js文件中的adminAuth属性进行保护。

node-red管理api的方法:Node-RED : 管理API方法

Runtime API(运行API):可以在将Node-RED嵌入到另一个应用程序时使用(Node-RED可以使用标准的require模块加载器加载到另一个node.js应用程序中--在thingsPanle中引入 import RED from "@/core/services/res.module"

)。

常用api:(绿色为在thingsPanle中使用的api)

(1)  .init(server,settings) --- node-red初始化

(2)  .start() --- node-red开启

(3)  .stop() --- node-red关闭

(4)  .server --- http实例

(5)  .setRedToken() --- 设置node-red的令牌(权限的认证)

(6)  .getRedToken() --- 获取node-red的令牌(权限的认证)

(7).loadFlows() --- 加载数据流配置

(8).startFlows() --- 启动流配置

(9).stopFlows() ---停止流配置

(10).setFlows(flows,type) ---设置活动流配置

(11).getFlows() ---获取活动流配置

(12).addFlow(flow) ---添加新的流到配置中

(13).getFlow(id) ---获取活动配置中的流

(14).updateFlow(id,flow) ---更新配置中已有的流

(15).removeFlow(id) ---从激活配置中移除一个流

(16).getNodeInfo(id) ---- 获取节点集信息

(17).getNodeList() --- 获取所有可用节点的列表

(18).getModuleInfo(id) ---- 获取节点模块信息

(19).getNodeConfigs() --- 获取所有活动节点集的HTML配置

(20).getNodeConfig(id) --- 获取特定节点集的HTML配置

5.  thingsPabel中配置node-red权限

node-red默认使用http请求:

(1)  创建node-red的axios实例

(2)  获取认证token--使用red_axios(即(1)中的axios实例,Alot项目中transpond.js文件中进行配置)

6.  thingsPanle应用中node-red操作流程

(1)  创建设备

依次点击:设备管理-新增项目-保存--设备管理-创建设备-编辑参数--选择传输协议和认证方式

(2)  创建规则引擎

创建接入规则-编辑(跳转到node-red编辑器中),拖拽节点编辑相应规则

数据传输流程如下:

添加mqtt out节点:

编辑节点:

下拉框新建选项--服务端写上数据要传输的服务器地址和端口,

点击图二的编辑按钮:

在安全栏写上(1)中MQTT用户名

在主题处写上(1)中主题

点击右上角部署-点击注入,数据已传入所写服务器

(3)  数据管理菜单

点击数据管理,搜索上面所配置设备名称,查看传输数据。

1处是节点,2处是值.