Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@tseigo

Node-REDのフローを見た目分かりやすく止めておくTIPS

More than 3 years have passed since last update.

Node-RED Advent Calendar 2016の18日目の記事です。

Blumix上のNode-REDでもRaspberry PiのNode-REDでも言えることなのですが、Node-REDを起動しっぱなしにしているときにフローを止めておきたいときってありますよね。

たとえばこんなフロー。

image

こういう連携を組むことは多いのですが、MilkcocoaノードとWio Nodeを連携しているものですが、

  • milkcocoa受信が例えば1秒間隔で頻繁すぎると、Wio Nodeの反応があやしくなるとき
  • Wio Nodeセンサー取得→milkcocoa出力に流すときに10秒ごと動かすのが頻繁すぎるとき

といったときに 一時的にフローを止めておきたい といった欲求が出てきます。

今までやっていた手法とデメリット

今までやっていた手法はこんな感じ。

image

ごくごくシンプルにフローを切る形で止めます。

しかしこの流れ。特に登壇やデモ時に事故りやすい。よくあるのは、お披露目の直前にフローをつなぎ忘れたり、見た目が切断済みで再接続時につなぐところを間違えたりします。

image

いちばんミスった最悪の例。つなぐところが違う...(しかも登壇時テンパると元のつなぎ方思い出せない)

見た目分かりやすく止めておくフローブロックFunctionをつくる

まだ発展途上ではあるのですが、もう少し見た目分かりやすく止めておくことはできないかと思って、取り入れた手法があります。

Node-RED日本ユーザ会 : Functions Nodeの書き方

こちらを見てみると、フローは常にmsgオブジェクトを各ブロックでリレーしていますが、ここに書いてあるとおり null を渡すと、以降のフローは実行されません。止めてくれるというわけですね。

これを利用します。

まず、Functionフローを作ります。

image

中身はこんな感じ。

image

このように書かれています。

// フローブロック
msg = null;

return msg;

シンプルに null を渡してます。

これでフローブロックが出来上がりました。

ほんのちょっとですが、このソースも置いておきます。

[{"id":"9277a3cb.9ac2c","type":"function","z":"2b17c715.853ec8","name":"[x]","func":"// フローブロック\nmsg = null;\n\nreturn msg;","outputs":1,"noerr":0,"x":839,"y":1470,"wires":[["8259a8a.fa88e58"]]}]

実際使ってみる

実際にフローを止めてみます。

image

Node-REDのつながっている部分は、間に入れたいものを乗せて、、、

image

パッと離すと、割り込んでくれます。便利!

これで実際フローをデプロイすると、ちゃんと以降のフローが止まってくれます。

今回の例にあるフローを各所で止めてみます。

image

このように各所で止められているので、MilkcocoaやNode-REDにアクセスする部分が沈黙します。

戻すとき

デモ前の持ち運び時はこのようにブロックしておいて、直前に目視でフローブロックFunctionと除去してやれば、前述の切断状態よりは間違いにくくフローを戻すことが可能です。

image

もっとスマートな方法ないかなと思いつつ、いまはこの手法に落ち着いています。

フローを一時的に止めておきたいとき、よろしければご参考下さい。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
tseigo
littleBits
littleBitsに知り、littleBitsが好きになった人たちが交流し、littleBitsのいろいろな楽しみ方や活かし方を共有していくユーザーグループです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?