XIAO ESP32-C5 を Home Assistant に接続
このwikiチュートリアルでは、Seeed Studio XIAO ESP32-C5をHome Assistantに接続する方法、およびXIAO ESP32-C5にGroveモジュールを接続した後にデバイスを制御したりデータを送信したりする方法を説明します。それでは始めましょう!
Home Assistant の紹介
Home Assistantは、単一の統合インターフェースからスマートホームデバイスを制御・監視できる強力なオープンソースホームオートメーションプラットフォームです。スマートホームの中央ハブとして機能し、ルーチンの自動化、センサーの監視、より知的な生活空間の構築を可能にします。

ESPHome 統合
ESPHomeは、ESP8266 / ESP32デバイス専用に設計されたオープンソースファームウェア作成ツールです。シンプルなYAML設定ファイルを使用してカスタムファームウェアを作成し、デバイスにフラッシュできます。

方法1:ESPHomeを使用
この例では、ESPHome経由でHome Assistantに接続します。
ハードウェアの準備
表に記載されているアイテムを準備する必要があります。
| Seeed Studio XIAO ESP32-C5 | Seeed Studio Grove Base for XIAO | Grove - Red LED |
|---|---|---|
![]() | ![]() | ![]() |
ファームウェアのインストール
Home Assistantをまだセットアップしていない場合は、このリンクをクリックして公式のHome Assistantチュートリアルに従ってセットアップを完了してください。Home Assistant Installation
ステップ1. ESPhomeをインストール
すでにESPHomeをインストールしている場合は、このステップをスキップできます。
- Settings -> Add-ons に移動

- ADD-ON STORE -> Search ESPHome


- ESPhomeを開始

インストールしたESPHomeのバージョンが25.11.5以上であることを確認してください。そうでないと、XIAO ESP32-C5をサポートしない可能性があります。
ステップ2. 新しいデバイスを追加
ESPHomeに移動し、右下のAdd New Deviceボタンをクリックします。

新しいデバイスを追加し、XIAO ESP32-C5と名前を付けます。



ステップ3. ファームウェアをインストール
参考YAMLファイル設定
APIキー、SSID、パスワードなど、デバイスに合わせてパラメータを変更する必要があります。さらに、XIAO ESP32-C5はデュアルバンドWiFi(2.4 GHz & 5 GHz)をサポートしているため、自宅の5 GHzルーターに接続できます。
esphome:
name: xiao-esp32-c5
friendly_name: XIAO ESP32-C5
esp32:
board: esp32-c5-devkitc-1
variant: esp32c5
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key:
ota:
- platform: esphome
password:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32-C5 Fallback Hotspot"
password:
captive_portal:
# Example configuration entry
output:
- platform: gpio
pin: GPIO1
id: led_gpio_output
inverted: false
switch:
- platform: output
name: "LED Switch"
output: led_gpio_output
id: dev_board_led

INSTALLをクリックしてコードをデバイスにインストールすると、次の画像が表示されます。

- ブラウザ経由でインストール
- ホスト経由でインストール
- Wi-Fi経由でインストール
Home Assistantホスト(Raspberry PI/Green/Yellowなど)が遠くにある場合は、この方法をお勧めします。手元にあるコンピュータでインストールできます。
まず、Manual downloadをクリックしてコンパイル済みファームウェアをダウンロードする必要があります。

XIAO ESP32-C5にファームウェアをアップロードするこのウェブサイトを開きます。
ESPHome dashboard_install

ESPHomeに戻ってファームウェアをダウンロードします。

Factory formatを選択します。

USBケーブルを使用してデバイスをコンピュータに接続し、CONNECTをクリックします。
ESPHome dashboard_install

usbmodemxxx(WindowsではCOMxxx)を選択してconnectをクリックします。

INSTALLをクリックして、先ほどダウンロードしたファームウェアを選択します。

