kato

初めて「EnOceanスイッチ」を使ってみた

5/3時点

目標:

この記事に通して、あなたはRaspberry PiでNode-REDを使ってEnOceanスイッチから発した信号を覗き込み必要な情報だけ取り出すことができるようになります。

必要なもの:

  1. OS、SSH接続とNode-REDがセットアップ済みのRaspberry Pi1
  2. EnOceanスイッチ2
  3. PC(今回はMacで解説していきますが、Windowsも手順は同じです)

事前準備:

ラズパイで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

  1. インストール手順はhttps://blog.smartlight.co.jp/?p=1492 ↩︎
  2. 現時点は販売終了になっていますhttps://smartlight.co.jp/product/enocean-easyfit-ble-ewsdb/ ↩︎
  3. https://flows.nodered.org/node/node-red-contrib-beacon-scanner ↩︎