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

reCamera と Home Assistant の連携入門

はじめに

Home Assistant はオープンソースのスマートホームプラットフォームであり、ユーザーは自分の IoT デバイスを簡単にシステムへ接続して一元管理できます。しかし、Home Assistant の主な特徴は、さまざまなセンサーデバイスの状態を表示できることだけではなく、クロスプラットフォームのデバイス同士を自動で連携させられる点にあります。このような自動連携があってこそ、スマートホームプラットフォームは十分な活力を持つと言えます。

ハードウェアの準備

reCamera を 1 台(2002 シリーズ、HQ POE バージョン、またはパン・チルトバージョンのいずれでも構いません。ただし、POE バージョンには WiFi 機能がなく、同一セグメント内で POE 機能付きスイッチに接続する必要があります)
reComputer を 1 台(どのバージョンでも構いません。ここでは例として reComputer AI R2130-12 を使用します)
PC を 1 台

reCamera 2002 シリーズreCamera ジンバルreCamera HQ POEreComputer AI R2000 シリーズ

Home Assistant のインストール(reComputer AI R2130-12 を例とする)

システムの準備

すでに Home Assistant がインストールされている場合は、この後の設定のために「設定ファイルのパスを確認する」の手順までスキップしてください。

  1. システムを更新する
sudo apt update && sudo apt upgrade -y
  1. 必要な依存関係をインストールする
sudo apt install -y ca-certificates curl gnupg lsb-release

Docker をインストールする

  1. 公式スクリプトでインストール
curl -fsSL https://get.docker.com | sh
  1. 現在のユーザーに Docker の使用を許可する
sudo usermod -aG docker $USER
  1. システムを再起動して権限を有効にする
sudo reboot
  1. インストールを確認する
docker run hello-world

"Hello from Docker!" という文字が表示されれば、インストールは成功しています。

Home Assistant をインストールする(コンテナモード)

  1. マウントディレクトリを作成する 設定ファイルを永続化するために実施します:
mkdir -p ~/homeassistant/config
  1. コンテナを起動する 以下のコマンドを実行して Home Assistant を起動します
    (このステップには時間がかかる場合があります。速度はネットワーク環境に依存します)
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Asia/Shanghai \
-v ~/homeassistant/config:/config \
-v /etc/localtime:/etc/localtime:ro \
--network=host \
ghcr.io/home-assistant/home-assistant:stable

パラメータの説明:

  • --network=host: Home Assistant がホストネットワークへ直接アクセスできるようにします(デバイスの自動検出に必須)
  • -v ~/homeassistant/config:/config: 設定ファイルを保存します
  • --restart=unless-stopped: 自動的に再起動します
  • --privileged: ハードウェアアクセスを有効にします(USB Zigbee/Z-Wave など)

Home Assistant にアクセスする

  1. IP を確認する
hostname -I
  1. ブラウザでアクセスする

Docker を起動した後、1〜2 分ほど待ってから、ブラウザで次のようにアクセスします:

http://<your IP>:8123

例:

http://192.168.1.88:8123

初回起動時には初期設定画面が表示されます。ここからアカウントの作成やスマートホームの設定を開始できます。

設定ファイルのパスを確認する

Home Assistant のすべての設定は次の場所に保存されています:

/homeassistant/config/

次のコマンドで確認できます:

cd /homeassistant/config
ls

次のようなファイルが表示されます:

automations.yaml  configuration.yaml  scripts.yaml ...

自動化を設定して reCamera のデータを受信する

  1. nano エディタをインストールする
sudo apt install nano -y
  1. automations.yaml を編集する:
sudo nano /homeassistant/config/automations.yaml

内容を次のものに置き換えます:

- alias: "ReCamera Detection"
description: "Receive the detection results from ReCamera"
trigger:
- platform: webhook
webhook_id: recamera_detection

action:
- service: input_text.set_value
target:
entity_id: input_text.recamera_people_raw
data:
value: "{{ trigger.json.payload }}"

mode: single

保存して終了します:

  • Ctrl + O → Enter(保存)
  • Ctrl + X(終了)
  1. configuration.yaml を編集する:
