ComfortClickをつかってMQTTブローカー設置とデバイスデータを受ける方法

IoT系でデータ量が軽いことでよく利用されているMQTT通信ですが、ビルディングオートメーションで使用するデバイスの中でもやりとりできるものが増えてきました。

ComfortClickのbOSサーバーは、MQTTブローカー機能も持っているので1台こちらを準備しておくだけでMQTTがとても使いやすくなります。

今回は、ComfortClickをつかったMQTTのシステム連携方法をご紹介します。

MQTTの設定

Image from Gyazo

bOS Configuratorを開きDevicesからMQTTを追加します。

Image from Gyazo

外部のMQTTブローカーを利用する場合には、こちらにIPアドレスとポート番号などを入力します。

Image from Gyazo

ComfortClick自身をMQTTブローカーとして利用する場合は、ここをTrueにします。
すると、その時のComfortClickのIPアドレスが自動的に反映されます。(変更があったときは再起動してください)

Image from Gyazo

認証が必要な時はこちらをTrueにします。

Image from Gyazo

Broker EnabledをTrueにします。

MQTT Clientの設定

Image from Gyazo

MQTTを選んで追加からClientを追加します。

Image from Gyazo

それぞれのMQTT ClientはSubrictionsとPublishの機能があります。

Image from Gyazo

switchというClientIDを作成。

Image from Gyazo

Enabledをtrueにします。

Image from Gyazo

MQTTに今追加したswitchというクライアントが表示されました。

MQTT Client subscriptionの設定

Image from Gyazo

外部のデバイスからMQTTでメッセージを受信する場合は、subscriptionsからAddを押してsubscriptionを追加します。

Image from Gyazo

Topicを入力します。

Image from Gyazo

SubscribeをTrueにします。

Node-REDでMQTTテスト用のフローを作成

Image from Gyazo

Node-REDでMQTTテスト用のフローを作成します。

[{"id":"7e5653aa9aa6ff6e","type":"inject","z":"b6bbb483cd7e090b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":270,"y":140,"wires":[["b5aa2010f5ef59cc"]]},{"id":"b5aa2010f5ef59cc","type":"mqtt out","z":"b6bbb483cd7e090b","name":"ComfortClick","topic":"switch1","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"44c41fd78167d185","x":490,"y":180,"wires":[]},{"id":"6d5b8c66ec12bb72","type":"inject","z":"b6bbb483cd7e090b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":270,"y":220,"wires":[["b5aa2010f5ef59cc"]]},{"id":"44c41fd78167d185","type":"mqtt-broker","name":"ComfortClick","broker":"192.168.1.52","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Image from Gyazo

トピックは先ほどsubscriptionで入力した名前。

Image from Gyazo

MQTTブローカーはComfortClickサーバーのIPアドレスを入力します。

InjectノードはTrueとFalseを送ります。

Image from Gyazo

Node-REDのInjectNodeを押すとComfortClickのSubscriptionのValuesが更新されれば成功です。

まとめ

以上、ComfortClikckをつかってMQTTブローカー設置とデバイスデータを受ける方法をご紹介しました。

ComfortClickではMQTTでPublishする機能もありますが、それはあらためてご紹介します。