enebular

enebularとローカルのNod-REDをshiftr.ioのMQTTブローカーで接続する方法

本記事はenebular Advent Calendar 2020の10番目の記事です。

サーバー側にあるenebularのNode-REDと、Localにある設備制御用のKNX-IoTゲートウェイで動くNode-REDを、MQTTで接続するための方法として、enebular blogで紹介されていた shiftr.ioのMQTTブローカーを使ってみようと思います。

enebularとNoodlをshiftr.io MQTTブローカー経由で連携しよう | enebular blog

shiftr.io

shiftr.ioのサイトへ行きます。

shiftr.io

12 03

右上の”Try”をクリック

12 03

接続情報が表示されるので、それをコピーしておきます。

mqtt://public:public@public.cloud.shiftr.io

ローカルNode-REDで確認

12 03

まずは上のように、MQTT OutとInのノードをつかって、MQTTメッセージを送るのと受け取るフローを作成。

12 03

MQTT Outノードをクリックし、サーバーで”新規にmqtt-brokerを追加”の横の鉛筆マークをクリック。

サーバーに先程のmqtt接続情報をペーストして更新。

mqtt://public:public@public.cloud.shiftr.io

12 03

サーバーの名前を”SHiftr”にして、トピックは”test”とします。

12 03

次に”mqtt-in”ノードをクリック。

サーバーを先程の”Shiftr”にして、トピックも”test”にします。

これでデプロイ。

ローカルNode-REDにて確認

12 03

こちらがデプロイした画面。緑で”接続済”となっていれば正常です。

そうでなければ、何かが間違ってます。

Injectノードでタイムスタンプを送ります。

12 03

このように表示されれば成功です。

enebularのNode-REDで確認

次はenebularのNode-REDでフローを作ってみましょう。

12 03

先程と同じようにmqtt-inとoutを使ってフローを作成します。

ただ、Injectノードについては、ローカル側と区別するため、文字列で”enebular”と送るようにしました。

では、まずは、enebular側でInjectノードをクリック

12 03

enebular側のデバッグに無事に表示されました。

enebularとローカルのNode-REDがつながってるか確認

次に、ローカルのNode-REDのデバッグを見てみます。

12 03

無事に、”enebular”というメッセージがきていることを確認できました。

12 03

ローカルのNode-REDにInjectノードを追加して、”ローカル”という文字列をmqtt-outノードに贈ります。

12 03

では、LOCALをクリック。

12 03

ローカル側では無事に”ローカル”とデバッグに表示されています。

12 03

enebular側でも”ローカル”と表示されました。

よって、無事にenebular側とローカル側のNode-REDが、shiftr.ioのmqttブローカーを通して繋げられることが確認できました。

まとめ

設備制御のサーバーはローカルで動かすので、外部から接続することで便利ですが、いろいろと手間がかかったりします。

でも、moqttノードを通して必要なメッセージを受信できたり送ることができれば、低コストでかなり柔軟につかうことができそうです。

今後は、enebularとローカルのKNX-IoTサーバーで動くNode-REDをつなげて、いろんな試みをしていきたいと思います。

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