TimerCamera シリーズ Home Assistant 連携ガイド

このガイドでは、TimerCamera シリーズデバイスを Home Assistant に連携させる方法について詳しく説明します。対象機種は TimerCamera (U082)、TimerCamera-X (U082-X)、TimerCamera-F (U082-F) です。

1. 準備

環境準備

  1. Home Assistant 公式ドキュメントを参照して、Home Assistant をインストールします。
  2. ESPHome 公式ドキュメントを参照して、ESPHome Device Builder アドオンをインストールします。(注:本チュートリアルは ESPHome 2025.12.3 を基に作成されています。コンパイルエラーが発生した場合は、まずこのバージョンに切り替えて確認することをお勧めします。)

ハードウェア製品

参考資料

2. オンライン書き込み

下の オンライン書き込み ボタンをクリックし、画面の指示に従ってファームウェアの書き込みと Wi-Fi の設定を完了すると、TimerCamera シリーズの Home Assistant 連携をすぐにお試しいただけます。

書き込みと設定の詳しい手順については、オンライン ESPHome ファームウェア書き込み・設定ガイドを参照してください。

オンライン書き込みの完了後は、「ファームウェアのコンパイル & 書き込み」の手順を実行する必要はありません。4. 使い方に進んでください。

3. ファームウェアのコンパイル & 書き込み

本節では、yaml 設定ファイルを基にプロジェクトを再コンパイルし、二次開発、機能変更、または新機能の追加を行う方法について説明します。

コンパイル時間
HA を使用したファームウェアのコンパイルは多くのリソースを消費します。初回コンパイルではリソースのダウンロードに時間がかかる場合があり、所要時間は HA サービスを実行するデバイスとネットワーク品質によって異なります。
設定について
本チュートリアルでは TimerCamera-X を設定例として使用します。一部のモデルでは使用するカメラが異なりますが、その他のハードウェア構成は共通です。実際のモデルに合わせてデバイス名などを変更してください。

デバイスの作成

  1. ESPHome Builder を開き、右下の NEW DEVICE をクリックして新しいデバイスを作成します。

  2. ポップアップで CONTINUE をクリックします。

  3. New Device Setup を選択し、新しい設定ファイルを作成します。

  4. 新しい設定ファイルに名前を付けます。

  5. デバイスタイプを選択します。ここではデフォルト設定のまま ESP32 を選択します。

  6. Encryption Key をコピーして保存しておき、SKIP をクリックしてスキップします。

設定の変更

  1. 生成された設定ファイルのカードから EDIT をクリックして編集します。

  2. 設定ファイルを開いて編集します。

  • PSRAM コンポーネントを追加します。
psram:
  mode: quad
  speed: 80MHz
yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
i2c:
  - id: bsp_i2c
    sda: GPIO12
    scl: GPIO14
  - id: cam_i2c
    sda: GPIO25
    scl: GPIO23

esp32_camera:
  name: OV3660 Camera
  external_clock:
    pin: GPIO27
    frequency: 20MHz
  i2c_id: cam_i2c
  data_pins: [GPIO32, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19]
  vsync_pin: GPIO22
  href_pin: GPIO26
  pixel_clock_pin: GPIO21
  reset_pin: GPIO15
  resolution: 640x480
  jpeg_quality: 10

ここではデフォルトの画像設定を使用しています。設定を変更したい場合は、ESPHome が提供する設定例を参照してください。

  • RTC Time コンポーネントを追加します。
esphome:
  name: timercamera-x
  friendly_name: timercamera-x
  ...
  on_boot:
    then:
      # read the RTC time once when the system boots
      bm8563.read_time:

...
time:
  - platform: bm8563
    i2c_id: bsp_i2c
    # repeated synchronization is not necessary unless the external RTC
    # is much more accurate than the internal clock
    update_interval: never
  - platform: homeassistant
    # instead try to synchronize via network repeatedly ...
    on_time_sync:
      then:
        # ... and update the RTC when the synchronization was successful
        bm8563.write_time:

