标签: node-red

如何在 Node-RED 中合并来自多个有效负载的数据?

我想合并来自 3 个不同来源的数据(来自 HTTP msg.payload)。

但是,这些 HTTP 请求可能会被多次调用,因此可以多次接收来自同一来源的数据。

在此处输入图片说明

[{"id":"7ed13b41.131b14","type":"join","z":"246eac57.42ec74","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"index","joiner":"","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1370,"y":1160,"wires":[["d941ca6e.0e1aa8"]]},{"id":"d941ca6e.0e1aa8","type":"debug","z":"246eac57.42ec74","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1490,"y":1120,"wires":[]},{"id":"b04a312.d6c40d","type":"function","z":"246eac57.42ec74","name":"part 1","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 0;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1120,"wires":[["7ed13b41.131b14"]]},{"id":"30cec12.e2fc13e","type":"function","z":"246eac57.42ec74","name":"part 2","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 1;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1160,"wires":[["7ed13b41.131b14"]]},{"id":"8902f2d5.ea688","type":"function","z":"246eac57.42ec74","name":"part 3","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 2;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1200,"wires":[["7ed13b41.131b14"]]},{"id":"814f25b6.dd3958","type":"http in","z":"246eac57.42ec74","name":"source 1","url":"/source1","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1120,"wires":[["b04a312.d6c40d"]]},{"id":"cab634ac.5d9df8","type":"http in","z":"246eac57.42ec74","name":"source 2","url":"/source 2","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1160,"wires":[["30cec12.e2fc13e"]]},{"id":"98f89b04.9b5bb8","type":"http in","z":"246eac57.42ec74","name":"source 3","url":"/source3","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1200,"wires":[["8902f2d5.ea688"]]}]
Run Code Online (Sandbox Code Playgroud)

此流程中发生的情况是,当加入节点从源 1 接收 3 条消息时,它认为已msg.parts完成。我想要实现的行为是,只有当收到来自 3 个来源的数据时,流程才会继续。如果从同一来源接收数据,它只会覆盖以前的数据。

有没有办法在 Node-RED 中实现这一点?

node-red

3
推荐指数
1
解决办法
8834
查看次数

在 Win ES 7 上使用 PM2 运行 node-red 时出现“语法错误:无效或意外的令牌”

Node-red 版本:0.19.5
PM2 版本:3.2.3
操作系统:Windows Embedded Standard 7(在 ICO300 上运行,8GB RAM)

重现步骤

  1. 在 Windows ES 7 上安装 node-red 和 pm2
  2. 通过 pm2 运行 node red: pm2 start node-red
  3. 检查节点红色日志: pm2 logs node-red

结果
我收到以下错误:

0|node-red  | SyntaxError: Invalid or unexpected token
0|node-red  |     at new Script (vm.js:79:7)
0|node-red  |     at createScript (vm.js:251:10)
0|node-red  |     at Object.runInThisContext (vm.js:303:10)
0|node-red  |     at Module._compile (internal/modules/cjs/loader.js:656:28)
0|node-red  |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
0|node-red  |     at Module.load (internal/modules/cjs/loader.js:598:32)
0|node-red  |     at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
0|node-red  |     at …
Run Code Online (Sandbox Code Playgroud)

node.js pm2 node-red

3
推荐指数
1
解决办法
3156
查看次数

Node-red自定义节点,如何使用节点属性?

我正在尝试创建自定义节点,我正在尝试非常简单的一个。我需要使用节点的属性(用户从下拉列表中选择的值)通过 msg.payload 发送/输出该属性的值。

这是调试选项卡中的错误消息:

4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)

这是所需的输出:

“ppp[洛洛:m2]”

我删除了 js 文件中带有 $ 的行,因为它无法识别 jQuery。我用这个代替

msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)

但在输出中,选项值未定义,而不是选择下拉列表中选项之一的值:

5/7/2017 11.34.22node: 5aa4aa59.f9fa04
msg.payload : string[19]
"ppp[lolo:undefined]"
Run Code Online (Sandbox Code Playgroud)

这是节点的 html 文件:

4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)

这是节点的 js 文件:

msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)

node-red

2
推荐指数
1
解决办法
2461
查看次数

红色节点 - 对 http 输入节点使用与 ui 不同的端口

我知道您可以在设置文件中或通过 PORT 环境变量设置 UI 的端口,这也是用于“http in”节点的端口,但是我如何为这两个目的指定不同的端口?

node-red

2
推荐指数
1
解决办法
3980
查看次数

nginx使节点红色失去与服务器的连接,但可以部署

问候我正在配置一个节点红色的服务器,在应用Nginx重定向后,出现了以下问题。

尝试重新连接并仍在部署的节点红色的图像

使用Nginx将子域node-red.domain.com重定向到localhost:1880之后

