5/3時点
目標:
この記事に通して、あなたはRaspberry PiでNode-REDを使って、EnOceanスイッチから発した信号を覗き込み、必要な情報だけ取り出すことができるようになります。
必要なもの:
事前準備:
ラズパイでBLE Beacon Scannerのインストール手順
ラズパイと接続
Mac:ターミナルを起動して、コマンド“ssh ユーザ名@ラズパイのIPアドレス”でラズパイに接続します
Windows:コマンドプロンプトでコマンド“ssh ユーザ名@ラズパイのIPアドレス”でラズパイに接続します

BLE Beacon Scannerインストールコマンド
公式ドキュメント3を参考しまして、NobleというBLE通信ライブラリが必要なドライバーをインストールする必要があり、以下の2つのコマンドを実行してください:
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

そしてBLE Beaconから情報を取得するためのNode-REDのノードをインストール:
npm install node-red-contrib-beacon-scanner

ブラウザでNode-REDを使う
ラズパイのIPアドレスを確認しよう
以下のコマンドで確認できたラズパイのIPアドレスをコピーしてください:
hostname -I

ラズパイでNode-REDサーバを起動
ラズパイのターミナルでNode-REDサーバを起動:
“port in use”のエラーが出た場合はもうすでに起動されていることになっていますので、そのまま次の手順へ進んでください
node-red

PCのブラウザでラズパイのNode-REDにアクセス
“先ほどコピーした自分のラズパイのIPアドレス:1880”でブラウザでNode-REDにアクセスできます、私の場合は:”192.168.1.10:1880″


Node-REDでblebeacon-scannerノードをインストール
Node-RED画面の右上の3本線をクリック

“Manage palette”をクリック

“blebeacon”で検索して、node-red-contrib-blebeacon-scannerをインストール

Manage paletteを閉じ、Node-RED画面の左のノードの一覧に青色のBLE Beacon Scannerが出現します

EnOceanスイッチが発する信号をキャッチしてみよう
①Node-RED画面右上の3本線をクリック

②“import”をクリック

③以下のフローをコピーして、Clipboardに貼り付けて、“Import”をクリック

[{"id":"3f37bc269a0f1d20","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"9ac5b3292dcbbb62","type":"debug","z":"3f37bc269a0f1d20","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":380,"wires":[]},{"id":"932e75888fc03a5d","type":"BLE Beacon Scanner","z":"3f37bc269a0f1d20","name":"","x":100,"y":380,"wires":[["3879b4788f688089"]]},{"id":"3879b4788f688089","type":"switch","z":"3f37bc269a0f1d20","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"e21500015886","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":330,"y":380,"wires":[["2fdf8eab3c4bbcc8"]]},{"id":"67f5fd070f48c2ab","type":"function","z":"3f37bc269a0f1d20","name":"function 1","func":"var Packet = msg.payload.other;\nvar data = Packet[6];\nmsg.payload = data;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":680,"y":380,"wires":[["9ac5b3292dcbbb62"]]},{"id":"2fdf8eab3c4bbcc8","type":"delay","z":"3f37bc269a0f1d20","name":"Rate Limit","pauseType":"rate","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"0.1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":500,"y":380,"wires":[["67f5fd070f48c2ab"]]}]
④ノード”switch”をダブルクリックして、”payload.id”の下の欄にあなたのEnOceanスイッチの製品ID(スイッチの裏に貼っているはず)に変えましょう


⑤“Done”をクリックしよう

⑥画面右上の”Deploy”をクリックして、変更を適用する

⑦画面右上の虫のアイコンをクリックして、デバッグメッセージを見れるようにしよう

⑧EnOceanスイッチを押して、受信を確認

推して離して、2つの受信が成功しました!
最後に
Node-REDのフローやEnOceanスイッチについての詳しい説明は、こちらの動画を参考にして見てください:https://youtu.be/N1lxQTb1qk4?si=Zu9Mjq-1cFo5U2fi
- インストール手順はhttps://blog.smartlight.co.jp/?p=1492 ↩︎
- 現時点は販売終了になっていますhttps://smartlight.co.jp/product/enocean-easyfit-ble-ewsdb/ ↩︎
- https://flows.nodered.org/node/node-red-contrib-beacon-scanner ↩︎