メインコンテンツまでスキップ

reCamera Pro と Home Assistant 連携:サウンドトリガー付き写真アラート

はじめに

この Wiki では、reCamera Pro を Home Assistant (HA) と連携させ、特定の音が検出されたときにカスタムメッセージと現在のカメラスナップショットを Home Assistant ダッシュボードに自動送信する方法を説明します。双方向通信には MQTT プロトコルを使用し、reCamera Pro が指定した音(例:"help")をしきい値を超える信頼度で検出すると、自動的にアラートメッセージとライブ画像を HA に送信します。

ハードウェアの準備

  • Home Assistant を実行しているホスト(Docker、HA OS、venv デプロイをサポート)
  • reCamera Pro デバイス
reCamera Pro

HA への reCamera アドオンのインストール

Home Assistant に reCamera アドオンを追加し、reCamera Pro からのメッセージと画像を HA 上に表示できるようにします。インストール方法は 2 通りあり、推奨の自動インストールスクリプトと手動インストールがあります。

方法 1:自動インストールスクリプト(推奨)

install.py スクリプト をダウンロードして実行し、HA の設定ディレクトリを入力すると、インストール全体が自動的に完了します。

# Download install.py (includes all files, no additional downloads needed)
python3 install.py

# Or specify the configuration directory directly (non-interactive)
python3 install.py /home/zsz/HA/config

このスクリプトは自動的に以下を行います:

  1. 統合コードを custom_components/recamera_chat/ にコピー
  2. フロントエンドファイルを www/recamera_chat/ にコピー
  3. configuration.yamlrecamera_chatpanel_custom の設定を追記(元のファイルを自動バックアップ)
  4. すべてのファイルが正しく配置されているか検証
ヒント

このスクリプトは Linux / Windows / macOS に対応しており、Docker、HA OS、venv を含むすべてのデプロイ方法で動作します。

インストール後は、Step 4: Restart Home Assistant に進んでください。

方法 2:手動インストール

Step 1: デプロイパッケージをダウンロード

recamera_chat.zip デプロイパッケージをダウンロードして解凍します。解凍後のディレクトリ構造は次のとおりです:

recamera_chat/
└── custom_components/
└── recamera_chat/
└── __init__.py
└── const.py
└── manifest.json
└── services.yaml
└── www/
└── recamera_chat/
└── panel.js
└── panel.html
└── configuration_snippet.yaml

Step 2: ファイルを HA 設定ディレクトリにコピー

custom_components フォルダと www フォルダを Home Assistant の設定ディレクトリにコピーします。

注記

