最近話題になっているNode-RED。
使い方を学びたいという声を聞くことがあります。
そのような方のために、Node-REDのフローを100個作ってその様子を動画で紹介する「Node-RED100本ノック」という企画を立ち上げました。
Node-REDの公式サイトにあるNode-REDクックブックに紹介されているフローや自分で行ってみたフローについて、実際に作る方法とフローの解説していく第10回目です。
第9回はEnOcean(BLE)スイッチのデータを受信するPart1です。
EnOcean(BLE)スイッチのデータを受信するPart2
EnOceanスイッチのBLEタイプを使って、データを受信するフローの解説、Part2です。
“node-RED-contrib-beacon-scanner”のインストール、EnOceanデータの受信と受信データの解読を行う後編です。
チュートリアル ⇒ ラズパイにNode-REDを入れてEnOcean(BLE)の環境センサーを接続する2/2
EnOceanスイッチの販売ページ(スイッチサイエンス)
https://www.switch-science.com/catalog/6526/
第11回はTP-LinkスマートプラグをNode-REDで操作です。
Node-RED100本ノックのYoutube再生リストはこちらです。⇒ Node-RED100本ノック
ぜひチャンネル登録をお願いいたします。⇒ DALI KNX EnOcean照明制御チャンネル
【文字起こし】EnOcean(BLE)スイッチのデータを受信するPart2
ものすごいたくさん流れてきますよね。
まあ多分、今私たちの環境ってBLEの通信出しているものはものすごい多いので、こんなふうになってしまうんですよ。
なので、ここから、このデバイスから出てくる信号だけを受けられるようにしたいと思います。
で、じゃあどうやって受けるかというと、こちらこのスイッチにIDがあるんです。
IDがこんな感じ見えますかね、はい。
IDがえーと見えないんです、ここ、ここですね、かなりちっちゃくあるので、このIDでフィルターをかけます。
で、IDでフィルターをかけるにはここにスイッチNodeを入れます。
スイッチ。
1回ちょっとこれ、ちょっと止めましょうね。
で、このBLEビーコンスキャナーNodeからデバッグNodeにくるので、ここにIDってあるんですけど、これがまあいろんなのが出てるんですけど、この中にこのスイッチのIDのものがあるはずなんです。
まぁ、これ押したらね。
なので、それを切り分けるので、それをフィルターするためここにスイッチNodeを入れて、はいでぺイロードID。
まず、こういうふうにやります。
ペイロードIDっていうのが、えーと、これがさっきのこのこのスイッチのIDですね。
これは何かというと、字が小さくて読めない人はこれQRコードで見ることができるので、これでIDがQRコードから出たんですけど、この中のこのね、えっと30Sの後、E21からがIDなのでこれを入れます。
なので、これと同じIDが来た時だけ一番に出力されます。
これでデプロイしますと はい。
で、もう一度、はい。
で、これでやってみましょう。
あれ出ないっすね。
ってことは。
ちょっと私が間違えたかもしれないです。
なのでこれ、ちょっとこんな感じにしてもう1回やりましょう。
たくさん出るけど、ちょっと自分もたくさん入れますと、はい
で、これでこの中にEの21から始まるものが多分どっかにあるはず。
なので、ここから探してみましょう、E21。
ありましたね、はいはいこれですね。
これがこのえっとスイッチのBLEのIDなのでこれ1回ちょっとコピーします、と。
さっき何と間違えたんだ?
あ、なんか一桁間違えてましたね。
0が1個足りなかったんだ、はいはいはい。
なので。これをちゃんと最初から正確に入れていれば今のことはしなくてもいいんですけど、これで これで正しくスイッチのIDが入りました。
これでいいはず。
じゃあ押してみましょう。
あれ。
どうももしかしたらこのメッセージペイロード、IDがちょっと違う感じですね。
もう一回。
ああそうか、そうか、あ、なるほど、はいはい。
これでOKです。
で、メッセージぺイロードがちゃんとこういうふうに受けられるようにしてここで押します。
きましたね、はい。
押した、離した、押した、離した、はい。
これでじゃあ、このデバックNodeを見てみましょう。
いくつかあるんですが、このアザーバッファーのところにこういうふうにいくつかデータが来てるんですね、はい。
で、えーと、まぁこの中からこのバッファーの中にこのどのボタンが押されたのか、離されたのかっていうデータが表示されています。
で、これ正解いくとこの6番なんですね、6番。
6番がこのボタン押した、離したっていうデータが来るので、これをちょっと抜き出してみたいと思います。
なので、このきたデータをfunction Nodeでちょっとプログラムを書きますと。
ここはjavascriptで書きます。
で、いきますよ。
はい、まずパケット。
パッケットという変数を宣言して、これはメッセージペイロードのアザーですね、ここです、アザー。
アザーの中。
アザー、このメッセージペイロードアザーというのがこのスイッチから来たデータパケットになるので、まぁそれをパケットという変数として宣言して、その後に必要なものはこのパケットの6番目ですね、はい。
6番目だよ、というふうにします。
で、メッセージペイロードはこのデータですよ。
そうするとこのボタンが押された内容がデータとしてそれだけが取り出されることになります。
じゃあ、いってみましょう。
じゃあ、まずは上のボタンを押す
押すと9が出ました。
離す、8がきました。
じゃあ、下のボタンを押してみましょう。
押す、離す。
じゃあ、いきますよ。
押す、離す、押す、離す。
EnOceanのデバイスって、まぁ1回ボタンを押すと安全ために何回かデータが送られるんですけど、色々処理をするとき面倒なのでこれフィルターかけます、はい。
で、フィルターかけるのはここでかけましょうね。
これでディレー、ディレーNodeを入れて。
EnOceanの場合は1回ボタンを一、何回かデータが送られるんです。
ただ、いろいろちょっと処理するとき面倒なので、このディレーNodeを使って流入制限をしたいと思います。
はい、なのでこれディレーNode入れましたと。
でrate limit、これが流量制限です。
で、全部のメッセージで、0.1秒間に1個だけきますというふうにします。
で、それ以外のメッセージについては全部削除しました。
ここでえーとrateリミット。
そうするとこれで、これでもう1回デプロイ、はい。
じゃあ、もう1回やってみましょう。
押す、離す、押す、離す。
押す、離す、押す、離す、というふうにできました、はい。
じゃあ、これちょっと上からのカメラで見せます、はい。
いきますよ。
このボタンですね、このボタンを押すと3番。
離すと2番。
こっちのボタン押すと5番。
このボタンを押すと9番。
離すと8番
このボタンを押すと17番。
離すと16番となっています。
で、これ何で押したときと離したときでデータが違っているのかというと、例えば照明とかで調光した時に押しっぱなしだとどんどん明るくなります。
それが例えば1秒おきに5%ずつ明るさが変わります。
離すとそれが止まります。
要はその離した時の信号が来るまで、1秒おきにどんどん調光するっていうような使われ方がしています。
さらにこれ面白いことに、上の2つのボタンを押すと11番、離すと10番。
下の2つのボタンを押すと21番、離すと20番。
さらに、こことここのボタンを一緒に押すと19番、離すと18番。
こっちとこっちを同時に押すと13番
離すと12番。
というふうに1、2、3、4、5、6、7、8種類のデータが送れるんです。
押した時、離したた時。
なので、結構そのまぁどんな使い方するかっていうのはその現場にもよるんですけど、このこののボタン一つあればいろんな状態を呼び出すことができるので、結構いろいろ使い道のあるボタンです。
はい、ということで今回はEnOceanのBLEで信号を送るスイッチをNode-REDのフローで紹介させていただきました。
で、これがあればきっかけが、あの今までね、何かあった時のインジェクトNodeを押してたんですけど、例えば今後何かの機器を制御したいっていう時に、このスイッチでつけるけすとか動かすとめるとか何かやるっていうことができるのでこういうものと色々な物を組み合わせて、Node-REDでフローをつくってIoTの勉強していきたいと思いますのでよかったら引き続き見てみてください。
本日はここまでになります。
では皆さんまた会いましょう。
さようなら。