基本的にはNode-REDのドキュメント(http://nodered.org/docs) を見ながら動かした内容を
備忘録的に公開していきます。
インストール
今回はMacにインストールする所から始めてみます。
Node.jsのインストール
Nodeの0.10.x
以降が必要になります。
Nodeのバージョンはnodebrew
などでバージョン管理出来るようにしていた方が良いかもしれません。
Raspberry Piなどの場合は頻繁にNodeをアップグレードする事もないかもしれないので、必要ないかな?
以下URLからインストーラーをダウンロードしてNode.jsをインストールしましょう。
https://nodejs.org/
次に以下コマンドでインストールを行います。
sudo npm install -g --unsafe-perm node-red
他にもインストール方法はあるので試したい人や上記方法で上手くインストールできなかった人は
ドキュメントのAlternative install methods
を参考にして試してみてください。
http://nodered.org/docs/getting-started/installation
起動
node-red
コマンドがインストールされているので実行するだけです。
起動したらブラウザで http://localhost:1880 にアクセスしてみてください。
起動できていればNode-REDの画面が表示されるはずです。
node-red
コマンドをオプション無しで実行した場合、その後に作成したflowや設定(setting.js
)のデータは$HOME/.node-red
以下を参照します。
個人的には管理しやすくなるので作成するflow用にnode-red -u . -s ./setting.js
のように
明示的に指定しておいた方が良いと思います。
ちなみにsetting.js
が-u
で指定しているディレクトリにある場合は-s
を指定しなくても、
そのディレクトリにあるsetting.js
が参照されるようでした。
ノード追加
Node-REDではデフォルトで利用出来るノードの他、
用途に合わせてノードを追加する事ができます。
http://flows.nodered.org
自分でノードを作成し、公開する事もできます。
今回はまず動かす事を優先して飛ばします。
flow作成(その1)
- ブラウザの画面左側のノード一覧からInputノードのInject Node(表記はinject)を追加します。
- ノード一覧のOutputノードからDebug Node(表記はdebug)を追加します。
- 2つのノードを繋ぎます。それぞれのノードにポートを示す□がついてるのでそれをマウスでドラッグして繋ぎます。
- Deployボタンを押してflowを実行してみましょう。(初めは「上手く動かないなー」と思ってたら単にデプロイされてないだけだったりする事がよくありました)
- ブラウザの画面右にinfoとdebugタブがあると思います、debugタグをクリックしてフォーカスさせます。
- Inject Nodeの左側にボタンがあるのでクリック
- debugに数字が表示された事を確認
上手く表示されたでしょうか?debugに表示されたのはtimestampの値です。
ノードにはざっくり言うとInput/Function/Outputのノードがあるとイメージすると良いでしょう。
イベントのトリガ、処理、通知先という感じですね。
InputとOutputのNodeしか作ってないのでFunctionノードも使ってみましょう。
先ほどのflowをそのまま修正する形で進めます。
- ノード一覧のFunctionからFunction Node(表記はfunction)を追加します。
- Function Nodeをダブルクリックして、ノード名(name)と機能(Function)を入力します。functionに書くのは当然jsです。以下の内容を書き込んでOKボタンをクリックしてください。
// Create a Date object from the payload
var date = new Date(msg.payload);
// Change the payload to be a formatted Date string
msg.payload = date.toString();
// Return the message so it can be sent on
return msg;
- InjectノードとDebugノードの接続を切ります。二つをつなぐ線をクリックして選択状態にし、
delete
キーで削除です。ちなみにNodeも同じようにクリックで選択し、delete
で削除したり、ドラッグによる矩形でまとめて選択できたりします。 - 次に
Injection-Function-Debug
のような形にノードを繋ぎ直してください。あとはDeployして実行するだけです。
debugの出力結果が日付のフォーマットに変わっていたら成功です。
まとめ
とりあえずここまででNode-REDがどんなものかなんとなく掴めてきたのではないでしょうか?
長くなってきたので一旦ここまでにして続きはまた別の記事として書こうと思います。