IIoT 에서 자주 쓰는 기본 노드
엣지 카테고리 외에 바닐라 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 | Deploy 직후 한 번 발사할지 + 지연 시간 |
msg.payload 와 msg.topic 도 주입할 수 있어, 노드 하나가 “스케줄 + 입력 데이터” 역할을 동시에 합니다.
2. debug — 사이드바 로그
msg 또는 msg.payload 를 우측 사이드바 debug 탭으로 출력. 출력 대상을 “전체 msg 객체” 로 바꾸면 보이지 않던 필드까지 다 볼 수 있어 디버깅 필수.
3. function — 자유로운 자바스크립트
자바스크립트 코드 한 덩어리 입력. 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 의 4가지 동작.
5. switch — 조건 분기
msg.payload 또는 임의의 필드를 보고 출력 포트를 다르게 보냅니다. checking all rules 또는 stop after first match 옵션.
┌─ ≥ 80 ─▶ Slack 알림
read ──▶ switch ─┤
└─ < 80 ─▶ 정상 라인
6. join — 여러 메시지를 모으기
병렬로 여러 노드(태그값 읽기 ×3 등) 의 결과를 하나의 배열/객체 로 합칩니다. mode manual, count N, key 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 문법으로 템플릿 출력. 메일/슬랙 메시지/리포트 본문 만들 때 가장 편리.
🔥 [경보] {{tag_id}} = {{value}}{{unit}} (한도 {{threshold}})
13. link in / link out
같은 워크스페이스 내에서 “가상 점프”. 와이어 거미줄을 깨끗하게 정리할 때 씀.
14. catch / status / complete
플로우 어딘가에서 에러가 나면 catch 가 잡아주고, 노드의 상태(예: mqtt 연결됨/끊김) 를 status 가 알려줍니다. 운영 안정화에 필수.
다음 단계
- 엣지 카테고리 (태그 읽기/쓰기) — 게이트웨이 전용 노드
- IIoT 예제 모음 — 위 노드들을 조합한 실제 패턴들