Home Assistantホスト(Raspberry PI/Green/Yellowなど)が近くにある場合は、より簡単なこの方法をお勧めします。
デバイスにコードをインストールする前に、USBケーブルを使用してこのデバイスをHome Assistantが動作しているRaspberry PiやHA Green(Yellow)などに接続する必要があります。
画像に従ってオプションをクリックし、デバイスにコードをインストールします。


しばらく待つと、以下の画像のようなフィードバックが表示されます。これはコードが正常に実行されていることを意味します。

これは最も簡単な方法ですが、初回プログラムをインストールする際は、まず左側の方法を使用してePaper Panelにプログラムをアップロードする必要があります。その後、wifi経由でアップロードできます。また、この方法が機能するためには、YAMLの設定に適切に設定されたotaとapiセクションが有効な暗号化キーと共に含まれていることを確認してください。
この方法では、XIAO ESP32-C5を何にも接続する必要がなく、オンラインであることを確認するだけです。
オプションをクリックすると、ファームウェアが自動的にePaper panelにインストールされます。

しばらく待つと、以下の画像のようなフィードバックが表示されます。失敗した場合は、信号が弱いことが原因の可能性があります。デバイスをルーターに近づけてください。

ステップ 4. デバイスの追加
-
Settings → Devices & servicesに移動します

-
ESPHome Device -> Add。

-
シークレットキーの追加を選択した場合は、作成したYAMLファイルで確認できるキーを入力する必要があります。

-
追加が成功すると、以下の画面が表示されます。

ダッシュボードでの表示
ステップ 1. Overview を開く -> 右上角の Edit をクリック

ステップ 2. セクションを作成し、LED Controlと名前を付ける -> カードを追加

ステップ 3. Add by entity -> XIAO ESP32-C5を検索 -> Continue

ステップ 4. ポップアップウィンドウでAdd to dashboardを選択 -> 右上角のDoneをクリックして追加を完了します。

-
効果は以下の通りです:


方法 2: Seeed Home Assistant Discovery
- Seeed HA Discoveryは、Seeed Studioが提供する、ESP32/nRF52840デバイスをHome Assistantに簡単に接続するための完全なソリューションです。
- XIAOシリーズ開発ボード用のArduino IDEまたはPlatformIOでわずか数行のコードを書くだけで、WiFiまたはBLE経由でHome Assistantに接続できます。
- ここでは、温室の温湿度センサーを読み取る例を使用して、Seeed Home Assistant DiscoveryでXIAO ESP32-C5をHome Assistantに接続する方法を説明します。
ハードウェアの準備
| Seeed Studio XIAO ESP32-C5 | Seeed Studio Grove Base for XIAO | Grove - Temperature & Humidity Sensor (DHT11) |
|---|---|---|
![]() | ![]() | ![]() |
HACS インストール
Seeed Home Assistant Discovery統合を追加する前に、まずHACSをインストールする必要があります。
インストール手順:
- Settings -> Devices & services -> Add integration -> HACSを検索

- すべてのオプションを選択 -> Submit

-
ハイパーリンクをクリックし、その中のアクティベーションコードをコピーします。
-
先ほどのアクティベーションコードを入力します
-
HomeAssistantに戻る -> Developer tools -> Reboot system

- 左のナビゲーションバーにHACSが表示されます

統合のインストール
- HACS経由でのワンクリックインストール(推奨)
-
HACS -> Integrations を開く:
-
右上角の**⋮**アイコンをクリック -> Custom repositories
-
https://github.com/limengdu/Seeed-Homeassistant-Discoveryを入力し、カテゴリIntegrationを選択 -
Addをクリックし、Seeed HA Discoveryを検索してインストール
-
Home Assistantを再起動
Arduinoライブラリのインストール
WiFi依存ライブラリのインストール
- Arduino IDE用
arduino/SeeedHADiscoveryフォルダをダウンロード
-
C:\Users\yourname\Documents\Arduino\libraries\にコピーします -
ArduinoJson (by Benoit Blanchon)

- WebSockets (by Markus Sattler)

