について
MQTT(Message Queuing Telemetry Transportの略)は、モノのインターネット(IoT)でデバイス間通信に広く使用される軽量で効率的なメッセージング プロトコルです。限られたネットワーク帯域幅と低消費電力デバイスで動作するように設計されており、リモートセンサー、モバイルデバイス、および様々な小規模ガジェットをインターネットに接続するのに理想的です。
Agent DVR はMQTT にイベントを発行することも、それを通じてコマンド を受け取ることもでき、カメラとスマートホームまたはホームオートメーションシステムの間の柔軟なブリッジになります。
接続中
「設定」メニューを使用して Agent DVR を MQTT サーバーに接続します。接続すると、アラートアクションを設定して MQTT サーバーにメッセージを発行できます。詳細についてはMQTT サーバー設定を参照してください。
これを構成するには、デバイスを編集してメニューからアクションを選択します。アラート(またはその他のイベント)のアクションを追加し、タスクタイプとして MQTT を選択します。ここで、投稿するトピックとメッセージを指定できます。
投稿先のトピック(例:Agent/alerts)を指定し、それに応じてメッセージを作成します。
コマンド送信
Agent DVR は、SERVER/commands トピック上の MQTT メッセージを受信して処理することもできます。SERVER はサーバー名です (サーバーメニューに表示され、設定で編集可能)。スラッシュ、アンダースコア、ハイフンは MQTT トピックのサーバー名から削除されます。これらのコマンドは HTTP API と同様の形式です。/command を cmd= に置き換えるだけです。
すべてのデバイスをオンにするには: cmd=allon。
特定のデバイスで写真を撮るには: cmd=snapshot&ot=2&oid=1。
トリップワイヤーの交差カウンターをカメラでリセットするには: cmd=resettripwires&ot=2&oid=1を使用します。
mosquitto を使用して、次のようなコマンドを送信できます (SERVER をサーバー名に置き換えてください):
mosquitto_pub -t 'SERVER/commands' -m 'cmd=record&ot=2&oid=1'。
Agent DVR はコマンドを実行し、JSON レスポンスを SERVER/responses トピックに送信します。
自動MQTT
Agent DVRは、デフォルトのイベント、ステータス、および使用統計を送信する自動MQTT設定を備えています。この機能を有効にするには、デバイスを編集するときにMQTTタブの「MQTTイベント」オプションを有効にします。
トピックは SERVER/cameras/NAME/ または SERVER/microphones/NAME/ の下で公開されます。ここで SERVER はサーバー名、NAME はデバイス名です(両方小文字、スラッシュは削除)。この設定には、モーション検知、接続済み、アラート、録画、タイムラプス、アラート(作動中の状態)、検出器(モーション検知のオン/オフ)などのトピックのフラグが含まれます。加えて、AI オブジェクト、顔、プレート、サウンド認識からの JSON 結果も含まれます。
カウント機能が有効化済みの トリップワイヤー検出器 を使用しているカメラは次も公開します(v7.7.4.0 以降):
- tripwire: カウント対象の交差ごとに 1 つのメッセージ、例:
{"wire":1,"direction":"left","left":3,"right":2,"total":5} - tripwire_left, tripwire_right, tripwire_total: 現在のカウンター。保持されているため、購読するとすぐに利用可能になります。リセット カウント ボタン、resettripwires コマンド、またはカメラ再起動によって 0 にリセットされます。
Home Assistantを使用している場合、これらのトピックを直接操作する必要はありません。自動セットアップについてはHome Assistantを参照してください。
トラブルシューティング
MQTTで頻繁な切断と再接続が発生する場合、通常はサーバー設定のMQTTセクションで指定されたクライアントIDが複数のクライアントによって使用されていることを示しています。MQTTに接続されている各クライアントが一意のクライアントIDを持つようにすることが重要です。
Home Assistant
Agent DVRは、MQTT ディスカバリーを使用して、Home Assistantに自動的にデバイスを通知できます。カメラとマイクは、Home Assistantにセンサーとスイッチを備えたデバイスとして表示され、YAML構成なしでダッシュボードと自動化で使用する準備が整います。
対応内容
- モーションセンサー:検出器がアクティビティを検出している間、オンになります。
- アラートセンサー:デバイスがアラートを発行している間、オンになります。
- 接続センサー:デバイスがオンラインかどうか。
- 録画センサー:デバイスが録画中の間、オンになります。
- 有効化済みスイッチ:Home Assistantからデバイスのオン/オフを切り替えます。
- アラートスイッチ:Home Assistantからアラートをアーム/ディスアームします。
- 検出器スイッチ:Home Assistantからモーション検知のオン/オフを切り替えます。
- カウント 左、カウント 右、カウント 合計 センサー: トリップワイヤ検出器を使用するカメラの交差カウンター、人物カウント用。(v7.7.4.0+)
統計情報の送信を有効にすると、サーバーもCPU、メモリ、ディスク使用率センサーを備えたデバイスとして表示されます。Agent DVRがオフラインになると、すべてのエンティティがHome Assistantで利用不可と表示されます。
セットアップ方法
MQTT ブローカー(通常、Home Assistant マシン上の Mosquitto アドオン)と、それに接続された Home Assistant の MQTT インテグレーションが必要です。Agent DVR用に追加のポートを開く必要はありません。Home Assistant と同じようにブローカーに接続します。
新規インストール時は、ウェルカム画面のHome Assistantの下にあるブローカーのアドレスとログイン情報を入力するだけです。MQTT とディスカバリーは自動的にオンになり、その後追加するすべてのカメラとマイクが Home Assistant に自動的に表示されます。
後で設定する場合(または既存のインストール環境では)、サーバー設定 - MQTTに移動し、ブローカーを構成して有効化済みとホームアシスタントディスカバリーの両方を有効にしてください。次に、公開したい各デバイスでMQTT イベントを有効にします(デバイス編集時のMQTTタブ)。ディスカバリーがオン中に追加されたデバイスはMQTTイベントが自動的に有効になります。ディスカバリー前に存在していたデバイスは現在の設定のままです。
メモ
- デバイスは Agent DVR がブローカーに接続した数秒以内に Home Assistant に表示されます。デバイスの名前変更またはMQTT イベントの切り替えにより、Home Assistant が自動的に更新されます。
- 詳細設定のMQTT設定のディスカバリープレフィックスは、Home Assistant の MQTT インテグレーションのディスカバリープレフィックスと一致する必要があります。変更していない限り、両方を既定値(homeassistant)のままにしてください。
- ホームアシスタントディスカバリーをオフにすると、エンティティが Home Assistant から削除されます。
- スイッチは Agent DVR のMQTTコマンドを内部で使用するため、MQTT ネットワーク上の他のすべてのデバイスが同じコマンドを送信できます。