Mosquittoを使用したMQTTのテスト方法
対象モデル:一部のHanwhaカメラ
概要
本記事では、Mosquitto MQTT をインストールおよび使用し、この機能をサポートするHanwhaカメラでの利用方法について説明します。MQTTは、帯域幅が限られた制約のあるデバイス向けに設計されたシンプルなメッセージングプロトコルです。MQTTは複数のIoTデバイス間でデータを交換するのに最適なソリューションです。MQTT通信はパブリッシュ・サブスクライブ方式で動作します。デバイスは特定のトピックにメッセージをパブリッシュし、そのトピックを購読しているすべてのデバイスがメッセージを受信します。Mosquittoはフリーソフトウェアであるため、本記事は概念実証として扱うべきです。Mosquittoサーバーがどの程度のトラフィックを処理できるかは不明です。
MQTTの設定
MQTTを設定するには:
- PCにMosquittoをダウンロードしてインストールします。
-
C:\Program Files\mosquitto に移動し、mosquitto.confファイルを編集します。
- mosquitto.confファイルの末尾に以下を追加します:
- listener 1883 0.0.0.0 # TCP
- allow_anonymous true
- log_timestamp_format %Y-%m-%dT%H:%M:%S
- コマンドプロンプトを開き、mosquitto ディレクトリに移動します。
- 以下のコマンドを入力してログ記録を開始します:
- C:\Program Files\mosquitto> mosquitto.exe -c mosquitto.conf -v
- C:\Program Files\mosquitto> mosquitto.exe -c mosquitto.conf -v
- ソースとなるカメラにログインします。
-
Setup > Event > MQTT > Client Setupを選択します。
注意: MQTTセクションがない場合、そのカメラはMQTTをサポートしていません。 -
MQTT > Client Setup画面で以下の設定を使用します。
- MQTT: 有効
- Address: Mosquittoアプリケーションを実行しているPCのIPアドレス
- Port: mosquitto.confファイルのリスナーポート
- Username: 任意のユーザー名
- Transport Protocol: TCP
- Custom Client ID: 有効
- Client ID: 任意のクライアントID
- Keep Alive Interval: 30
- Connect Timeout: 60
- Auto Reconnect: 有効
- Clean Session: 有効
-
Default Topic Prefix: 任意のプレフィックス
-
MQTT > Publication/subscription.を選択します。
-
PublicationタブでAddをクリックします。
-
Name、Topic、Payloadメッセージを入力します。
-
Event > Event Rule を選択し、Addをクリックします。
-
Event Triggerを選択し、MQTTドロップダウンのステップ8で作成したNameを選択します。
-
OKをクリックします。
- MosquittoがインストールされたPCでサブスクリプションをテストします。以下のコマンドを実行するにはmosquittoディレクトリに移動する必要があります。
入力: mosquitto_sub.exe –h <MosquittoサーバーIP> –p [ポート] –t [トピック] –i mosq_sub –c -d
例:
C:\Program Files\mosquitto>Mosquitto_sub.exe -h 10.1.4.88 -p 1883 -t testpublish -i mosq_sub -c -d
モーション検知(MD)がトリガーされると、カメラはステップ8で定義したトピックをパブリッシュします。これはmosquittoのサブスクリプションテストで確認できます。
他のMQTT対応カメラやIoTデバイスも、設定したパブリケーションルールをサブスクライブできます。
-
Event Trigger列でMQTTサブスクリプションを選択します。
-
Subscriptionドロップダウンでサブスクリプションを選択し、Applyをクリックします。
MQTTサブスクリプションは、イベントアクションが選択されていない場合、カメラのイベントログを更新します。