본문으로 건너뛰기

IIoT 에서 자주 쓰는 기본 노드

엣지 카테고리 외에 바닐라 Node-RED 가 기본으로 제공하는 노드 중에서 IIoT 플로우에서 핵심이 되는 것들 입니다. 사용 빈도 순으로 정리.


1. inject — 트리거 / 스케줄러

플로우의 시작점. 버튼으로 한 번 트리거 하거나, 일정 주기/시각에 자동 트리거.

옵션설명
Repeat: intervalN초/분/시간 마다 발사 (예: 1초마다 폴링)
Repeat: interval between times특정 시간대에만 발사 (예: 09–18시)
Repeat: at a specific time매일 정해진 시각 (예: 매일 07:00)
Repeat: cron-likecrontab 형식 (예: 0 7 * * * — 매일 07:00)
Inject once afterDeploy 직후 한 번 발사할지 + 지연 시간

msg.payloadmsg.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 responseNode-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}})

같은 워크스페이스 내에서 “가상 점프”. 와이어 거미줄을 깨끗하게 정리할 때 씀.


14. catch / status / complete

플로우 어딘가에서 에러가 나면 catch 가 잡아주고, 노드의 상태(예: mqtt 연결됨/끊김) 를 status 가 알려줍니다. 운영 안정화에 필수.


다음 단계