この記事は3つに分けてアップしました。
前回はAruba AP-505の”iot transportProfile”を作成しました。
これで、AP側の設定は完了したので、今回はEサーバー側の設定をおこなっていきます。
ぷらっとホーム社のOpenBlocks VX2をサーバーに使う
AP-505はEnOceanのゲートウェイとして利用できますが、その信号をどのように使うかはサーバーを設置する必要があります。
今回は、ぷらっとホーム株式会社のOpenBlocks IoT VX2をサーバーとして利用します。
なお、OpenBlocks IoT VX2の初期セットアップやNode-REDのインストールなどは今回は割愛します。
Node-REDを使ってIoT Gatewayからのデータを簡単にデコード
Aruba社の日本語フォーラムにて、kshimonoさんが”[IoT] Node-RED を使ってIoT Gatewayからのデータを簡単にデコードという記事でやり方を解説しております。
今回の一連の記事は、この内容をもとに自分でも実機を動かして確認した方法です。
Aruba AP-505の設定はすでに終わっているので、Node-RED側の設定をやっていきます。
Node-REDフローの作成1
まずはwebsocket inを使い、パスを”/ws/enocean”で設定。
次に、node-red-contrib-protobuf (node) – Node-REDこちらのノードを追加します。
パレットの管理からノードの追加。
追加できました。
このdecodeノードにprotoファイルを使いますが、Arubaのページに公開されています。
ただし、ASP(ArubaSupport Portal)アカウントが必要になりますので登録しておいてください。
ASPアカウントでログインしたらこちらからprotoファイルはダウンロードできます。
ProtoファイルはOpenBlocksのNode-REDのフォルダにアップロードする必要があるので、その作業を行います。
OpebBlocksのNode-REDフォルダにprotoファイルをアップロード
SSHでOpenBlocksに接続。
Node-REDのフォルダをfindコマンドで探します。
次にこのフォルダにprotoファイルをアップロードしてunzipするのですが、defaultではunzipがインストールされていないので、まだの人はいれておきましょう。
OpenBlocks IoT VX2でzipとunzipをインストールした|デジタルライト(Digital-light.jp)
OpenBlocksのNode-REDのメニューからprotoファイルをアップロードします。
Protoファイルを解凍するために、SSHからフォルダに移動しunzip。
これでデプロイ。
しばらくするとAP-505とOpenBlocksのNode-REDのWebsocketが接続されます。
この状態で受信準備OKです。
動作確認
EnOceanデバイスを用意してdebugノードにこのように表示されればOKです。
フローの改良
上記の状態では、
1. EnOceanのデータはbase64でエンコードされている
2. APからapHealthUpdateというデータが定期的にくる
となっているのでフローの改良が必要です。
パレットの管理から”node-red-node-base64″というノードを追加します。
このようにフローを作成。
Switchノードでは、msg.payload.meta.nbTopicの値を確認し、apHealthUpdateなのかEnOceanからのシリアルデータなのかを分岐させます。
base64ノードは、msg.payload.nbSData[0].nbSerialPayloadのデータを変換します。
こうすることで、EnOceanのデータをbufferで受信できるので、あとはEnOceanのデバイスごとに必要なデータを取り出し活用することができます。
フロー
[{"id":"027f576eca4e2f42","type":"websocket in","z":"f26a6bb4d2c89505","name":"Websocket","server":"7d04f742b58862ac","client":"","x":180,"y":100,"wires":[["3b32d7113671cb4f"]]},{"id":"3b32d7113671cb4f","type":"decode","z":"f26a6bb4d2c89505","name":"","protofile":"89e81d3e521b51d1","protoType":"Telemetry","x":300,"y":180,"wires":[["3cff55a01351a9a8"]]},{"id":"e4e2dc4a749369f4","type":"debug","z":"f26a6bb4d2c89505","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":830,"y":320,"wires":[]},{"id":"3cff55a01351a9a8","type":"switch","z":"f26a6bb4d2c89505","name":"DATA切り替え","property":"payload.meta.nbTopic","propertyType":"msg","rules":[{"t":"eq","v":"serialDataNb","vt":"str"},{"t":"eq","v":"apHealthUpdate","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":3,"x":420,"y":260,"wires":[["eecd5f81f9544c46"],["e4e2dc4a749369f4"],[]]},{"id":"eecd5f81f9544c46","type":"base64","z":"f26a6bb4d2c89505","name":"","action":"","property":"payload.nbSData[0].nbSerialPayload","x":620,"y":240,"wires":[["e4e2dc4a749369f4"]]},{"id":"7d04f742b58862ac","type":"websocket-listener","path":"/ws/enocean","wholemsg":"false"},{"id":"89e81d3e521b51d1","type":"protobuf-file","protopath":"/var/webui/app/extnodes/aruba-iot-nb.proto","watchFile":true}]
まとめ
以上、EnOceanゲートウェイとして使用できるAruba Instant APの設定方法をご紹介しました。
これまでセンサーやスイッチは電気設備に属することが多かったのですが、多くのオフィスビルに備え付けられているWi-Fiのアクセスポイントが、EnOceanセンサーやスイッチのゲートウェイとして利用できれば、デジタルツインとして、空間や設備の利用状況をデジタルデータとしてストックすることができ、そのデータを視覚化、解析することで、今まではなかった便利な使い方がこれからビジネスになっていくでしょう。
この記事は3つに分けてアップしました。