モデル別実行レシピ

Frigateの検知をHome Assistantの通知に:MQTT接続から条件まで

検知はFrigateが行い、通知するかどうかはHome Assistantが決めます。

Frigateは検知結果をMQTT1で出し、Home Assistantはそのイベントを受けて自動化を実行します。両方が同じブローカーを見る必要があるため、MQTT連携を先に設定し、その後にFrigate連携を足します。

実行条件と要点
  • Frigate連携はMQTT連携が先に設定されている必要があります。
  • Frigateの設定でMQTTを有効にし、同じブローカーのアドレスを入れます。
  • 通知は人とゾーンの条件で絞ると疲れが減ります。

検知と通知の間にはMQTTがあります

Frigateはカメラ映像から人や車両を見つけ、その結果をイベントとして出します。Home Assistantはそのイベントを受けて、照明を点けたりスマホ通知を送る自動化を実行します。

2つのプログラムは互いを直接呼ばず、ブローカーを通してやり取りします。MQTT連携がないと、Frigate連携を足してもエンティティが正しく作られません。

RTX 3090を挿したケース、色のブロックがコンベヤーで棚へ運ばれ、ネットワーク図のカードが置かれた作業空間
検知結果はブローカーを経てHome Assistantへ届き、通知するかは自動化が決めます。

FrigateでMQTTを有効にする

Frigateの設定ファイルのmqtt項目にenabled、ブローカーのアドレス、アカウントを入れます。Home Assistantと同じブローカーを見る必要があるので、アドレスを正確に合わせます。

変更後にFrigateを再起動すると、ログにブローカー接続が出ます。失敗する場合はユーザー名、パスワード、ポートの順に確認します。

FrigateのMQTT設定
mqtt:
  enabled: True
  host: 192.168.0.10
  user: mqtt-user
  password: your_password
Home Assistantと同じブローカーを見るよう、アドレスとアカウントを合わせます。パスワードは設定ファイルに直接置かず分けておきます。

Frigate連携を入れる

Home AssistantのHACSでFrigateを入れ、再起動してからデバイスとサービスでFrigate連携を追加します。連携はブローカー経由でFrigateのカメラとイベントをエンティティとして見せます。

メディアブラウザで録画を見るにはmedia_sourceが有効である必要があります。通知にスナップショットを付けるなら、この設定も確認します。

ノートPCの横の机と棚に二台の金属製装置が置かれ、ケーブルが手前のスイッチボックスにつながっている
人とゾーンの条件を掛けると、通り過ぎる車や通行人の通知が大きく減ります。

通知の自動化を作る

自動化のトリガーをMQTTイベントにし、検知された物体が人のときだけ通知します。車や動物まで全部知らせると1日に何十回も鳴り、すぐ切ってしまいます。

玄関や庭のようにゾーンを決めておくと、通り過ぎる人を除けます。夜の時間帯だけ送る条件を足すと、通知がずっと役に立ちます。

通知疲れを減らす調整

同じ人が数秒の間に何度も検知されると、通知も何度も届きます。最後に通知した時刻を記録し、一定時間は再送しないようにすると重複が減ります。

通知の文にカメラ名と時刻を入れると、どこで撮られた場面かすぐ分かります。スナップショットも送るなら、通知サービスが画像に対応しているか確認します。

モニターの波形と文書が鍵のかかった本体に入り、クラウドへ向かう点線にはX印がついた図
重複通知を防ぐには、最後に通知した時刻を記録します。

用語の注釈

  1. MQTT — 機器やプログラムがブローカーを介して値を発行・購読する軽量メッセージプロトコルです。同じブローカーを見るプログラム同士だけが値をやり取りします。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
Frigateは検知結果をMQTTで出し、Home Assistantはそのイベントを受けて自動化を実行します。両方が同じブローカーを見る必要があるため、MQTT連携を先に設定し、その後にFrigate連携を足します。