找回密码
 立即注册

微信扫码登录

搜索
查看: 87|回复: 2

[流程系列] 【教程】了解Node-Red中EG边缘网关-创建第一个流程(创建注入+调试+函数节点)

[复制链接]

2

主题

1

回帖

29

积分

新手上路

积分
29
金钱
26
HASS币
0
QQ
发表于 昨天 10:02 | 显示全部楼层 |阅读模式

概述
本章节主要介绍EG系列边缘网关编程界面,并创建了一个注入节点、调试节点、函数节点组成的流程
1. 进入编程界面



                               
登录/注册后可看大图
菜单栏:顶部的菜单栏,包含部署按钮以及主菜单(流程导入导出在菜单栏)
节点库:提供各种封装好功能的节点,供使用者调用
工作区:将节点拖入工作区,连线代表数据交互,即可实现自由编程
调试区:分为5个页面,分别是:信息窗口/帮助文档/日志窗口/配置节点/全局变量
2. 添加一个注入节点
注入节点允许你通过点击节点上的按钮或根据设置的时间间隔,将消息注入流程中
从节点库中选择注入节点并拖入到工作区,单击注入节点,调试区的帮助文档可以看到注入节点的功能描述

                               
登录/注册后可看大图
3. 添加一个调试节点
调试节点会在日志窗口显示所有收到的消息。默认情况下,只打印msg.payload,可以通过双击调试节点来设置想要打印的内容

                               
登录/注册后可看大图
4. 将两者连起来
将画布的注入节点和调试节点连接在一起,具体方法是:鼠标移动到注入节点的输出口,按住鼠标左键不放,拖拽到调试节点的输入口,松开鼠标即可

                               
登录/注册后可看大图
5. 部署
此时,节点和流程仅存在于工作区中。如果需要流程执行,必须点击部署按钮将程序固化到网关内

                               
登录/注册后可看大图
6. 测试
选中调试区的日志窗口,单击注入节点的左侧按钮,日志窗口会打印时间戳

                               
登录/注册后可看大图
7. 添加一个函数节点
你可以在函数节点里面通过JavaScript代码对消息进行处理
删除现有的连线(选择连线,在键盘上按Delete键)
在注入节点和调试节点之间连接函数节点
双击函数节点打开编辑对话框,将以下代码复制到对话框中,点击完成按钮关闭对话框,单击部署按钮
// Create a Date object from the payloadvar date = new Date(msg.payload);// Change the payload to be a formatted Date stringmsg.payload = date.toString();// Return the message so it can be sent onreturn msg;
现在,单击注入节点按钮时,日志窗口的消息已经被函数节点格式化为可读的时间戳

                               
登录/注册后可看大图
总结
本章节介绍了创建流程的基本概念,展示了如何使用注入节点手动触发流程,以及调试节点如何在日志窗口查看信息,同时还展示了如何使用函数节点对消息进行处理
源码
所有的流程支持以json格式导入导出,方便与其他人分享做好的流程。本章节的流程json文件如下,复制后在菜单栏右上角选择导入粘贴即可,导出同理
[{"id":"783c29e7b877e75e","type":"inject","z":"265cd2b9785ecf45","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":200,"wires":[["948ded5b0cd90f27"]]},{"id":"013be0bcfbabf68b","type":"debug","z":"265cd2b9785ecf45","name":"调试 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":550,"y":200,"wires":[]},{"id":"948ded5b0cd90f27","type":"function","z":"265cd2b9785ecf45","name":"函数计算 1","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":200,"wires":[["013be0bcfbabf68b"]]}]

                               
登录/注册后可看大图

注意
其他的节点都可以理解为封装好的函数节点





回复

使用道具 举报

yybl 手机认证

4

主题

160

回帖

1858

积分

金牌会员

积分
1858
金钱
1694
HASS币
0
发表于 昨天 22:03 | 显示全部楼层
节点怎么搞的中文?
回复

使用道具 举报

14

主题

1622

回帖

5342

积分

论坛元老

积分
5342
金钱
3706
HASS币
0
发表于 昨天 22:27 | 显示全部楼层
我想问的是,如何自己做一个,类似于函数计算的节点?我想编辑一个符合我常用习惯的节点。比如zigbee2mqtt的灯,我就不用通过ha来控制了,直接nr的mqtt来控制。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-8-20 21:21 , Processed in 0.204054 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表