EnOcean

EnOceanゲートウェイとして使用できるAruba Instant APの設定方法 3/3

EnOceanゲートウェイAruba AP-505

前回はAruba AP-505の”iot transportProfile”を作成しました。

これで、AP側の設定は完了したので、今回はEサーバー側の設定をおこなっていきます。

ぷらっとホーム社のOpenBlocks VX2をサーバーに使う

AP-505はEnOceanのゲートウェイとして利用できますが、その信号をどのように使うかはサーバーを設置する必要があります。

Openblocksvx2

今回は、ぷらっとホーム株式会社の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

UntitledImage

まずはwebsocket inを使い、パスを”/ws/enocean”で設定。

次に、node-red-contrib-protobuf (node) – Node-REDこちらのノードを追加します。

UntitledImage

パレットの管理からノードの追加。

UntitledImage

追加できました。

このdecodeノードにprotoファイルを使いますが、Arubaのページに公開されています。

ただし、ASP(ArubaSupport Portal)アカウントが必要になりますので登録しておいてください。

Aruba Support Portal

UntitledImage

ASPアカウントでログインしたらこちらからprotoファイルはダウンロードできます。

ProtoファイルはOpenBlocksのNode-REDのフォルダにアップロードする必要があるので、その作業を行います。

OpebBlocksのNode-REDフォルダにprotoファイルをアップロード

UntitledImage

SSHでOpenBlocksに接続。

Node-REDのフォルダをfindコマンドで探します。

次にこのフォルダにprotoファイルをアップロードしてunzipするのですが、defaultではunzipがインストールされていないので、まだの人はいれておきましょう。

OpenBlocks IoT VX2でzipとunzipをインストールした|デジタルライト(Digital-light.jp)

UntitledImage

OpenBlocksのNode-REDのメニューからprotoファイルをアップロードします。

UntitledImage

Protoファイルを解凍するために、SSHからフォルダに移動しunzip。

UntitledImage

これでデプロイ。

UntitledImage

しばらくするとAP-505とOpenBlocksのNode-REDのWebsocketが接続されます。

この状態で受信準備OKです。

動作確認

UntitledImage

EnOceanデバイスを用意してdebugノードにこのように表示されればOKです。

フローの改良

上記の状態では、

1. EnOceanのデータはbase64でエンコードされている
2. APからapHealthUpdateというデータが定期的にくる

となっているのでフローの改良が必要です。

UntitledImage

パレットの管理から”node-red-node-base64″というノードを追加します。

UntitledImage

このようにフローを作成。

UntitledImage

Switchノードでは、msg.payload.meta.nbTopicの値を確認し、apHealthUpdateなのかEnOceanからのシリアルデータなのかを分岐させます。

UntitledImage

base64ノードは、msg.payload.nbSData[0].nbSerialPayloadのデータを変換します。

UntitledImage

こうすることで、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センサーやスイッチのゲートウェイとして利用できれば、デジタルツインとして、空間や設備の利用状況をデジタルデータとしてストックすることができ、そのデータを視覚化、解析することで、今まではなかった便利な使い方がこれからビジネスになっていくでしょう。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です