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

下のボタンをクリックするだけでファームウェアの書き込みが完了し、画面の指示に従って設定を行うことで、TimerCamera シリーズを Home Assistant にすばやく接続できます。
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 は魚眼レンズを使用しているため、右図のような映像になります。