Node-REDの簡易説明

Node-REDはデフォルトで1880番ポートを用いてブラウザアクセスを行います。

Wi-Fi対応のOpenBlocksシリーズにおける、デフォルトIPかつWi-Fi経由でNode-REDへアクセスする為のURLは以下となります。
なお、OpenBlocks IX9等にてEthernet経由でアクセスする際は、適宜IPアドレスを読み替えて下さい。

URL : http://192.168.254.254:1880/

アクセスした場合、以下のような画面が初期状態では表示されます。(ログイン認証設定をしていない場合)

easy1

また、本製品向けにデフォルトで用意している入力・出力・処理等のノードは以下となります。

easy2

Node-RED画面構成

Node-REDの画面は以下のように構成されています。

disp1

#項目説明
1フローシート処理フローを記述するワークスペースです。
2デプロイデプロイボタンをクリックすることでシートに記述した処理フローを有効化します。
3フローノードを配置し結線することでデータの流れ(処理フロー)を定義します。
4ノードパレット処理フローの構成に用いられるノードの一覧です。
5表示切替ノード情報・デバッグ情報の表示を切り替えます。
6ノード情報ノード情報、またはデバッグ情報が表示されます。

ノード種類

Node-REDでは大きく分けて以下のようなコネクタ配置のノードがあります。

コネクタが右コネクタが左右コネクタが左
cnode01fnode01outnode01
■イベント起動
起動条件を満たした時、データを右のノードへ送信します。
■データ処理
左からデータを受信し、処理を行います。
また、処理後のデータを右のノードで送信します。
■イベント終了
左からデータを受信し、該当処理を行い終了します。

データは左から右へと処理が行われます。

共通ノード

ノード画像説明
cnode01手動もしくは一定間隔でメッセージをフローに注入します。
cnode02「デバッグ」タブに、選択したメッセージプロパティの値を表示します。
cnode03他のノードにおけるメッセージ処理の完了を受けてフローを開始します。
cnode04同じタブ内のノードが送出したエラーをキャッチします。
cnode05同じタブ内のノードのステータスメッセージを取得します。
cnode06フロー間に仮想的なリンクを作成します。タブ上に存在するlink outノード に接続できます。
cnode06本ノードは、タブ内に存在するlink inノードに接続できます。 接続先のフローは、link outノードで終了する必要があります。
cnode07フロー間に仮想的なリンクを作成します。タブ上に存在するlink inノードに接続できます。
cnode08フローにコメントを記述するために利用します。

機能ノード

ノード画像説明
fnode01受信メッセージに対して処理を行うJavaScriptコード(関数の本体)を定義します。
fnode02プロパティの値によってメッセージの振り分けを行います。
fnode03メッセージ、フローコンテキスト、グローバルコンテキストのプロパティを 変更、削除、移動します。
fnode04数値を異なる範囲の値に変換します。
fnode05テンプレートに基づいてプロパティを設定します。
fnode06ノードを通過するメッセージを遅延もしくは流量を制限します。
fnode07メッセージを受信すると、別のメッセージの送信を行います。延長もしくは初期化が指定されていない場合には、2つ目のメッセージを送信することもできます。
fnode08システムのコマンドを実行し出力を返します。
fnode09ペイロードの値が変化した場合だけデータを送信します。
値が指定した量変化するまでブロックすることもできます。
fnode10AWSIoTのThingShadowを制御します。

ネットワークノード

ノード画像説明
nnode01MQTTブローカーに接続し、指定したトピックのメッセージをサブスクライブします。
nnode02MQTTブローカに接続し、メッセージをパブリッシュします。
nnode03HTTPエンドポイントを作成し、Webサービスを構成します。
nnode04http inノードで受け付けたリクエストに対するレスポンスを送り返します。
nnode05HTTPリクエストを送信し、レスポンスを返します。
nnode06WebSocketにより受信したデータはmsg.payloadに格納し出力します。
nnode07入力されたmsg.payloadデータをWebSocket経由で送信します。
nnode08TCPからの入力を行います。リモートTCPポートに接続するか、外部からのコネクションを受け付けます。
nnode09TCPへの出力を行います。リモートTCPポートへ接続、外部からのコネクションの受け付け、もしくはtcp inノードで受け付けたメッセージへのリプライを行います。
nnode10シンプルなTCPリクエストノード。msg.payloadをサーバのTCPポートに送信し、レスポンスを待ちます。
nnode11UDP入力ノード。msg.payloadにバッファ、文字列、もしくはBase64エンコーディング文字列を生成します。
nnode12入力されたmsg.payloadを指定したUDPのホストとポートに送信します。
nnode13MQTTブローカとして動作するノードです。外部のMQTTブローカを必要とせずmqtt inノード、mqtt outノードから接続できます。

