基础节点
除了 PlantPulse Edge 类别外,在 Vanilla Node-RED 默认提供的节点中,以下是 IIoT 流的核心节点。按使用频率排序。
1. inject — 触发器 / 调度器
流的起点。可通过按钮手动触发一次,或在特定周期/时间自动触发。
| 选项 | 说明 |
|---|---|
Repeat: interval | 每 N 秒/分/时发送一次 (例如:每1秒轮询) |
Repeat: interval between times | 仅在特定时间段发送 (例如:09–18时) |
Repeat: at a specific time | 每天固定时间 (例如:每天 07:00) |
Repeat: cron-like | crontab 格式 (例如:0 7 * * * — 每天 07:00) |
| Inject once after | 部署后是否立即发送一次 + 延迟时间 |
由于也可以注入 msg.payload 和 msg.topic,因此单个节点可以同时承担“调度 + 输入数据”的角色。
2. debug — 侧边栏日志
将 msg 或 msg.payload 输出到右侧侧边栏的 debug 选项卡。如果将输出对象改为“完整 msg 对象”,则可以看到所有隐藏字段,是调试必备。
3. function — 自由 JavaScript
输入一段 JavaScript 代码。通过修改 msg 并执行 return msg;,数据将传递到下一个节点。
// 예: payload 가 숫자라면 100배 해서 출력
msg.payload = parseFloat(msg.payload) * 100;
return msg;
如需分发到多个输出口,请在节点设置中将 Outputs 增加至 2 等,并返回数组 return [a, b];。
4. change — 字段设置/复制/删除 (无需代码)
像 msg.topic = "abc", msg.payload = msg.payload.value 这样 简单 的转换,无需函数节点,只需通过一次 change 即可完成。包含 set / change / move / delete 四种操作。
5. switch — 条件分支
根据 msg.payload 或任意字段将消息发送至不同的输出端口。支持 checking all rules 或 stop after first match 选项。
┌─ ≥ 80 ─▶ Slack 알림
read ──▶ switch ─┤
└─ < 80 ─▶ 정상 라인
6. join — 聚合多条消息
将多个并行节点 (如 태그값 읽기 ×3 等) 的结果合并到 一个数组/对象 中。模式为 manual, 数量为 N, 键名为 msg.topic。
7. delay — 延迟 / 速率限制
- Pause: 将消息暂存 N 秒/分 (例如:报警后5分钟内不再重复发送)
- Rate Limit: 限制处理速度,如“每秒1条” — 用于保护外部 API 轮询或 MQTT 发送
8. trigger — 状态/定时器结合
例如“收到消息时发送开始消息,若 N 秒后未更新则发送结束消息”等模式 — 常用于 数据断线检测。
9. http request / http in / http response
| 节点 | 用途 |
|---|---|
http request | 调用外部 REST API (例如:外部天气 API, 企业 ERP) |
http in + http response | 在 Node-RED 自身创建新的 HTTP 端点 (例如:接收 /myreport POST) |
10. file / file in
file(write/append): 保存为磁盘文件 (如 CSV 日志记录)file in(read): 读取文件内容
11. csv / json / xml
字符串 ↔ 对象转换。csv 具有丰富的页眉 / 分隔符选项。
12. template
使用 mustache 语法输出模板。在创建邮件/Slack 消息/报告正文时最为方便。
🔥 [경보] {{tag_id}} = {{value}}{{unit}} (한도 {{threshold}})
13. link in / link out
在同一工作区内进行“虚拟跳转”。用于清理杂乱的连线。
14. catch / status / complete
如果流中某处发生错误,catch 将其捕获;而节点的状态 (例如:mqtt 已连接/断开) 则由 status 通知。对于运营稳定化至关重要。
下一步
- Edge 类别 (标签读写) — 网关专用节点
- IIoT 示例集 — 组合上述节点的实际模式