AdventCalendar
node-red
SRADay 20

【Node-RED】nodeの設定ダイアログを活用しよう(前編)

この記事はSRA Advent Calendar 2018の20日目の記事です。

こんにちは! 関西事業部の佐々木です。


設定ダイアログを見直す

Node-REDに慣れてくると、ポンポンnodeを置いてサクサクつないでflowを書けるようになってきます。

さらにcustom node(Node-REDのインストール時に入っているnode以外のnode)を追加して利用したりもできるようになってきます。

確かに色々なnodeを使いこなすことも大事ですが、今使っているnodeを深く理解することもflowを書く上で役に立ちます。

特にnodeをダブルクリックして開く設定ダイアログについて、いつもデフォルトのままだという方は一度じっくりとその内容を確認してみてはどうでしょうか。


switch node

WS000000.png

例えば、switch nodeで下のような設定をしたとき

WS000002.png

上級者ならムムと思う設定ですが、msg.payloadの値(数値)が


  • 100以下ならoutput1から

  • 200以下ならoutput2から

  • 300以下ならoutput3から

出力されます。

では、もしmsg.payloadに50が入っていたらどうなるでしょう?

実はこの場合、output1、output2、output3全てが出力されます。

この動作を期待しているのなら別にこれでいいのですが、もしも


  • 100以下ならoutput1のみから

  • 100より大きく200以下ならoutput2のみから

  • 200より大きく300以下ならoutput3のみから

出力したい場合は設定ダイアログで「最初に合致した条件で終了」を選択します。

WS000003.png

こうすることで条件を満たした場合はそれより下の条件を判定することがなくなります。

switch nodeはNode-REDを始めてすぐに使い始めることが多く、その後も使う頻度が多いため、あまりじっくり調べないのかもしれませんが、この設定をデフォルトのままにしておくことが多いように思えます。

処理コスト的にもこの設定は常に選択しておくほうがいいと思うので、期待する動作に差支えがなければ設定しておくクセをつけておくことをお勧めします。


http request node

WS000004.png

http request nodeで外部のAPIに簡単にアクセスできるのは非常に便利です。

そして最近ではWeb APIではJSONでデータをやり取りすることも多いです。

レスポンスのJSONを文字列を扱いやすいようにオブジェクトに変換するには以下のようにJSON nodeをつなげればOKです。

WS000006.png

ところが、http request nodeの設定ダイアログで出力形式「JSON」を選択すればJSON nodeは必要ありません!

WS000005.png


debug node

他にも知っておいて欲しいのはdebug nodeの設定です。

「さすがにdebug nodeは使いこなしているよ」という人も多いかもしれませんが、Node-REDのバージョン0.18から「ノード状態(32文字)」という設定が増えています。

WS000007.png

この設定をONにするとnodeのstausとしてdebugの内容が(最大32文字)表示されます。

WS000056.png

これが実は意外と便利で、デバッグウィンドウにたくさん表示されている場合でもこのdebug nodeに(最後に)表示されている内容がすぐに確認できるし、デバッグウィンドウの内容はNode-REDのフローエディタを開いていないと表示されませんが、このstatusは後でフローエディタを開いても(最後に)表示された内容を見ることができます。

今回は3つのnodeについて設定ダイアログを活用することについて述べましたが、もう少し紹介したいnodeがあるので続きを別記事で書きます。