入力ノード

ノード画像説明
innode01Unix Domain Socketから受信したメッセージをmsg.payloadに送信します。
innode02AWSIoTに接続し、指定されたトピックにサブスクライブします。 トピックにはMQTTワイルドカードが含まれる場合があります。
innode03IBM Watson Internet of Things Platformからデバイスコマンドを受信します。

出力ノード

ノード画像説明
outnode01msg.payloadをUnix Domain Socketに格納し出力します。
outnode02AWSIoTに接続し、msg.topicまたは編集ウィンドウで指定されたトピックのいずれかにmsg.payloadを送信します。
outnode03デバイスイベントをIBM Watson Internet of Things Platformに送信します。

シーケンスノード

ノード画像説明
seqnode01メッセージをメッセージ列に分割します。
seqnode02メッセージ列を結合して一つのメッセージにします。
seqnode03メッセージ列もしくは配列型のペイロードをソートします。
seqnode04指定したルールによりメッセージ列を生成します。

パーサノード

ノード画像説明
parse_node01CSV形式の文字列とそのJavaScriptオブジェクト表現の間で双方向の変換を行います。
parse_node02msg.payloadに格納したHTMLドキュメントからCSSセレクタを使用して要素を取り出します。
parse_node03JSON文字列とJavaScriptオブジェクトとの間で相互変換を行います。
parse_node04XML文字列とJavaScriptオブジェクトとの間で相互変換を行います。
parse_node05YAML文字列とJavaScriptオブジェクトとの間で相互変換を行います。

ストレージノード

ノード画像説明
str_node01msg.payloadをファイルに書き出します。書き出しは、ファイルの最後に追記もしくは既存の内容の置き換えを選択できます。その他、ファイルの削除を行うことも可能です。
str_node02ファイルの内容を文字列もしくはバイナリバッファとして読み出します。
str_node03ディレクトリもしくはファイルの変化を検知します。

ソーシャルノード

ノード画像説明
soc_node01入ってくるSMTPメールのために、ポートでリッスンします。
soc_node02IMAPサーバからemailを一件取得し、メッセージとして転送を行います。
soc_node03msg.payloadをemailとして送信します。件名はmsg.topicで指定します。

Azure IoTノード

ノード画像説明
cloud_node01テレメトリとプロパティをAzure IoTプラットフォームに送信したり、Azure IoTプラットフォームから設定とコマンドを受信したりできます。

GatewayKitノード

ノード画像説明
gw_node01入力データをダッシュボードアプリケーションへ出力します。

locationノード

ノード画像説明
loc_node01入力データをWEB上にプロットします。(インターネット接続が必要です。)
loc_node02Worldmapの出力Webページからイベントを受信します。
loc_node03指定した数の前の場所に基づいてトラックを作成します。
loc_node04入力したプロットデータ間をポリゴンで接続します。

dashboardノード

ノード画像説明
dash_node01ユーザーインターフェースにボタンを追加します。
dash_node02ユーザーインターフェースにドロップダウン選択ボックスを追加します。
dash_node03ユーザーインターフェースにスイッチを追加します。
dash_node04ユーザーインターフェースにスライダーウィジェットを追加します。
dash_node05ユーザーインターフェースに数値入力ウィジェットを追加します。
dash_node06ユーザーインターフェースにテキスト入力ウィジェットを追加します。
dash_node07ユーザーインターフェースに日付選択ウィジェットを追加します。
dash_node08ユーザーインターフェースに色選択ウィジェットを追加します。
dash_node09ユーザーインターフェースにフォームを追加します。
dash_node10ユーザーインターフェースに編集不可能なテキストフィールドを表示します。
dash_node11ユーザーインターフェースにゲージタイプのウィジェットを追加します。
dash_node12ユーザーインターフェースに入力値をグラフにプロットします。
dash_node13ダッシュボードの音声またはテキストを音声で再生します。
dash_node14msg.payloadをポップアップ通知またはOK / Cancelダイアログメッセージとしてユーザーインターフェイスに表示します。
dash_node15ダッシュボードを動的に制御できます。
dash_node16テンプレートウィジェットには、任意の有効なHTMLおよび Angular / Angular Material のディレクティブ(指示子)を含めることができます。
dash_node17ダッシュボードのマップに「もの」をプロットします。