システムは起動時に RTC から時刻情報を読み取り、Home Assistant に接続後は自動的に Home Assistant の時刻情報と同期します。

  • LED を設定します。
yaml
1 2 3 4 5 6 7 8 9 10
output:
  - platform: ledc
    id: blue_led
    pin: GPIO2

light:
  - platform: monochromatic
    output: blue_led
    name: "Blue LED"
    restore_mode: RESTORE_DEFAULT_ON

青色 LED はデバイス起動時にデフォルトでオンになります。Home Assistant から LED のオン / オフと輝度を制御できます。

  • バッテリーを使用する場合。
yaml
1 2 3 4 5 6
switch:
  - platform: gpio
    id: bat_hold_pin
    name: "Battery Hold Pin"
    pin: GPIO33
    restore_mode: RESTORE_DEFAULT_ON

ここで GPIO33 はバッテリーの使用可否を制御します。有効にしてハイ状態を維持することでバッテリーが動作します。デフォルトでは常にハイ状態を維持します。このスイッチをオフにすると、外部電源がない状態でデバイスがシャットダウンします。

  • バッテリー残量を監視する。

TimerCamera-X と TimerCamera-F にはバッテリーが内蔵されており、GPIO38 の ADC 読み値を取得することでバッテリー電圧情報を得ることができ、変換後におおよそのバッテリー残量がわかります。

yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
sensor:
  - platform: adc
    pin: GPIO38
    attenuation: 12dB
    name: "Battery Voltage"
    id: battery_voltage
    update_interval: 10s
    filters:
      - multiply: 1.51

  - platform: template
    id: battery_percent
    name: "Battery Percentage"
    unit_of_measurement: "%"
    accuracy_decimals: 0
    lambda: |-
      float voltage = id(battery_voltage).state;
      float min_voltage = 3.350f;
      float max_voltage = 4.150f;

      if (voltage <= min_voltage) return 0.0;
      if (voltage >= max_voltage) return 100.0;

      float percent = ((voltage - min_voltage) / (max_voltage - min_voltage)) * 100.0;
      return percent;
バッテリー残量に関する注意
バッテリー残量の有効な値を取得するには、外部 USB 電源が接続されていない状態で、かつ BAT_HOLD_Pin (GPIO33) をハイレベルに保つ必要があります。HOLD 状態を維持しない場合はバッテリー駆動にならず、ADC の読み値が非常に低くなります (<1V)。外部 USB 電源を接続しつつ HOLD 状態を維持している場合、ここに表示される電圧情報は充電電圧です。

ファームウェアのコンパイル

  1. 編集完了後、右上の SAVEINSTALL をクリックし、表示されるオプションから Manual Download を選択します。
設定例
TimerCamera-X / TimerCamera-F をクリックして、完全な設定ファイルのサンプルを確認できます。
  1. コンパイル完了後、Download ボタンをクリックし、Factory Format を選択してファームウェアをダウンロードします。

ファームウェアの書き込み

  1. USB Type-C データケーブルでデバイスをホストに接続し、ESPHome Web を開いて CONNECT をクリックしてデバイスに接続します。

  2. INSTALL をクリックし、先ほどコンパイルしたファームウェアを選択してアップロードします。

  3. 再度 INSTALL をクリックして書き込みを開始し、完了するまで待ちます。

4. 使い方

  1. ファームウェアの書き込みが完了すると、デバイス起動時に自動的に Wi-Fi 接続が行われます。Settings > Devices & Services に移動してデバイスの状態を確認します。Add をクリックするとデバイスを Home Assistant に追加できます。
  1. ダッシュボードの表示例:
  1. カメラエンティティをクリックすると、リアルタイムプレビュー映像を確認できます。

TimerCamera(TimerCamera-X)は左図のように表示されます。TimerCamera-F は魚眼レンズを使用しており、右図のように表示されます。

5. 動画

Page Tools
PDF
On This Page