『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1580|回复: 7

[流程系列] 求教!NodeRED里的Loop节点如何控制启动停止?

[复制链接]

4

主题

15

帖子

102

积分

注册会员

Rank: 2

积分
102
金钱
87
HASS币
0
发表于 2022-5-27 10:50:10 | 显示全部楼层 |阅读模式
最近研究一个设备需要给它  逐条循环 发送代码,逐条发送已经用  split 节点实现了。然后后面想用 loop节点(node-red-contrib-loop) 来时代码循环发送,没想到出发循环之后无法停止,不知道哪里错了,求高人指点,真心拜谢!!本人不懂代码,研究了好久都没解决,特来求教。

前面的部分去掉了,只循环一个字符消息。
微信图片_20220527104148.png
不知道这样连接是否正确,我试过其他连接方式都没有循环输出。


loop节点也没有设置,就是默认的。
微信图片_20220527104226.png

按照说明文档,当有 break 命令注入时 就会停止,我试过好几种写法仍然无法停止。
微信图片_20220527104247.png
微信图片_20220527104307.png 微信图片_20220527104324.png

注入的break 也进入了循环
微信图片_20220527104428.png


[{"id":"24b722dec35294cf","type":"tab","label":"流程 1","disabled":false,"info":"","env":[]},{"id":"0723c60fa376e15c","type":"loop","z":"24b722dec35294cf","name":"","kind":"fcnt","count":"","initial":"1","step":"1","condition":"","conditionType":"js","when":"before","enumeration":"enum","enumerationType":"msg","limit":"","loopPayload":"loop-index","finalPayload":"final-count","x":630,"y":320,"wires":[["1ae11afc1d1b6946"],[]]},{"id":"7836154a88986f0b","type":"delay","z":"24b722dec35294cf","name":"","pauseType":"rate","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":true,"outputs":1,"x":630,"y":220,"wires":[["0723c60fa376e15c"]]},{"id":"1ae11afc1d1b6946","type":"debug","z":"24b722dec35294cf","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":950,"y":320,"wires":[]},{"id":"b5251f09dbaabbbc","type":"inject","z":"24b722dec35294cf","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"break","payloadType":"str","x":350,"y":340,"wires":[["0723c60fa376e15c"]]},{"id":"661c461a4312b893","type":"inject","z":"24b722dec35294cf","name":"","props":[{"p":"command","v":"break","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":350,"y":400,"wires":[["0723c60fa376e15c"]]},{"id":"fad02c4e294cd213","type":"inject","z":"24b722dec35294cf","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"AAAAAAABBBBBBB","payloadType":"str","x":340,"y":240,"wires":[["0723c60fa376e15c"]]}]


请教如何控制loop,或者有没有其他可以控制 开始、暂停的循环方式?
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-5-27 13:19:22 | 显示全部楼层
循环用 link 就完了。
Nero
回复

使用道具 举报

4

主题

15

帖子

102

积分

注册会员

Rank: 2

积分
102
金钱
87
HASS币
0
 楼主| 发表于 2022-5-27 18:06:43 | 显示全部楼层
neroxps 发表于 2022-5-27 13:19
循环用 link 就完了。

请教 link 如何控制开始、停止?
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-5-28 16:59:38 | 显示全部楼层
csphhing 发表于 2022-5-27 18:06
请教 link 如何控制开始、停止?

自己写 switch 判断咯。
Nero
回复

使用道具 举报

1

主题

173

帖子

1112

积分

金牌会员

Rank: 6Rank: 6

积分
1112
金钱
939
HASS币
0
发表于 2022-12-12 17:30:20 | 显示全部楼层
link不会用。。 还是用loop 吧,判断登出是按 msg.command = "break"; 来控制的
回复

使用道具 举报

41

主题

1282

帖子

5281

积分

论坛元老

Rank: 8Rank: 8

积分
5281
金钱
3994
HASS币
20
发表于 2022-12-12 21:44:43 | 显示全部楼层
loop的循环在第二个输出,上面是输出最后循环结束的状态
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

41

主题

1282

帖子

5281

积分

论坛元老

Rank: 8Rank: 8

积分
5281
金钱
3994
HASS币
20
发表于 2022-12-12 21:45:55 | 显示全部楼层
loop节点作者详细介绍了使用方法,又关上有视频,
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

2

主题

24

帖子

90

积分

注册会员

Rank: 2

积分
90
金钱
66
HASS币
0
发表于 5 天前 | 显示全部楼层
本帖最后由 yjl 于 2024-4-18 16:44 编辑

时隔两年我才开始学习
不得不说,你是个真大佬啊,能以这种奇特的方式完成死循环,我真是想不到!!loop循环第一个输出是循环执行完的输出(相当于循环结束后的操作),第二个输出是循环过程的输出(相当于循环本身要做的事情)
拿for循环举个例子: for i in “AAABBB” :  print(i) ,print("end")
loop的第一个输出相当于要执行print("end") ,第二输出相当于要执行 print(i)
你直接把第一个输出延时1秒后又给了loop作为输入,那就相当于每循环一次后又给自己一个新的循环,这就形成了死循环;正确的做法是把第二个输出处理后再给loop作为输入。
另外,关于你说的文档中的break和restart指令,按照文档应该是判断msg的command属性,而不是判断payload属性,所以你在inject中对payload注入break是没有用的
我也试了,给msg添加了command属性并赋值字符串break,并不能终止循环,我也不知道为啥

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-23 14:30 , Processed in 0.122458 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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