我正在开发一个节点红色节点,我想知道测试这些节点的最佳或预期方法.我一直在寻找其他一些节点,他们希望依赖于node-red本身的对等安装,并使用"helper.js"来加载这些节点.我期待更多的"单元级"测试可能会嘲弄节点红色.
在我当前的项目中,我们尝试使用Node-RED实现当前的应用程序功能.功能如下所示.这里,Fire状态接收两个输入:(1)TemperatureSensor (2)SmokeDetector.两个传感器都使用MQTT发布者发布数据.和Firestate组件可以通过MQTT子网接收数据.
火灾状态可以基于这两个参数产生输出if temperaturevalue > 70 and Smokevalue == true.鉴于此,我的问题是 - Node-RED是否支持两种输入功能?如果是,那么我们如何实现这一功能呢?如果没有,那么..我可以说使用Node-RED无法实现两个输入功能吗?我们已经看到Node-RED提供多个输出,但不提供输入.
是否可以在节点集群上水平扩展Node-RED?无法找到相同的任何文档.我的方案是每秒处理数百万个事件并使用Node-RED实时处理它们.
我正在使用Node-Red,在Raspberry Pi上托管一个物联网项目.
如何从Node-Red触发raspi上的Python脚本?我想运行一个脚本来更新位于Pi上的Adafruit LCD屏蔽上的文本
我是否应该以某种方式将Python脚本公开为Web服务?
我正在使用Raspberry Pi B +
我正在编写一个node-red的函数节点,它接受一个带有任意键值对的JSON对象:
{ 30000c690b61: "m8Jp_M7Lc0",
30000c290bdc65: "S3qg3Rkl8Y",
30000c290bdf1c: "KsLpfVrR4W",
30000c290be5d0: "oXasuCWV_q",
30000c29e618: "6Q67v-gJkS" … }
Run Code Online (Sandbox Code Playgroud)
我想访问此对象中的第一个键对元素,存储它,然后将其删除.我尝试了很多东西,但由于它是节点红色,它似乎表现不同
我需要 Accel 对象作为有效负载对象的一部分:
如何将 Accel 和 x,z,y 添加到有效负载(最好使用更改节点)?
我已经尝试过这个:
msg.payload.Accel['x'] = 1;
return msg;
Run Code Online (Sandbox Code Playgroud)
并得到一个错误:
"TypeError: Cannot set property 'x' of undefined"
Run Code Online (Sandbox Code Playgroud) 大家好,我一直在为我的树莓派设置对 node-red 的远程访问。我已经修改了 settings.js 并安装了 node-red-admin 但是当我去启动 node-red 我收到以下错误:
Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
at Object.createSecureContext (_tls_common.js:131:17)
at Server.setSecureContext (_tls_wrap.js:1152:27)
at Server (_tls_wrap.js:1030:8)
at new Server (https.js:65:14)
at Object.createServer (https.js:89:10)
at Object.<anonymous> (/usr/lib/node_modules/node-red/red.js:141:20)
at Module._compile (internal/modules/cjs/loader.js:945:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)
at Module.load (internal/modules/cjs/loader.js:798:32)
at Function.Module._load (internal/modules/cjs/loader.js:711:12) {
library: 'SSL routines',
function: 'SSL_CTX_use_certificate',
reason: 'ee key too small',
code: 'ERR_SSL_EE_KEY_TOO_SMALL'
}
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Failed with result 'exit-code'.
nodered.service: Service RestartSec=100ms expired, scheduling restart.
nodered.service: Scheduled restart …Run Code Online (Sandbox Code Playgroud) 我想通过节点红色 modbus 节点从数据源读取数据。范围是 -20000 到 20000,但节点无法处理负数,所以我不得不将它们转换为二进制数 (DWORD),将它们拆分为低位和高位字,然后将这些字转换回整数。
var low
function dec2bin(dec){
return (dec >>> 0).toString(2);
}
var a = msg.payload
if (a >= 0){
a = dec2bin(a);
a = parseInt(a,2);
} else {
a = dec2bin(a);
a = a.substr(16);
a = parseInt(a,2);
}
low = { payload: a };
return low;
Run Code Online (Sandbox Code Playgroud)
对于可视化,我想使用仪表板节点,但因此我需要将 2 个二进制字符串连接在一起并将它们转换为 int。
问题:
节点 red 将它们转换为 qword,因此二进制数 1111 1111 1111 1111 1111 1100 0001 1000 被视为 4.294.966.296?,而不是 -1000。但是,如果我用 1 个酸橙填充下一个剩余部分,那么: 1111 1111 1111 1111 1111 1111 1111 …
是否有用于 Node-RED 项目的标准或推荐的 .gitignore 文件?或者是否有应该忽略的文件或文件夹?例如,像.config.json或flow_cred.json这样的文件应该被忽略吗?
目前我正在使用gitignore.io生成的 Node 模板(见下文),但这不包含任何特定于 Node-RED 的内容。
我发现这些带有 .gitignore 文件的 github 项目:
但我不确定这些是否适用于任何 Node-RED 项目。
节点 .gitignore 文件:
# Created by https://www.gitignore.io/api/node
# Edit at https://www.gitignore.io/?templates=node
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov …Run Code Online (Sandbox Code Playgroud) node-red ×10
node.js ×3
javascript ×2
gitignore ×1
gpio ×1
https ×1
iot ×1
json ×1
modbus-tcp ×1
python ×1
raspberry-pi ×1
ssl ×1
unit-testing ×1