【初心者向け】Node-REDのデータの扱い方! まず知っておきたいテク5選

Node-REDを使うと簡単にプログラムが作成できますが、いざ始めてみるとなかなか思い通りに動かないこともあります。

そんなときにNode-REDのデータの扱い方を教えてもらい、まさに目からウロコでした。Node-REDでは、ノードとノードがデータをやり取りすることでプログラム(フロー)が作られるため、データの扱い方がわかるとNode-REDの理解がグッと進みます。

今回は、Node-REDを始めたての方に向けて、データを扱う際のテクニックを5つご紹介します。これらのテクニックはこちらのフローで体験できます。

テクニック5選

  1. データを確認する – Debugノード
  2. データの場所(パス)を確認する
  3. データを変更する – Changeノード
  4. データで分岐させる – Switchノード
  5. データをテキストに組み込む – Templateノード

1. データを確認する – Debugノード

Debugノードを使用すると、接続したノードがどんなデータを出力しているかをDebugタブで確認できます。センサーが取得しているデータをサッと確認したい場合や、うまく動いていないフローをデバッグする場合など、Debugノードはさまざまなシーンで活躍します。


Debugノードが取得した値は、Debugタブで確認


デバッグ メッセージにカーソルを合わせると、どのDebugノードのメッセージかわかる


対象を「msgオブジェクト全体」にすることで、すべてのデータを確認できる

2. データの場所(パス)を確認する

フローを作成していると、特定のデータのみを使用したいシーンが多々あります。たとえば、いくつかのセンサーは温湿度・照度など複数のデータを取得できますが、「実際に使用したいのは温度だけ・・・・・・」などという場合です。
そんなときはデータの場所を知っているとすごく便利です。

Node-REDでは、決まった場所にデータが格納されるようになっているので、データの場所さえ押さえておけば多くのデータがあっても迷わず目的のデータを活用できます。

about_path


データの場所はデバッグ タブで確認でき、コピーもできる

3. データを変更する – Changeノード

Changeノードを使用すると、ノーコードでデータの代入/置換/移動/削除ができます。センサーから取得したデータを使いやすいように別の場所で保存しておきたい場合や、任意のデータをフローに組み込む場合にとても便利です。


編集する対象や、
入力する値は、パスが使用できる

4. データで分岐させる – Switchノード

Switchノードを使用すると、設定した条件にしたがって処理を分岐させることができます。このノードを使うことで、「しきい値を超えた場合にだけメッセージを送信する」といったフローを簡単作ることができます。


分岐にはさまざまなルールを指定できる


出力部分にマウスオーバーするとルールを確認できる

5. データをテキストに組み込む – Templateノード

Templateノードを使用すると、テキストにセンサーなどから取得したデータを組み込むことができます。柔軟にテキストを作成できるため、たとえば、部屋の温度を通知する際に「現在の温度は、{{payload}} です」など動的な内容を含むメッセージを作成する場合に便利です。


メッセージは Mustache記法というルールで記述できる

フローで使うmsgプロパティを二重カッコ{{ }} で囲います。このとき、変数に値が代入されると HTMLエスケープされることに注意してください。HTMLエスケープさせたくない場合は、三重カッコ{{{ }}}で囲います。

今回は、Node-REDを始めたての方に向けて、まず知っておきたいデータを扱う際のテクニック5選をご紹介しました。ぜひみなさんもこれらを試してみてはいかがでしょうか。

関連リンク

enebularユーザー向け技術ポータル