前回➀ までは、
- ガスメーターのガス使用量をパルス発信するタイプに交換済み
- パルス発信頻度は、1m3 で1000パルス発信する仕様
- TWELITEでパルスカウントし、10カウント毎に送信
- Raspberry pi で受信し、パルスカウント数(送信回数)をカウント
今回②では、カウント数を処理するフローを作成。
毎月、毎日の使用量(m3)、使用料金(円)を表示するためにカウント数をリセットしたり、TWELITEの送信回数が最大になると、最初に戻ってしまうがその際のエラー回避などを行う。
TWELITEを定期的にリセットする方法をRTCなどを使ってできないか考えているが、まだ使い方を勉強中。TWELITEを決まったタイミングでリセットすることができれば、今回のフローは不要となるが、現状、このフローを追加している。
後から、フローを削除したり変更が分かりやすくなるように、flowオブジェクトを使って、フローを分けておくようにする。
前回作成したフローを変更する
ガス使用量を計測する➀で作成したフローから少し変更している。
- テスト用のデータを発信するボタンを追加
動作確認用で、確認が終われば削除しても問題無し。
赤字の4桁が送信回数。値は16進数
:04AA00810A722E000000004B0008504C5331FFFF0002A5 - 受信回数を flowオブジェクト(flow.ransmission-times) に代入して次のフローへ渡すように変更
flow. は、フロータブ内で有効なオブジェクト。ワイヤで繋がっていなくても呼び出せるため、
フローが長く複雑にならないように分割を行う。
また、TWELITE側で送信回数をリセットすることができるようになれば、次に作成するフローが不要となるので、flowオブジェクトの参照先を変更することで変更しやすくしている。
”Serial In” Nodeを 使用するが、下記Nodeを追加されていない場合は、
事前に追加しておく必要がある。
追加するNode名:node-red-node-serialport
追加方法は、下記リンク先に記載している
Node(ノード)を追加
パルスカウント数(送信回数)の中間処理
Nodeフローの詳細 ←フローの詳細はここから参照してください。
TWELITE側で、毎月1日に送信回数をリセットする処理ができればこの中間処理は不要になる。
リセットする方法は今検討中で完成していないので、この処理を追加する。
目的は、ガス使用量と使用料金を毎月1日0時にリセットすること。
- 最新の送信回数と、前回の送信回数の差を求めて増分を算出する。
差は1となるはずだが、TWELITEからの通信信号の受信に失敗していることがあるために計算させている。TWELITE送信回数毎のパルスカウント数も受信しており、そのパルスカウント数にもズレはある。このズレは送信されるパルスカウント数が間違っているだけのようで、ガスメーターとの差に影響が無いため、今のところは活用していない。ズレの原因は不明。 - 送信回数が最大数65535になった後、送信回数がリセットされる。その時、差は65535前後になるため、リセットされた場合の対処と、受信済みの送信回数を➀へ返すのと、次のフローへ渡すようにflowオブジェクトへ値を代入している。
- TWELITEの送信回数を積算していき、毎月のガス使用量としてflowオブジェクトに代入。
値は、値1がガスメーターから発信されたパルス数10カウント分なので、10ℓ(0.01㎥)。 - ノードを追加している。”node-red-contrib-cron-plus”
毎月1日0時に、毎月のガス使用量を0リセットしている。 - テスト時に値をリセットしたいとき用に作成したリセットボタン。
値を0にする。
②→➀に送信回数を返しているflowオブジェクトと、ガス使用量の値が0になる。
ガス使用量の表示
Nodeフローの詳細 ←フローの詳細はここから参照してください。
ここまでのフローで、受信した受信回数をガス使用量に変換されたので、あとは見えるようにしていくだけ。とりあえず、出てきた数値を表示させるところまでできるようにした。
今後、今月/今日/1時間などのガス使用量やガス料金を表示できるようにフローを作成していく。
このフローで表示されるグラフのイメージ
コメント