Node-REDでBufferデータを作成する方法とBufferデータをカウントする方法

最近、BLEセンサーのお話をいただきNode-REDを使ったアプリケーションの開発をしています。

センサーデータはnode-red-contrib-blebeacon-scanner (node) – Node-REDというライブラリを利用して受信するのですが、オフィスなどでは非常にたくさんのBluetoothデータが飛んでいるのでその中から目的のセンサーデータを選別する必要があります。

センサーのMACアドレスがわかっていればSwitchノードで簡単に選別できますが、製品によってはわからないものがあるのでBufferデータからそのデバイス特有の値を抜き取ってフィルタリングするケースもあります。

ということで、そのフロー検証用に「Node-REDでBufferデータを作成する方法とBufferデータをカウントする方法」をメモとして残しておきます。

フロー

Image from Gyazo

[{"id":"a84165ef87d333e0","type":"debug","z":"bb21148740587dc0","name":"debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":430,"y":220,"wires":[]},{"id":"c9eae97fd5269bdc","type":"function","z":"bb21148740587dc0","name":"buffer作成","func":"var data = Buffer.from('abcde');\n\nvar len = data.length;\n\nmsg.payload = data;\nmsg.len = len;\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":160,"wires":[["a84165ef87d333e0"]]},{"id":"3ed31b3db6819228","type":"inject","z":"bb21148740587dc0","name":"開始","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":100,"wires":[["c9eae97fd5269bdc"]]}]

Image from Gyazo

functionノードはこちら。

Image from Gyazo

debugノードにbuffer化したデータとデータ数が表示されます。