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

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

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

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

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

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

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

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

設定ファイルを開いて編集します。
psram:
mode: quad
speed: 80MHz 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 が提供する設定例を参照してください。
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 の時刻情報と同期します。
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 のオン / オフと輝度を制御できます。
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 読み値を取得することでバッテリー電圧情報を得ることができ、変換後におおよそのバッテリー残量がわかります。
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;SAVE と INSTALL をクリックし、表示されるオプションから Manual Download を選択します。
コンパイル完了後、Download ボタンをクリックし、Factory Format を選択してファームウェアをダウンロードします。

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

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

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

Settings -> Device & services に移動してデバイスの状態を確認します。Add をクリックするとデバイスを Home Assistant に追加できます。

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