Common Basic Nodes in IIoT
Beyond the 엣지 category, these are the nodes shipped with vanilla Node-RED that matter most in IIoT flows, ordered by how often they are used.
1. inject — Trigger / Scheduler
The starting point of a flow. Trigger once with a button, or automatically on a fixed interval or at a set time.
| Option | Description |
|---|---|
Repeat: interval | Fires every N seconds/minutes/hours (e.g. poll every second) |
Repeat: interval between times | Fires only during a specific time window (e.g. 09:00–18:00) |
Repeat: at a specific time | At a fixed time each day (e.g. 07:00 daily) |
Repeat: cron-like | crontab format (e.g. 0 7 * * * — 07:00 daily) |
| Inject once after | Whether to fire once right after Deploy, plus a delay |
It can also inject msg.payload and msg.topic, so a single node serves as both "schedule" and "input data."
2. debug — Sidebar Log
Outputs msg or msg.payload to the debug tab in the right sidebar. Switching the output target to "the complete msg object" reveals every field that would otherwise stay hidden — essential for debugging.
3. function — Free-Form JavaScript
Takes a block of JavaScript code. Transform msg and return msg; it to pass it on to the next node.
// 예: payload 가 숫자라면 100배 해서 출력
msg.payload = parseFloat(msg.payload) * 100;
return msg;
To branch into multiple outputs, raise Outputs: 2 (or more) in the node settings and return an array return [a, b];.
4. change — Set/Copy/Delete Fields (No Code)
Simple transformations such as msg.topic = "abc" or msg.payload = msg.payload.value are handled by a single change without a function node. Four actions are available: set / change / move / delete.
5. switch — Conditional Branching
Inspects msg.payload or any other field and routes to a different output port. Options are checking all rules or stop after first match.
┌─ ≥ 80 ─▶ Slack 알림
read ──▶ switch ─┤
└─ < 80 ─▶ 정상 라인
6. join — Collecting Multiple Messages
Merges the results of several parallel nodes (태그값 읽기 ×3 and so on) into a single array or object. mode manual, count N, key msg.topic.
7. delay — Delay / Rate Limit
- Pause: Holds messages for N seconds/minutes (e.g. suppress re-sending for 5 minutes after an alarm)
- Rate Limit: Caps throughput, e.g. "1 message per second" — protects external API polling and MQTT publishing
8. trigger — Combining State and Timers
Patterns such as "send a start message when a message arrives, and an end message if nothing updates for N seconds" — frequently used for detecting data dropouts.
9. http request / http in / http response
| Node | Purpose |
|---|---|
http request | Calls an external REST API (e.g. a weather API, in-house ERP) |
http in + http response | Creates a new HTTP endpoint on Node-RED itself (e.g. receiving /myreport POST) |
10. file / file in
file(write/append): Saves to a file on disk (CSV logging, etc.)file in(read): Reads file contents
11. csv / json / xml
String ↔ object conversion. csv offers a rich set of header and delimiter options.
12. template
Renders a template using mustache syntax. Most convenient for composing emails, Slack messages, and report bodies.
🔥 [경보] {{tag_id}} = {{value}}{{unit}} (한도 {{threshold}})
13. link in / link out
"Virtual jumps" within the same workspace. Used to clean up a tangle of wires.
14. catch / status / complete
When an error occurs anywhere in the flow, catch catches it, and status reports node status (e.g. mqtt connected/disconnected). Essential for stable operation.
Next Steps
- Edge Category (Reading/Writing Tags) — gateway-specific nodes
- IIoT Example Collection — real-world patterns combining the nodes above