sudo nano /homeassistant/config/configuration.yaml

内容を次のものに置き換えます:

# ==========================
# Basic Configuration of Home Assistant
# ==========================

# Load default integration (do not delete)
default_config:

# Load the front-end theme
frontend:
themes: !include_dir_merge_named themes

# Load the independent configuration file
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml


# ==========================
# ReCamera Physical Configuration Section
# ==========================

# Define an "input_text" entity to store the latest detection results from ReCamera.
input_text:
recamera_people_raw:
name: Original detection result of ReCamera
max: 255
icon: mdi:account-group # Optional: Display as "Group" icon

# Define a template sensor to display the detection results of ReCamera
sensor:
- platform: template
sensors:
recamera_people_count:
friendly_name: "ReCamera Personnel Counting Function"
value_template: "{{ states('input_text.recamera_people_raw') }}"
icon_template: mdi:camera-outline

保存して終了します:

  • Ctrl + O → Enter(保存)
  • Ctrl + X(終了)
  1. 保存して終了したら、Home Assistant を再起動します
docker restart homeassistant

reCamera の設定(2002w バージョンを例とする)

reCamera をコンピュータに接続した後、192.168.42.1 にアクセスする

インターフェースを開けない状態が続く場合は、Factory Reset セクションを参照してデバイスをリセットしてください。リセット後に再度 192.168.42.1 にアクセスします。リセット後はパスワード変更を求められます。

ログイン後、右下をクリックして「Workspace」に入る

Workspace に入ったら、ノードを設定します。

新しく 4 つのノードが追加されています:"debug1"、"debug2"、"function1"、"HTTP request" です。
debug1 と debug2 は出力情報を確認するためのもので、任意で使用します。function1 はデータ処理用、HTTP request ノードは Home Assistant へデータを送信するために使用します。

次に、元のノード "Model Info Handle" を修正し、特定の検出対象の数だけを出力するようにします。

このノードをダブルクリックして開き、コードを次の内容に置き換えます:

let currentModel = "Current People";
const object = 'person';

const labels = msg.payload?.data?.labels ?? [];

if (!Array.isArray(labels)) {
return { payload: '' };
}

const num = labels.filter(label => String(label).toLowerCase() === object).length;
currentModel += ` number: ${num}`;

return { payload: currentModel };

変更が完了したら、右上の "Finish" ボタンをクリックします。

このコードは検出された人物の数のみを出力します。変更を加えたい場合は、検出オブジェクトを修正してください。
どの種類のオブジェクトを検出できるかは、モデルノードを確認することで把握できます。

次に、function1 ノードを設定し、元のコードを次のコードに置き換えます:

return {
payload: {
payload: msg.payload
}
};

次に、HTTP request ノードを設定します。ここでは、3 つの項目を変更する必要があります:

OptionSetting Value
Request MethodPOST
URL Addresshttp://<your IP>:8123/api/webhook/recamera_detection
ResponseJSON Object

設定が完了したら、右上の "Deploy" ボタンをクリックします。デプロイが成功すると、プロンプトが表示されます。

ここで、もう 1 つ行う必要がある手順があります。それは reCamera を WiFi に接続することです。reComputer 用に設定したネットワークと同じネットワークに接続する必要があります(POE バージョンには WiFi 機能がなく、同一セグメントのネットワークに接続するために POE 機能付きスイッチを使用する必要がある点に注意してください)。

左上の "Network" ボタンをクリックしてネットワークを設定します。

注記

忘れないでください!必ず Recamera をネットワークに接続してください!!!そうしないと通信できません。

Home Assistant の概要インターフェースを表示する

まだ何の効果も確認できない場合は、まずリンクが正しく接続されていないかを確認してください。つまり、Webhook が正しく機能しているかどうかを確認します:
任意のデバイス(ReCamera またはコンピュータ)のターミナルで実行します:

curl -X POST http://192.168.100.109:8123/api/webhook/recamera_detection \
-H "Content-Type: application/json" \
-d '{"payload":"Test from curl"}'

成功すると、Home Assistant の通知には次のように表示されます:

ReCamera Detection Results
curl からのテスト

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

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

Loading Comments...