Node-REDを使うと簡単にプログラムが作成できますが、いざ始めてみるとなかなか思い通りに動かないこともあります。
そんなときにNode-REDのデータの扱い方を教えてもらい、まさに目からウロコでした。Node-REDでは、ノードとノードがデータをやり取りすることでプログラム(フロー)が作られるため、データの扱い方がわかるとNode-REDの理解がグッと進みます。
今回は、Node-REDを始めたての方に向けて、データを扱う際のテクニックを5つご紹介します。これらのテクニックはこちらのフローで体験できます。
テクニック5選
- データを確認する – Debugノード
- データの場所(パス)を確認する
- データを変更する – Changeノード
- データで分岐させる – Switchノード
- データをテキストに組み込む – Templateノード
1. データを確認する – Debugノード
Debugノードを使用すると、接続したノードがどんなデータを出力しているかをDebugタブで確認できます。センサーが取得しているデータをサッと確認したい場合や、うまく動いていないフローをデバッグする場合など、Debugノードはさまざまなシーンで活躍します。
Debugノードが取得した値は、Debugタブで確認
デバッグ メッセージにカーソルを合わせると、どのDebugノードのメッセージかわかる
対象を「msgオブジェクト全体」にすることで、すべてのデータを確認できる
2. データの場所(パス)を確認する
フローを作成していると、特定のデータのみを使用したいシーンが多々あります。たとえば、いくつかのセンサーは温湿度・照度など複数のデータを取得できますが、「実際に使用したいのは温度だけ・・・・・・」などという場合です。
そんなときはデータの場所を知っているとすごく便利です。
Node-REDでは、決まった場所にデータが格納されるようになっているので、データの場所さえ押さえておけば多くのデータがあっても迷わず目的のデータを活用できます。
データの場所はデバッグ タブで確認でき、コピーもできる
3. データを変更する – Changeノード
Changeノードを使用すると、ノーコードでデータの代入/置換/移動/削除ができます。センサーから取得したデータを使いやすいように別の場所で保存しておきたい場合や、任意のデータをフローに組み込む場合にとても便利です。
編集する対象や、入力する値は、パスが使用できる
4. データで分岐させる – Switchノード
Switchノードを使用すると、設定した条件にしたがって処理を分岐させることができます。このノードを使うことで、「しきい値を超えた場合にだけメッセージを送信する」といったフローを簡単作ることができます。
分岐にはさまざまなルールを指定できる
出力部分にマウスオーバーするとルールを確認できる
5. データをテキストに組み込む – Templateノード
Templateノードを使用すると、テキストにセンサーなどから取得したデータを組み込むことができます。柔軟にテキストを作成できるため、たとえば、部屋の温度を通知する際に「現在の温度は、{{payload}} です」など動的な内容を含むメッセージを作成する場合に便利です。
メッセージは Mustache記法というルールで記述できる
フローで使うmsgプロパティを二重カッコ{{ }}
で囲います。このとき、変数に値が代入されると HTMLエスケープされることに注意してください。HTMLエスケープさせたくない場合は、三重カッコ{{{ }}}
で囲います。
今回は、Node-REDを始めたての方に向けて、まず知っておきたいデータを扱う際のテクニック5選をご紹介しました。ぜひみなさんもこれらを試してみてはいかがでしょうか。