(5/100)起動時に自動実行するInjectノード / Node-RED100本ノック

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

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

第4回はmesssageプロパティの移動です。

起動時に自動実行するInjectノード

今回は、Node-REDクックブックのFlow controlにある”Trigger a flow whenever Node-RED starts”の解説です。
Node-RED起動の度にフローを実行させます。
よく使うやり方です。

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

第6回はさくらVPSでNode-REDを動かしてみよう!です。

Node-RED100本ノックの動画

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

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

【文字起こし】起動時に自動実行するInjectノード

文字起こし

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

スマートライト中畑です。

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

今日やっていくのはNode-RED cookbook Node-REDの公式サイトにあるNode-RED cookbookから、前回まではですね、メッセージズというところをやってたんですが、今日は今日からフローコントロールというのをいきたいと思います。

そしてやるのはここですね、Trigger a flow whenever Node-RED startsをやっていきます。

はい、これはですね、ものすごいよく使います、このやり方。

なので、これをやっていきたいと思います。

先ずはですね、こちらのサイトですね、URLはこれです。

で、ここでフローがあるんですけど、ショウフローでまずこのフロー、コピーします。

でNode-REDを開いてでここでimport、日本語だと読み込みで貼り付け。

今回のフローはこうですね。

じゃあ、デプロイを押します。

で、デバッグにして、あ、もうすでにstartedって出ましたね。

これ、どういうものかというと、はい、ちょっともう一回これ動かしますね。

ここでもう一回デプロイを押します。

はい、startedって出ました。

で、これこのNodeはですね、Node-REDをデプロイしたとき、Node-REDが動き始めた時に開始されるっていうノードです。

なのでこれは、インジェクトNodeなんですけど、ここにメッセージペイロードにstartedっていう文字列が入ってて、ここですね、はいインジェクト ワンスアフター 0.1セコンズというふうになってて、要は立ち上がったら 0.1秒の間にこのインジェクトNodeが実行されるというふうになっています。

で、ここにディピートってあるんですけど、ここ今ノンになってますがここを例えばインターバルとかやると、1秒おきに送るNodeっていうのをやります。

実はこれ、クックブックのこのトリガーフロウアットレギュラーインターバルズっていうのもあるんですけど、このインジェクトノードをいじることで立ち上がってすぐとか、あとは定期的にデータを送るっていうのができるようになります。

今回はとりあえずスタートの時でだけですね、起動した時にこのNodeが立ち上がるっていうのをやっていきます、はい。

こう出ましたと。

で、これどういう時に使うかっていうと、僕がよく使うのは立ち上がった時に照明設備の状態を取りに行くっていうのに使ってます。

で、よくまあ照明の設備で自分がね、ステイダス持ってるんです。

点灯中なのかシーン1なのかシーン2なのかとか。

で、Node-REDが立ち上がった時はそれはまだわからないので、このstarted起動したときにその設備にクエリをかける、命令を送って設備のものから状態もらって今点灯しているとか、100% 50%だとか、で、そういうのを受けてこの後、今後やっていく、Node-REDダッシュボードに表示させたりもしくは何かステータスを表示させる機器にデータを送ったりっていうようなことをしています。

なのでこのstartedってノードはかなり、startedっていうか、この起動の時にインジェクトNodeが立ち上がるというのはよく使っています。

あとよくやるのが、なんかそのフローごとに決められた定数をつくったりするじゃないですか。

例えばIPアドレスの値とか、あとは何かメッセージを送る相手先とかで、そういうものをグローバル関数で定義するときに、このNode-REDが立ち上がったときにその定数を定義するようなスクリプトを動かして、まぁその他のNodeで自由にね呼び出せるようにしたりします。

はい、ということでこのインジェクトNodeは非常によく使うNodeです。

ということで、今日はここまでになります。

また次回はですね、このインターバルNodeっていうのをやってみたいと思いますのでぜひまたご覧ください。

では、みなさんまた会いましょう。

さようなら。