基本的にはNode-REDのドキュメントベースで動かした内容を公開していこうと思います。
Node Contextを使う
Node-REDでは簡単なデータの永続化の方法としてNode Contextを使用する事ができます。
スコープを理解して上手く使っていけると良いでしょう。
context
この後の流れからするとlocal contextなんて呼んだ方がいいのかもしれません。
Node-REDが再起動するまでは値が残ります。使用できるスコープはNode内のみになります。
flow context
スコープはFlow内になりますので、Node間でデータを共有することができます。
global context
スコープは全てのNodeになりますので、Flow外のNodeとデータを共有することができます。
サンプル
わかりやすいようにサンプルを上げておきます。
https://github.com/tamaki-shingo/Node-RED_ContextSample.git
実行結果(Injectノードを何回かタップしてログを出してみてください)
14 Mar 00:06:04 - [info] Starting flows
14 Mar 00:06:04 - [info] Started flows
14 Mar 00:07:06 - [info] [function:node1] flow1-node1 count :1
14 Mar 00:07:06 - [info] [function:node1] flow1-node1 fcount:1
14 Mar 00:07:06 - [info] [function:node1] flow1-node1 gcount:1
14 Mar 00:07:06 - [info] [function:node2] flow1-node2 count :0
14 Mar 00:07:06 - [info] [function:node2] flow1-node2 fcount:1
14 Mar 00:07:06 - [info] [function:node2] flow1-node2 gcount:1
14 Mar 00:07:06 - [info] [function:node1] Subflow1-node2 count :0
14 Mar 00:07:06 - [info] [function:node1] Subflow1-node2 fcount:0
14 Mar 00:07:06 - [info] [function:node1] Subflow1-node2 gcount:1
14 Mar 00:07:09 - [info] [function:node1] flow1-node1 count :2
14 Mar 00:07:09 - [info] [function:node1] flow1-node1 fcount:2
14 Mar 00:07:09 - [info] [function:node1] flow1-node1 gcount:2
14 Mar 00:07:09 - [info] [function:node2] flow1-node2 count :0
14 Mar 00:07:09 - [info] [function:node2] flow1-node2 fcount:2
14 Mar 00:07:09 - [info] [function:node2] flow1-node2 gcount:2
14 Mar 00:07:09 - [info] [function:node1] Subflow1-node2 count :0
14 Mar 00:07:09 - [info] [function:node1] Subflow1-node2 fcount:0
14 Mar 00:07:09 - [info] [function:node1] Subflow1-node2 gcount:2
14 Mar 00:07:10 - [info] [function:node1] flow1-node1 count :3
14 Mar 00:07:10 - [info] [function:node1] flow1-node1 fcount:3
14 Mar 00:07:10 - [info] [function:node1] flow1-node1 gcount:3
14 Mar 00:07:10 - [info] [function:node2] flow1-node2 count :0
14 Mar 00:07:10 - [info] [function:node2] flow1-node2 fcount:3
14 Mar 00:07:10 - [info] [function:node2] flow1-node2 gcount:3
14 Mar 00:07:10 - [info] [function:node1] Subflow1-node2 count :0
14 Mar 00:07:10 - [info] [function:node1] Subflow1-node2 fcount:0
14 Mar 00:07:10 - [info] [function:node1] Subflow1-node2 gcount:3