(8/100)メッセージをプロパティによってルーティングする / Node-RED100本ノック

最近話題になっているNode-RED。
使い方を学びたいという声を聞くことがあります。
そのような方のために、Node-REDのフローを100個作ってその様子を動画で紹介する「Node-RED100本ノック」という企画を立ち上げました。

Node-REDの公式サイトにあるNode-REDクックブックに紹介されているフローや自分で行ってみたフローについて、実際に作る方法とフローの解説していく第8回目です。

第7回はRaspberryPIにNode-RED環境をつくってみよう!です。

メッセージをプロパティによってルーティングする

今回は、Node-REDクックブックの”Route a message based on one of its properties”の解説です。

センサーからのデータをNode-RED DASHBOARDを使って表示する際に、温度、湿度、気圧など、センサーの種類をmsg.topicに記載しswitchノードによって振り分けることができます。

Node-REDのフローのコピーはこちらから
JPサイト ⇒ https://cookbook.nodered.jp/basic/route-on-property
グローバルサイト ⇒ https://cookbook.nodered.org/basic/route-on-property

第9回はEnOcean(BLE)スイッチのデータを受信するPart1です。

Node-RED100本ノックの動画

Node-RED100本ノックのYoutube再生リストはこちらです。⇒ Node-RED100本ノック

ぜひチャンネル登録をお願いいたします。⇒ DALI KNX EnOcean照明制御チャンネル

【文字起こし】メッセージをプロパティによってルーティングする

文字起こし

はい、みなさんこんにちは。

Node-RED100本ノック第8回目、やっていきたいと思います。

今日はですね、Route a message based on one of its propertiesっていうのをやっていきたいと思います。

今回もcookbookに載っている内容です。

はい、えー、まずじゃNode-RED cookbook

はい、開きます。

英語版の方でひらいて、で、この中にえっとフローコントロールというのがあって、はいここですね。

これをクリック。

まずは実際にこのフローをやってみましょう。

フローコピーするにはshowフローで、ここでコピーとあるのでコピーします。

で、Node-REDを開いてここでインポート、呼び込みでフローをコピペしてインポート。

これで出てくるので、はい。

デプロイですね。

で、こっちはデバッグの画面にしておいて。

はい、このテンパレーチャーのインジェクトNodeを押すと。

はい、テンパレーチャー、このテンパレーチャーという名のついたデバッグノードにテンパレーチャー値27というのが表示されます。

ヒューミディティーを押すと、はい、これはヒューミディティーのNodeに45っていうのが、この出てきますね

はい、で、インジェクトモードは見てみるとペイロード27、コレ温度ですね。

27度でmessageドットトピックというところにテンパレーチャーというのが書かれています。

他のインジェクトNodeが同じようです。

45ヒューミリティ、プレッシャー気圧ですね。

気圧の値と トピックにプレッシャー。

で、ここの先にルートってあるんですけど、これはこのスイッチNodeを使っています。

これをクリックするとはい、messageトピックの値がテンパレーチャーの時は1番に出力と。

ヒューミディティーときは2番。

プレッシャーの時は3番っていう風になっています。

それでそれぞれ、こういうふうにデバッグNode、どのデバッグNodeに出すかっていうのをコントロールしているんですね。

で、これよくあるのが実際センサーからデータを受け取ってそのデータをどこかに表示させたいという時に、例えばこの先にNode-REDダッシュボードとか使って温度はここに表示する、湿度はここに表示する、気圧をここに表示する、っていう時に、このルートNodeを使ってメッセージトピックにどのダッシュボードのところに表示させるかっていうのをテンパレーチャーとかヒューミディティとか入れてでそれでここから振り分けるって言うようなことができます。

実は私も、今このね、cookbookを見るまでこのやり方知らなくてどうやってたかっていうと、普通にファンクションモードで if 文を使って条件分岐して、それで出力先をコントロールしてたりもしくはなんかオブジェクトにしてその先でまた分類したりとかしてたんですけど、これを使うとものすごい簡単にできますね。

結構ファンクションNodeでjavascriptを書けばある程度の事は出来ちゃうんですよね。

でも、それってやっぱりNode-REDがノーコードで語られることが多い中、結構普通にファンクションNodeを使って javascriptをゴリゴリ書いていると、あの自分にはわかるけどね、他の人が見えた時わからなかったり、自分でも1週間経つともう前にやってたこと忘れちゃったりするのでそういった意味でこのね、スイッチNodeを使ってでメッセージトピックにその分岐になる条件を入れて分類するって方向、行き先をコントロールするというのは非常にわかりやすいなぁと思ってました。

というということで、Node-REDや、あの便利な使い方というか他の人が見ても分かりやすいフローの作り方があるなぁっていうのを今回改めて学びました。

皆さんもNode-RED cookbookをぜひチェックしてもらってこんな便利な使い方があるんだ、とかこうすれば分かりやすよねっていうのを色々学習してもらえたらいいと思います。

私も今回で8回目なのであと92回、Node-RED cookbookを確認したり、あとは自分やってるNode-RED cookbookのフローを紹介したりして、Node-REDについての知識を深めたいと思っています

本日はここまでになります

またお会いしましょう

皆さん さような