Nginx重定向配置:

server {
        listen 80;
        server_name sub1.domain.com;

        location / {
                proxy_pass "https://127.0.0.1:8080";
        }
}
server {
        listen 80;
        server_name sub2.domain.com;

        location / {
                proxy_pass "https://127.0.0.1:8080";
        }
}
Run Code Online (Sandbox Code Playgroud)

请任何人可以帮助我吗?

javascript nginx node.js node-red

2
推荐指数
1
解决办法
720
查看次数

Node-red容器无法安装

我已经尝试了很多个小时,尝试了很多事情,所以我现在必须问。在我的 docker 上,我无法让 nodered 在其上运行。我总是收到共享卷的权限错误。我的另一个“fhem”容器确实以相同的文件夹权限运行。所以我不明白为什么这对nodered来说是一个问题。

目前我正在使用最新版本的ubuntu。

我想将 nodered 实例中的 /data 文件夹存储在 /opt/docker-nodered 中,但这不起作用。

我尝试使用以下命令安装它:

docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data --name nodered nodered/node-red-docker
Run Code Online (Sandbox Code Playgroud)

这里的权限如下:

stefmde@homeautomation:/opt$ ll
total 16
drwxr-xr-x  4 stefmde stefmde 4096 Sep 24 09:52 ./
drwxr-xr-x 23 root    root    4096 Sep 21 18:56 ../
drwxr-xr-x 10 stefmde stefmde 4096 Sep 22 12:48 docker-fhem/
drwxr-xr-x  2 stefmde stefmde 4096 Sep 24 14:01 docker-nodered/
Run Code Online (Sandbox Code Playgroud)

我用以下内容更改了它们以尝试使其运行:

chown -R stefmde:stefmde /opt/docker-nored
Run Code Online (Sandbox Code Playgroud)

但无论我尝试什么,我总是遇到同样的错误:

stefmde@homeautomation:/opt/docker-nodered$ sudo docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data …
Run Code Online (Sandbox Code Playgroud)

ubuntu permission-denied docker node-red

2
推荐指数
1
解决办法
5845
查看次数

如何在 Node-red 中抓取网站

我需要在 Node-red 中抓取一个网站,但我不确定应该如何做。

我知道如何在 Google 电子表格中抓取网站,但我不知道如何对 node-red 中的 html 节点执行相同的操作。

这是我在 Google 电子表格中使用的:

=index(importxml("https://www.website.dom";"//h2[@class='item-title']");1)

web-scraping node-red

2
推荐指数
1
解决办法
7517
查看次数

在哪里可以找到 Node-RED 中的控制台

我找不到 Node-RED 的控制台。我必须使用 Node-RED 运行时 APIRED.log()吗?一些 Node-RED 前端,如FRED,似乎有一个控制台。此外在这里一个控制台被提及。外壳上是否有可访问的控制台,还是必须使用调试节点?提前致谢

彼得

javascript console node-red

1
推荐指数
1
解决办法
9491
查看次数

无法删除节点红色的模块

我在node-red上遇到问题,无法再运行任何流程,我不确定该怎么办。

我收到以下错误

Imported unrecognised type: mqtt-env-broker
Flows stopped due to missing node types. Check logs for details.
Run Code Online (Sandbox Code Playgroud)

试图从调色板中删除此模块,但出现以下错误,我也无法禁用它

Failed to remove: node-red-contrib-mqtt-env
Error: Type in use: mqtt-env-broker
Check the log for more information
Run Code Online (Sandbox Code Playgroud)

我已经安装了node-red-admin并试图从命令行中删除它,所以我发出了以下命令

sudo node-red-admin remove node-red-contrib-mqtt-env/mqtt-env
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

404: Cannot DELETE /nodes/node-red-contrib-mqtt-env/mqtt-env
Run Code Online (Sandbox Code Playgroud)

这是我运行以下命令时得到的

node-red-admin list

Nodes                                 Types                 State
node-red-contrib-mqtt-env/mqtt-env    mqtt-env in           error
                                      mqtt-env out
                                      mqtt-env-broker
node-red-dashboard/ui_audio           ui_audio              enabled
...
...
node-red/mqtt                         mqtt in               error
                                      mqtt out
                                      mqtt-broker
Run Code Online (Sandbox Code Playgroud)

module uninstall node.js node-red

1
推荐指数
1
解决办法
5770
查看次数

如何在节点红色中进行http重定向?

我需要重定向到另一个网址.我使用nodered来请求一个url,然后获取用户名和密码,在cloudant数据库中检查它们,并且在确认它们存在之后,我需要重定向到另一个/ home.是否有重定向的节点?我尝试使用http请求节点,但它只是在json或二进制中获取响应而不重定向url.如何在nodered中重定向?

node-red

1
推荐指数
1
解决办法
2286
查看次数