HA 設定ディレクトリの場所はインストール方法によって異なります:

  • HA OS: Samba または SSH 経由で /config にアクセス
  • Docker: マウントした設定ディレクトリ(例:/home/zsz/HA/config
  • venv: HA をインストールしたディレクトリ
危険

www/custom_components/同じ階層のディレクトリであり、どちらも設定ルートディレクトリ直下に配置する必要があります。www/custom_components/ の中に入れないでください。そうしないとサイドバーに表示されません。

Docker デプロイ例:

# Assuming the HA configuration directory is /home/zsz/HA/config
cd /home/zsz/HA/config

# Copy the integration files
cp -r recamera_chat/custom_components/recamera_chat custom_components/

# Copy the frontend files
cp -r recamera_chat/www/recamera_chat www/

コピー後のディレクトリ構造は次のとおりです:

/config/
└── custom_components/
└── recamera_chat/
└── __init__.py
└── const.py
└── manifest.json
└── services.yaml
└── www/
└── recamera_chat/
└── panel.js
└── panel.html
└── images/ # Images are automatically saved here
└── configuration.yaml

Step 3: configuration.yaml を編集

HA の configuration.yaml に次の設定を追加します:

# ===== reCamera Chat (MQTT Bidirectional Chat) =====
recamera_chat:
broker: 127.0.0.1 # MQTT broker address (127.0.0.1 if HA and broker are on the same host)
port: 1883 # MQTT broker port
# username: youruser # Uncomment and fill in if authentication is required
# password: yourpass
topic_in: recamera/chat/to_ha # reCamera publishes to this topic -> HA receives
topic_out: recamera/chat/to_camera # HA panel sends -> reCamera subscribes to this topic
message_field: "" # Leave empty = auto-extract message/text/payload/msg/content
max_history: 200 # Maximum number of message history entries

panel_custom:
- name: recamera-chat
sidebar_title: reCamera
sidebar_icon: mdi:camera
url_path: recamera-chat
module_url: /local/recamera_chat/panel.js?v=13
require_admin: false
警告

module_url 内のバージョン番号(例:?v=13)は、panel.js ファイル内のバージョン番号と一致している必要があります。一致していない場合、ブラウザが古いキャッシュを読み込んでしまい、パネルが表示されないことがあります。

Step 4: Home Assistant を再起動

設定を反映させるために HA を再起動します:

  • Web インターフェース: Settings -> System -> 右上の電源アイコン -> Restart
  • コマンドライン(Docker): docker restart homeassistant

Step 5: デプロイを確認

  1. 再起動完了後、HA のサイドバーに reCamera タブ(カメラアイコン付き)が表示されるはずです。
  2. クリックするとチャットインターフェースが表示され、右上に Connected ステータスが表示されます。
  3. 入力ボックスにテキストを入力し、Enter キーを押すか Send ボタンをクリックします。
  4. recamera/chat/to_camera を購読している reCamera 側がメッセージを受信するはずです。
警告

再起動後にサイドバーに reCamera タブが表示されない場合は、次の順序でトラブルシューティングを行ってください:

  1. 設定ルート直下の www/ ディレクトリ内に www/recamera_chat/panel.js が存在するか確認する(custom_components/www/ の下ではないこと)
  2. configuration.yamlpanel_custom 設定ブロックが含まれているか確認する
  3. panel.js 内の ?v=13 のバージョン番号が、configuration.yamlmodule_url 内のバージョン番号と一致しているか確認する
  4. Ctrl+F5 を押してブラウザを強制再読み込みし、キャッシュをクリアする

reCamera Pro の設定

この例ではカメラで写真を撮影する必要があるため、まず reCamera Pro のメインプロセスを停止してカメラリソースを解放する必要があります。次のコマンドを実行します:

pkill -x rkipc

メインプロセスを停止したら、Python プログラムをダウンロードします:reCamera Program

プログラム設定パラメータの変更

プログラムをダウンロードしたら、正しく動作させるために次のパラメータを変更する必要があります:

# ===================== MQTT Configuration =====================

MQTT_HOST = "192.168.6.215" # MQTT Broker Address
MQTT_PORT = 1883 # MQTT Broker Port
TARGET_SOUND = "help" # Name of the sound to detect
CONFIDENCE_THRESHOLD = 94.0 # Trigger threshold, unit: percentage
MQTT_MESSAGE = "Someone is calling for help!!" # Message to send when triggered
  • MQTT_HOST: MQTT Broker のアドレス。HA ホストの IP アドレスを入力します
  • MQTT_PORT: MQTT Broker のポート。1883 を入力します
  • TARGET_SOUND: 検出する音の名前。"help" を入力します
  • CONFIDENCE_THRESHOLD: トリガーしきい値(単位:パーセンテージ)。94.0 を入力します。この値を超える信頼度の場合にのみメッセージと画像が送信されます。
  • MQTT_MESSAGE: トリガー時に送信するメッセージ。HA パネルに表示したい内容を自由に入力できます。

コードを reCamera Pro にアップロードして実行

  1. 次のコマンドを使用して、変更したコードを reCamera Pro にアップロードします:
scp voice_capture.py root@<device_IP>:/userdata
  1. 次のコマンドを実行してコードを起動します:
python3 ./voice_capture.py

期待される結果

  1. サウンド検出プログラムを起動すると、reCamera Pro は周囲の音を継続的に監視します。
  2. 指定した音(例:"help")がしきい値を超える信頼度で検出されると、自動的に現在のシーンを撮影します。
  3. カスタムアラートメッセージと画像を MQTT 経由で Home Assistant に送信します。
  4. HA サイドバー内の reCamera パネルに、受信したメッセージと画像が表示されます。

トラブルシューティング

問題考えられる原因解決策
HA サイドバーに reCamera タブがないファイルパスが誤っている、または設定が反映されていないwww/recamera_chat/panel.js のパスと configuration.yaml の設定を確認する
パネルが "Disconnected" と表示されるMQTT 接続に失敗しているMQTT Broker のアドレスとポートが正しいか確認する
サウンド検出が反応しないマイクが接続されていない、または権限不足USB マイクが接続されていることを確認し、reCamera Pro 上のオーディオデバイスを確認する
画像が表示されないカメラリソースが占有されているカメラを解放するために pkill -x rkipc を実行済みか確認する

リソース

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなレベルのサポートを提供しています。複数のコミュニケーションチャネルを用意し、異なるご希望やニーズにお応えします。

Loading Comments...