Skip to main content

reCamera を使用した Home Assistant の入門ガイド

はじめに

Home Assistant はオープンソースのスマートホームプラットフォームシステムで、ユーザーは自分の IoT デバイスを簡単にシステムに接続して統一管理できます。しかし、Home Assistant の主な特徴は、さまざまなセンサーデバイスの表示を実現するだけでなく、クロスプラットフォームデバイスの自動連携を実現することです。このようなスマートホームプラットフォームだけが十分な活力を持つことができます。

ハードウェアの準備

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

reCamera 2002 シリーズreCamera GimbalreCamera HQ POEreComputer AI R2000 シリーズ

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

システムの準備

1.システムの更新

sudo apt update && sudo apt upgrade -y

2.必要な依存関係のインストール

sudo apt install -y ca-certificates curl gnupg lsb-release

Docker のインストール

1.公式スクリプトによるインストール

curl -fsSL https://get.docker.com | sh

2.現在のユーザーが Docker を使用できるように設定

https://files.seeedstudio.com

3.権限を有効にするためにシステムを再起動

sudo reboot

4.インストールの確認

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/automations.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 にアクセス

インターフェースが継続的に開けない場合は、ファクトリーリセットセクションを参照してデバイスをリセットしてください。リセット後、再度 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リクエストノードを設定します。ここでは、3つの領域に変更を加える必要があります:

オプション設定値
リクエストメソッドPOST
URLアドレスhttp://<your IP>:8123/api/webhook/recamera_detection
レスポンスJSON Object

設定後、右上角の「Deploy」ボタンをクリックします。デプロイが成功すると、プロンプトが表示されます。

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

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

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検出結果 curlからのテスト

Loading Comments...