Node-RED功能介绍与使用
目录
概述
为简化对网关的数据调用及开发,星纵物联LoRaWAN®网关在60.0.0.35版本开始引入Node-RED功能,并基于网关开发了对应的功能模块,可通过这些模块直接调用并进行功能开发。本文主要介绍针对网关开发的Node-RED功能模块以及部分应用实例供参考。
准备
- 星纵物联LoRaWAN®网关
步骤
1.测试示例
1.1 配置路径
- 进入网关“App>Node-RED”页面启用Node-RED后点击保存。由于Node-RED需要调用到网络上面的组件,所以需要网关能正常连网才能使用些功能。
- 点击操作界面即可进入Node-RED操作界面。
1.2 操作说明
Node-RED里主要由以下几个区域组成,使用时将控件区的组件拖入到工作区,并通过组件间连线,完成组件相互的的触发或数据的处理转发。
注意:每次进行控件间的调整之后,一定需要点击右上角的“部署”完成配置的部署。否则该次调整并不会实际生效。
Node-RED里面具有众多的功能模块,以下将介绍网关上几个比较典型的组件。了解模块具体功能只需将鼠标移到对应的模块,就会弹出对应模块的功能简介,或者点击右侧的图标了解。
1.3 网关组件介绍
1.3.1 LoRa Input
LoRa Input主要是输出网关内置Network Server添加的节点上报所有数据。可以将该模块连接至“debug”模块,通过右侧的调试窗口查看该组件的输出情况。
1.3.2 LoRa Output
LoRa Output组件在触发之后会下发指定数据给某一台或多台节点设备。如图若组件配置后,当触发时会往设备发送数据eeee。
网关内置Network Server数据流可以看到数据正常下发,实际下发数据以具体节点接收指令为准。
1.3.3 Device Filter
Device Filter设备过滤器,通过设备的deveui进行过滤,只输出所选deveui的节点设备的数据。
1.3.4 Decoder
Decoder模块主内置星纵物联节点设备的数据解析器,可以将原始数据进行解析。
注意:该模块只适用于星纵物联节点设备,其他第三方节点设备可用function模块代替。
1.3.5 GW Info
勾选的网关事件类型,当网关发生对应事件时,该模块会输出对应的事件数据。
1.3.6 Email Output
当该组件触发时,会向所设定的邮箱发送指定内容邮件。使用该组件前,需要在网关配置界面中的‘系统-常规-SMTP’中设置对应的SMTP客户端才能够正常发送。
1.3.7 SMS Input
当外部设备发送短信至该网关上时,该组件会输出如示例中的内容,其中payload为短信内容。
1.3.8 SMS Output
当该组件触发时会向指定的手机号发送所设定的短信内容。
2.配置实例
2.1 MQTT转发
通过mqtt out模块可以将数据推送到对应的MQTT Broker。以下是MQTT转发示例。部署之后会将网关内部解析好的数据转发至MQTT服务器上。
如图配置mqtt out模块中的MQTT服务器信息
通过MQTT.fx软件模拟客户端接入至同一服务器中可观察MQTT数据的接收数据情况。
2.2 TCP转发
通过tcp out模块可以实现将网关数据转发至TCP服务器中,可参考以下截图搭建TCP转发模型。在tcp out模块中配置tcp server信息,当成功连接上TCP服务器时会如图显示已连接。
在function模块中输入如下语句,即可转发payload内所有内容。
return {payload:JSON.stringify(msg.payload) } ;
2.3 本地存储
通过node-red的file模块可实现数据的本地存储,创建如图一条流程进行数据存储。
function模块中输入以下函数
var msg1 = {payload:{temperature:msg.payload.temperature,time:msg.time}};
return msg1;
对file模块进行对应配置,配置成功后该文件会如图生成在根目录中
3.debug使用实例
1. 创建一个如下图所示的 Node-RED 流:
- LoRa 输入:接收 LoRa数据,请确保在使用此节点之前启用网络服务器模式。
- Device Filter (Optional):过滤掉一个或多个特定 LoRaWAN®节点的数据
- debug:在 debug 侧边栏选项卡和运行时日志(可选)中显示选定的消息属性。可以将其添加到 LoRa Input (LoRa 输入)节点或 Device Filter (设备过滤器)节点以便于通过日志排查错误。
2.选择任何调试节点,输出更改为完整的 msg 对象,然后单击Done保存设置。
3.单击Deploy以保存流程。然后进入debug页面,可以查看 object 部分内部的解码数据。
4.通过函数节点解码实例(以AM107为例)
1.创建一个如下图所示的 Node-RED 流:
2.在function控件中,添加AM107设备的载荷编解码,并将 AM100_TTN.js 解码器复制到function中。
可通过以下方式获取传感器载荷编解码器:
- 星纵物联设备数据解码器示例可参考:https://github.com/Milesight-IoT/codec/tree/release/vendors/milesight-iot 或Milesight/SensorDecoders – 码云 – 开源中国 (gitee.com)
- 若您对接的是第三方终端节点设备,请向第三方厂家获取解码器示例。
3.如果 decoder 是通过 Java Script 开发的,则函数标头将遵循此格式。
4.在函数末尾添加以下代码行。
5.单击Deploy以保存配置,可以在 debug 页面中检查解码后的数据。
6.如果需要在解码后的数据中添加特定的属性变量,如 RSSI、SNR 等。请在 “return decoded” 句子前添加以下语句:
7.单击Deploy保存流程,在 debug 页面查看带有特定属性变量的解码结果。