概要:
この記事では、MQTTを使用してカメラをGenetec Industrial IoTプラグインと統合する方法を説明します。
本書は、mosquitto-2.0.21、TNO-C3020TRA、およびGenetec Industrial IoTプラグインを組み合わせてシステムを構築する方法を扱っています。
文書は3つの部分に分かれています:
● パート1ではMosquitto MQTTブローカーについて説明します。
● パート2ではHanwha VisionカメラのMQTT設定方法を説明します。
● パート3ではGenetec Industrial IoTプラグインでのMQTT設定方法を説明します。
ステップバイステップガイド:
パート1. Mosquitto MQTTブローカーの設定
このセクションでは、MQTT通信のためのMosquittoメッセージブローカーの設定方法を説明します。
1. 無料のMQTTツールである「mosquitto」をダウンロードしてインストールします。
|
注意:Mosquittoブローカーはデフォルトでポート1883を使用しますが、ポート1883は他のアプリケーションで一般的に使用されているため、インストール前にそのポートが既に使用されていないか確認することが重要です。 コマンドプロンプト(CMD)を開き、コマンドnetstat -ano | findstr "1883"を実行してポート1883が現在使用中か確認してください。コマンド実行後何も返されなければ、そのポートは使用されていません。もし他のアプリケーションがポート1883を使用している場合は、別のポートを使用するよう設定を変更してください。 |
2. ユーザーパスワードの作成(任意)
① コマンドプロンプト(CMD)を開きます。
② Mosquittoがインストールされたフォルダに移動します。(例:C:\Program Files\mosquitto)
③ 以下のmosquitto_passwdコマンドを使用してパスワードファイルを作成します。コマンド実行時にパスワードの入力を求められます。暗号化されたパスワードを含むファイルはMosquittoのインストールディレクトリに保存されます。
|
[コマンド構文] |
● オプション -c: 新しいファイルを作成します(既存のファイルがあれば上書きします)。
● passwordfile: パスワード情報を保存するファイル名。
● username: 任意のユーザー名を入力します。
3. mosquitto.confファイルを編集し、使用するポートを指定し、パスワード認証を有効にします。赤枠内の内容を設定ファイルに必ず追加してください。mosquitto.confファイルはMosquittoのインストールディレクトリにあります。
|
|
● listener: Mosquittoが使用するポートを入力します。ポート1883が既に使用されている場合は別のポートを選択してください。
● allow_anonymous: 匿名ユーザーの接続を許可するかどうかの設定です。falseに設定すると認証されたユーザーのみ接続可能になります。
● password_file: パスワードファイルのパスを入力します。
4. メッセージブローカーを手動で起動するかサービスを再起動します。
① Mosquitto Brokerサービスを再起動します。
② または、Mosquitto Brokerサービスを停止した後に手動でMosquittoブローカーを起動できます。
|
[コマンド構文] |
● -v: 詳細なログ出力を有効にするverboseモード。
● -c mosquitto.conf: mosquitto.conf設定ファイルを使用してMosquittoブローカーを起動。
パート2. カメラの設定
このセクションでは、温度変化検知イベントが発生したときにMQTTメッセージを送信するようカメラを設定する方法を説明します。
1. MQTTクライアントの設定
① MQTTを有効にします。
② メッセージブローカーのIPアドレスとポート番号を入力します。
③ メッセージブローカーのユーザー名とパスワードを入力します。
2. MQTTパブリケーションの追加
① Event – MQTT – Client setup – Publication/subscriptionに移動します。
② 発行したいTopicとPayloadを入力します。例として、トピックに「temperature」、ペイロードに「現在の温度は30度を超えています」と入力します。
3. 温度検知イベントを有効にする
① Analytics – Temperature detectionに移動します。
② [Enable temperature detection]をチェックします。
③ 検知条件を[Above]に設定し、検知閾値を30度に設定します。
4. イベントルールを作成し、温度変化検知時にMQTTメッセージを発行するよう設定します。
① イベントトリガーを追加し、「Temperature Detection」イベントタイプを選択します。
② イベントアクション設定で、MQTTセクションの事前設定済みMQTTパブリケーションを選択します。
パート3. Genetec Industrial IoTプラグインの設定
このセクションではGenetec Industrial IoTプラグインの設定方法を説明します。プラグインを使用するには、GSC-IIoTパートを含む別途Genetecライセンスが必要です。
1. Config Toolを開き、Pluginsタスクを選択します。
2. エンティティを追加し、プラグインタイプとしてIndustrial IoTプラグインを選択します。
3. ツリーリストでIndustrial IoTプラグインを選択し、Protocolsタブに移動します。
4. 以下の手順に従いMQTTプロトコルを有効化し、MQTTブローカー接続を設定します。
① MQTTクライアントプロトコルをオンにします。
② MQTTブローカーを追加します。
③ Connection Infoセクションで、パート1で設定したMQTTブローカーのIPアドレスとポート情報を入力します。
④ Securityセクションで、「Encryption」は「None」を選択し、認証を有効にしてユーザー名とパスワードを入力します。
5. MQTTデバイスの追加
① Devicesタブを選択します。
② 「Add a device」ボタンをクリックします。
③ プロトコルとしてMQTTクライアントを選択します。
④ MQTTクライアントと通信するMQTTブローカーを選択します。
6. カメラが発行しているトピックを購読するMQTTデバイスにデータポイントを追加します。
① 「Add a data point」ボタンをクリックします。
② 購読したいMQTTトピックを入力します。例えば、カメラが「temperature」トピックに発行している場合、「temperature」を購読します。
③ データフォーマットタイプとしてRawを選択します。RawとJSONが選べ、Rawはトピックのペイロードをそのまま出力したい場合に使用します。
7. ONVIF Profile M経由で発行されたJSONデータを使用したい場合は、以下の手順で設定してください。
① 「Add a data point」ボタンをクリックします。
② データフォーマットをJSONに選択します。
③ 必要に応じてMQTTトピックとJSONパスを入力します。ONVIF Profile Mのすべてのトピックを購読するか、特定のトピックを購読しJSONペイロードから特定の値を抽出します。
i. ONVIF Profile Mが発行するすべてのトピックを購読する場合、例の(a)のようにトピックに#、JSONパスに$を入力します。
ii. ONVIF Profile Mが発行する複数トピックの中で(b)のトピックのみ購読し、(c)のようにJSONペイロード内の@MaxTemperature値のみ表示したい場合、以下のように入力します。
● MQTTトピック:
wisenet/onvifej/VideoAnalytics/Radiometry/BoxTemperatureReading/&//TemparetureDetectionModule-01
● JSONパス:
$.Data.Reading.BoxTemperatureReading.@MaxTemperature
8. Genetec Security Desk Monitoringタブで追加したMQTTデバイスをタイルに割り当て、受信データ値を監視します。
① Security Deskを開き、Monitoringタスクを選択します。
② ツリーからMQTTクライアントデバイスをダブルクリックします。
i. データフォーマットタイプがRawに設定されている場合、(a)のようにカメラが発行したトピックのペイロード内のテキストがそのまま表示されます。
ii. データフォーマットタイプがJSON、トピックが#、JSONパスが$に設定されている場合、(b)のようにONVIF Profile Mを使用して発行されたすべてのトピックが順次表示されます。
iii. データフォーマットタイプがJSONで、トピックとJSONパスに目的の対象が指定されている場合、(c)のようにMaxTemperatureなど特定の値のみ表示できます。
コメント
0件のコメント
サインインしてコメントを残してください。