基本ノード
PlantPulse Edge カテゴリ以外に、バニラ 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 — 自由な 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 の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 構文でテンプレートを出力します。メールや Slack メッセージ、レポート本文を作成する際に非常に便利です。
🔥 [경보] {{tag_id}} = {{value}}{{unit}} (한도 {{threshold}})
13. link in / link out
同じワークスペース内での「仮想ジャンプ」。ワイヤーが複雑に絡み合うのを整理する際に使用します。
14. catch / status / complete
フローのどこかでエラーが発生した際に catch がキャッチし、ノードの状態(例: mqtt 接続됨/끊김)を status が通知します。運用の安定化に必須です。
次のステップ
- エッジ カテゴリ (タグ読み書き) — ゲートウェイ専用ノード
- IIoT 例題集 — 上記ノードを組み合わせた実際の実装パターン