- PlatformIO の場合
lib_deps =
bblanchon/ArduinoJson@^7.0.0
links2004/WebSockets@^2.4.0
BLE 依存ライブラリのインストール
- Arduino IDE の場合
-
arduino/SeeedHADiscoveryBLEフォルダをダウンロードします -
C:\Users\yourname\Documents\Arduino\libraries\にコピーします
- NimBLE-Arduino

- PlatformIO の場合
lib_deps =
h2zero/NimBLE-Arduino@^1.4.0
Arduino プログラムの作成
実際のニーズに応じて対応するバージョンを選択してください。
- WiFi バージョンコード
- BLE バージョンコード
#include <SeeedHADiscovery.h>
const char* WIFI_SSID = "Your WiFi Name";
const char* WIFI_PASSWORD = "Your WiFi Password";
SeeedHADiscovery ha;
SeeedHASensor* tempSensor;
SeeedHASensor* humiditySensor;
void setup() {
Serial.begin(115200);
ha.setDeviceInfo("Living Room Sensor", "ESP32-C5", "1.0.0");
ha.enableDebug(true);
if (!ha.begin(WIFI_SSID, WIFI_PASSWORD)) {
Serial.println("WiFi connection failed!");
while (1) delay(1000);
}
tempSensor = ha.addSensor("temperature", "Temperature", "temperature", "°C");
tempSensor->setPrecision(1);
humiditySensor = ha.addSensor("humidity", "Humidity", "humidity", "%");
humiditySensor->setPrecision(0);
}
void loop() {
ha.handle();
static unsigned long lastUpdate = 0;
if (millis() - lastUpdate > 5000) {
lastUpdate = millis();
tempSensor->setValue(25.5);
humiditySensor->setValue(55);
}
}
コードをアップロードした後、シリアルモニターを開きます。WiFi 接続が成功すると、対応する IP アドレスが出力されます。

XIAO ESP-C5 はデュアルバンド WiFi(2.4 GHz & 5 GHz)をサポートしています。
手動でのネットワーク設定が面倒だと感じる場合は、私たちが開発したファームウェア書き込みウェブページも利用できます:Web Firmware Flasher
#include <SeeedHADiscoveryBLE.h>
SeeedHADiscoveryBLE ble;
SeeedBLESensor* tempSensor;
SeeedBLESensor* humiditySensor;
SeeedBLESensor* batterySensor;
void setup() {
Serial.begin(115200);
ble.enableDebug(true);
if (!ble.begin("XIAO Temperature Sensor")) {
Serial.println("BLE initialization failed!");
while (1) delay(1000);
}
// Use BTHome standard sensor types
tempSensor = ble.addTemperature();
humiditySensor = ble.addHumidity();
batterySensor = ble.addBattery();
}
void loop() {
// Set sensor values
tempSensor->setValue(25.5f); // Temperature 25.5°C
humiditySensor->setValue(55.0f); // Humidity 55%
batterySensor->setValue(100.0f); // Battery 100%
// Send BLE broadcast
ble.advertise();
// Wait 10 seconds (BLE is suitable for low frequency updates)
delay(10000);
}
コードをアップロードした後、シリアルモニターを開くと、XIAO ESP32-C5 の Bluetooth 情報が出力されます。

Home Assistant でのデバイス追加
- WiFi デバイス
- BLE デバイス
自動的に検出されます!または手動で追加:
-
Settings -> Devices & Services に移動します
-
Add Integration をクリックします
-
Seeed HA Discovery を検索します
-
ESP32 の IP アドレスを入力します

BTHome プロトコルを使用し、Home Assistant によって自動的に検出されます!
-
HA に Bluetooth アダプターまたは ESP32 Bluetooth プロキシがあることを確認してください
-
デバイスは Settings -> Devices & Services -> BTHome に自動的に表示されます

効果のデモンストレーション

おめでとうございます!これで、XIAO ESP32-C5 を Home Assistant に接続する 2 つの方法をマスターしたはずです。皆様の素晴らしいプロジェクトを楽しみにしており、ぜひ私たちと共有していただければと思います!
技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験ができるだけスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを用意しています。



