Node-RED in BlueMixを探る
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
今回は Node-RED に触れます。
Node-RED とはサイトにも "A visual tool for wiring the Internet of Things" とありますが、 IoT に特化したツールというよりも、各種サービスの I/O 連携を視覚的に構成可能な汎用ツールにも思えます。
まずはローカル環境にインストールしてみます。node.js のバージョン 0.10.x にて npm でインストール可能です(0.11.x 以上のバージョンはサポートしていません)。また npm install 時にパーミッションの警告が出る場合は --unsafe-perm オプションで回避可能です。
インストール後 nord-red コマンドでローカルのポート1880で起動します。
$ node-red
Welcome to Node-RED
===================
25 Mar 15:24:15 - [info] Node-RED version: v0.10.4
25 Mar 15:24:15 - [info] Node.js version: v0.10.38
25 Mar 15:24:15 - [info] Loading palette nodes
25 Mar 15:24:16 - [warn] ------------------------------------------
25 Mar 15:24:16 - [warn] Failed to register 4 node types
25 Mar 15:24:16 - [warn] Run with -v for details
25 Mar 15:24:16 - [warn] ------------------------------------------
25 Mar 15:24:16 - [info] User Directory : /Users/urasoko/.node-red
25 Mar 15:24:16 - [info] Flows file : /Users/urasoko/.node-red/flows_mba.local.json
25 Mar 15:24:16 - [info] Server now running at http://127.0.0.1:1880/
25 Mar 15:24:16 - [info] Starting flows
25 Mar 15:24:16 - [info] Started flows
http://127.0.0.1:1880/ にアクセスするとNode-REDのフロー編集画面が出ます。
左側に並んでいるのが Node と呼ばれるフロー上の要素となります(名前がややこしいですね)
Input から Output またその間に経由する Function などが並びます。種類ごとにイメージを貼ってみます。
種類によってはちょっと少ないと思いませんか?実は拡張用の Node とサンプルの Flow は Node-RED Library に公開されてます。
こんな Node を見つけたので拡張してみます。ページには npm コマンドしか記されていませんが、正式には Node-RED のデータディレクトリ(デフォルトでは $HOME/.node-red)以下にインストールする必要があります。
$ cd ~/.node-red/
$ sudo npm install node-red-contrib-neo4j
node-red-contrib-neo4j@0.0.3 ../node_modules/node-red-contrib-neo4j
└── node-neo4j@2.0.0-RC6 (step@0.0.5, superagent@0.16.0)
さてアプリケーションを再起動して Node を見てみましょう。
はい、増えました。
公開されているNodeから自身で活用できそうなものを拡張して用いることで、多様な用途が見いだせそうです。
では Bliuemix のボイラープレート Node-RED Starter で起動される Node-RED in BlueMix の Node を見てみましょう(ややこしいですね)
もうお分かりですね。 Node-RED Starter では Bluemix 上の各種サービスと連携するための Node が、予め Dependency に定義されています。もちろん Library に公開されているものは、ローカルで取り込むことも可能です。
そして右には Watson API も見えますね。そうです、「なぜ突然 IoT ?」と思われたかもしれませんが、 Node-RED を用いると様々なインプットデータをコグニティブサービスを始め多様に連携させるフローが容易に定義出来そうで、幅広い可能性を感じさせてくれます。