株式会社日立製作所
サービスコンピューティング研究部
西山博泰
はじめに
Node-REDはノードと呼ばれる機能ブロックを画面上でつなぎ合わせることでフローと呼ばれるプログラムを簡単に作成できるOSSのプログラミングツールです。Raspberry PiのOSに標準搭載されるなどIoT分野で幅広く活用されるとともに、Web APIの呼び出しやデータベースアクセス、データ処理を行うノード、ダッシュボードによるGUI作成機能などを備えており、幅広い分野で活用が進んでいます。部品として利用可能なノードもOSSとして多数公開(この記事の執筆時点で約3900ノード)されています。
Node-REDプロジェクトでは毎年4月にメジャーバージョンをリリース、一年を通して3ヶ月毎にマイナーリリースを出すリリースプランを想定しています。
予定されていたスケジュールより少し遅れる形となりましたが、2022年7月にNode-REDの最新版であるバージョン3.0がリリースされました。Node-RED 3.0では、フローの編集機能などさまざまな新機能が実装されています。この記事でNode-RED 3.0の新機能を紹介します。
ノード間ワイヤの合流点: ジャンクション
ノード間の結線(ワイヤ)はノードの出力と入力を接続します。この経路はNode-REDエディタが自動的に描画するため、ノードの配置によっては線の繋がりが分かりにくくなることがありました。
そこで、ジャンクション(Junction; 結節点)という要素をワイヤに導入し、複数のワイヤの合流点を一箇所でまとめる機能が追加されました。ジャンクションは小さな丸で表現されたワイヤの合流点で、マウスを上に置くと左右にワイヤ接続用のポートが表示されます。ワイヤ接続用のジャンクションを適宜挿入することにより、ノード間のワイヤの配置を細かく制御することができます。
シフトキーとALTキー(Macの場合optionキー)を押しながら、ジャンクションで 纏めたいワイヤ上をマウス左クリックでドラッグすることで複数のワイヤをまとめたジャンクションを挿入することができます。
これまで複数のノードの出力がノードの入力へ接続されている場合、その入力を別のノードにも送るように変更しようとすると、ワイヤの接続を何度もやり直す必要がありました。ジャンクションを用いることでノードの接続を容易化することができます。
ジャンクションは内部的には入力メッセージをそのまま出力する1入力、1出力の特殊なノードとして実装されています。
ノード間接続の分割容易化
アプリケーションを構成するノードが多くなるとノード間の接続が複雑化します。このような場合、Linkノードを使うことでノード間のワイヤを明治的に表示することなくデータのやりとりを行うアプリケーションを構成できます。
Node-RED 3.0では、ワイヤを選択してAltキーとlキーを押し、続いてlキーを単独で押すことでワイヤをLinkノードによる接続に変換できるようになりました。
右クリックメニュー
ワークスペース上のマウス右クリックで次のようなメニューが表示されるようになりました。よく利用する操作を簡単に呼び出すことが可能になります。
デフォルトエディタの変更
厳密には新機能ではありませんが、FunctionノードのJavaScriptコードや、Templateノードのデータを編集するために利用するテキストエディタがACEからMonacoに変更されました。Monacoエディタは2.0から設定を変更することで利用可能でしたが、デフォルトで利用するエディタになりました。
デフォルトノード名
DebugノードやFunctionノードをワークスペースに配置した際、デフォルトで「debug 1」、「function 3」といった名前が自動的に設定されるようになりました。これにより、デバッグサイドバーの出力や検索の際にノードを識別することが容易になります。
その他の主要新機能
-
Linkノードをサブルーチンのように呼び出すLink Callノードの呼び出し先を入力メッセージ(
msg.target
)で指定できるようになりました。 -
デバッグサイドバーの出力ログからデータを出力したノードを識別することが容易になりました。
注意点
Node-RED 3.0ではサポートするNode.jsのバージョンが14以上となりました。推奨バージョンは16.Xです。
おわりに
この記事ではNode-RED 3.0で導入された新機能を紹介しました。Junctionによるフローの整理など便利な新機能が追加されていますので、ぜひ使ってみてください。
参考
Node-RED: Node-REDは,OpenJS Foundationの米国およびその他の国における登録商標または商標である。
JavaScript: JavaScriptは、Oracleの米国およびその他の国における登録商標または商標である。