Home Assistant を中心にスマートホームコントロールセンターを構築する
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Home Assistant を中心にスマートホームコントロールセンターを構築する
この記事では、Seeed Studio の新製品 LinkStar H68K に Home Assistant をセットアップし、ESPHome 環境をデプロイする方法を詳しく説明します。ESPHome は Home Assistant で非常に一般的なサービスです。ソフトルーティングのシステム制限のため、ESPHome を例に取り上げ、このサービスをインストールする巧妙な方法を案内します。
初めに
このチュートリアルをすべて実行するには、以下のものを準備する必要があります。
Wi-Fi 6 対応 LinkStar H68K | reRouter CM4 1432(オプション) | XIAO ESP32C3 |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
*reRouter CM4 1432 もこのチュートリアルに対応しています。LinkStar または reRouter を購入できます。
このプロジェクトの目的は、LinkStar の Docker サービスを使用して Home Assistant と ESPHome をインストールし、LinkStar ホットスポットを構成して、XIAO ESP32C3 の WiFi 機能を使用して LinkStar に接続し、ネットワークを完成させることです。
さらに、広範な Grove エコシステムと組み合わせることで、Home Assistant でさらに多くの可能性を実現できます。
このチュートリアルの内容は、以下のステップを大まかに進めていきます。
- LinkStar OpenWRT で Docker 環境を構成する
- Home Assistant と ESPHome のインストールと構成
- Seeed Studio XIAO ESP32C3 を ESPHome に追加する
- ESPHome と Home Assistant を使用した Grove モジュール
LinkStar OpenWRT で Docker 環境を構成する
ステップ 1. LinkStar に OpenWRT をインストールする
LinkStar にさまざまなシステムをインストールする方法については、LinkStar Wiki に詳しく記載されています。このチュートリアルでは、OpenWRT システムを例に取り上げ、LinkStar をソフトルートとして機能させながら Home Assistant コンテナをインストールする方法を説明します。
上記から、LinkStar に OpenWRT をインストールするシステムの場所を選択してください。
ステップ 2. LinkStar ネットワークを構成する
ネットワークケーブルを使用して LinkStar に接続し、ブラウザで IP アドレス 192.168.100.1
を入力して OpenWRT の操作バックエンドにアクセスしてください。
初期アカウントのパスワードは以下の通りです:
アカウント: root
パスワード: password
次に、LinkStar をインターネットに接続する必要があります。
無線ネットワーク対応の LinkStar を購入する必要があるため、ネットワークケーブルを LinkStar に接続するか、WiFi に接続することを選択できます。
- 有線ネットワークの場合は、ネットワーク事業者の指示に従ってネットワークを構成してください。

- 無線 LAN を使用する場合は、Wireless オプションでネットワークを検索できます。

その後、ネットワークパスワードを入力し、Save and Apply をクリックしてください。
次のステップを進める前に、良好なネットワーク状態であることを確認してください。
ステップ 3. Docker により多くのスペースを割り当てる
デフォルトでは、Docker のサイズは約 250MB しかなく、イメージをインストールするには十分ではありません。そのため、まず Docker の容量を拡張する必要があります。
System --> Disk Man --> EDIT をクリックします。

最後の行に、追加するストレージスペースのサイズを END SECTOR 列に記入します。この例では +20G
です。その後、NEW ボタンをクリックします。

ext4 フォーマットを選択し、FORMAT ボタンをクリックします。


完了すると、新しい 20GB のスペースが追加されているのがわかります。ただし、現在は空きスペースの状態なので、Docker にマウントする必要があります。
次に、System --> Mount Points を選択し、Mount Point セクションで ADD ボタンをクリックします。

先ほど作成した新しいスペースを選択します。

マウントポイントとして Use as Docker data (/opt) を選択します。Enable this mount チェックボックスを忘れずにチェックし、SAVE & APPLY ボタンをクリックしてください。

拡張のすべての設定が完了したら、再起動するだけで有効になります。
System --> Reboot を選択し、PERFORM REBOOT ボタンをクリックします。OpenWRT が再起動するのを待ち、再度ログインしてください。

Home Assistant と ESPHome のインストールと設定
ステップ 4. Docker を使用して Home Assistant をインストール
OpenWRT に Home Assistant をインストールする最適な方法は Docker を使用することです。これにより、LinkStar をソフトルーターとして安定させつつ、Home Assistant を展開することができます。
次に行うべきことは、特定の Home Assistant イメージをプルすることです。このイメージは、後で ESPHome サービスをインストールする際に役立ちます。
homeassistant/qemuarm-64-homeassistant:latest

ダウンロードしたイメージを使用してコンテナを作成します。

コンテナを作成するページで、いくつかの簡単な設定を行う必要があります。
- コンテナ名: 任意のコンテナ名
- Docker イメージ: ダウンロードした qemuarm-64-homeassistant イメージを選択
- ネットワーク: host モードを選択
- 環境変数 (-e): 必要な環境変数

上記を入力したら、保存して適用します。これでコンテナが作成されたことが確認できます。それでは、コンテナを起動しましょう。

ステップ 5. Docker を使用して ESPHome をインストール
Home Assistant コンテナをインストールしているため、Add-on ショップから ESPHome サービスを単純にダウンロードすることはできません。そのため、妥協案が必要です。
上記の手順を繰り返し、ESPHome イメージをダウンロードします。
esphome/esphome:latest

コンテナを作成するページで、いくつかの簡単な設定を行う必要があります。
- コンテナ名: 任意のコンテナ名
- Docker イメージ: ダウンロードした esphome イメージを選択
- ネットワーク: host モードを選択
- 環境変数 (-e): 必要な環境変数

上記を入力したら、保存して適用します。これでコンテナが作成されたことが確認できます。こちらも起動する必要があります。

ステップ 6. ESPHome サービスを Home Assistant に追加
Home Assistant 内で ESPHome をダウンロードした場合と同じ効果を得るために、Home Assistant の設定ファイルを変更する必要があります。
Home Assistant コンテナに移動します。

Home Assistant のターミナルに移動します。

ターミナルで以下のコマンドを入力します。
vi configuration.yaml
configuration.yaml
の末尾に以下の内容を追加します。
# Example configuration.yaml entry
panel_iframe:
esphome:
title: "ESPHome"
url: "http://192.168.100.1:6052"
icon: mdi:chip
Home Assistant コンテナのシェルで exit
と入力して Docker コンテナを終了します。これが完了したら、Home Assistant コンテナを再起動します。
新しいブラウザページを開き、IP アドレス 192.168.100.1:8123
を入力して Home Assistant アカウントを登録します。左側のツールバーに ESPHome が表示されるのが確認できます。

Seeed Studio XIAO ESP32C3 を ESPHome に追加する
- ステップ 1. + NEW DEVICE をクリックします。

- ステップ 2. CONTINUE をクリックします。

- ステップ 3. デバイスの名前を入力し、ネットワーク名やパスワードなどのWiFi認証情報を入力します。その後、NEXT をクリックします。

- ステップ 4. ESP32-C3 を選択し、クリックします。

- ステップ 5. このボードを手動で設定するため、SKIP をクリックします。

- ステップ 6. 新しく作成したボードの下にある EDIT をクリックします。

- ステップ 7. YAML ファイルが開き、このファイルを使用してボードのすべての設定を行います。esp32 の内容を以下のように編集します。
esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
version: 2.0.5
platform_version: 5.2.0
注意: ここでは、Arduino core for ESP32 と PlatformIOのESP32サポート の最新バージョンを使用しています。

- ステップ 8. その後、右上の Save ボタンをクリックしてください。
LinkStar H68Kは外部MCUデバイスの認識をサポートしていないため、まずコンパイルされたファームウェアをダウンロードし、別のPCを使用してファームウェアをアップロードする必要があります。
- ステップ 9. 右上の Install ボタンをクリックします。その後、最後の項目 Manual download を選択します。

- ステップ 10. Modern format を選択します。

ダウンロードとコンパイルには時間がかかるため、しばらくお待ちください。すべてが準備完了すると、ファームウェアが自動的にコンピュータにダウンロードされます。

ステップ 11. XIAO ESP32C3 にファームウェアをアップロードする方法はいくつかありますが、ここでは2つの方法を紹介します。
- オプション 1: ESPhome Web tool を使用してアップロードします。
適切なドライバーがインストールされていることを確認してください。以下はESPデバイスで使用される一般的なチップのドライバーです。
- CP2102 ドライバー: Windows & Mac
- CH342, CH343, CH9102 ドライバー: Windows, Mac
- CH340, CH341 ドライバー: Windows, Mac
ESPhome Web tool をChromeまたはEdgeウェブブラウザで開きます。
CONNECT をクリックします。

ポップアップウィンドウで XIAO ESP32 のシリアルポートを選択します。

INSTALL をクリックし、上記の手順でダウンロードした .bin
ファイルを選択します。


- オプション 2: esphome-flasher tool を使用します。
ドライバーをインストールし、ブラウザを変更した後でも方法1でファームウェアをアップロードできない場合は、方法2を試してください。具体的なインストール方法と手順については公式チュートリアルを参照してください。
XIAO ESP32C3 のログメッセージを確認したい場合、このソフトウェアの View Logs ボタンを使用してログを表示することもできます。

アップロードが完了したら、PCから XIAO ESP32C3 を切断できます(ログを表示する必要がない場合)。その後、XIAO を個別に電源供給するだけです。
すべてが正常に動作すれば、XIAO ESP32C3 は設定したWiFiを検索して接続します。
私の場合、LinkStar H68K のネットワークを使用しています。ネットワークオプションで確認し、LinkStar H68K によって割り当てられたIPアドレスを確認できます。

- ステップ 12. ボードのステータスが ONLINE と表示されている場合、ボードがWiFiに正常に接続されたことを意味します。

- ステップ 13. XIAO ESP32C3 に接続する
LAN上に多くのHome Assistantデバイスがない場合、Home Assistantは自動的にESPデバイスを検索してDevicesタブに追加することができます。Settings の Devices & Services タブ内でこのデバイスを確認できます。


自動検索されない場合は、XIAO ESP32C3 のIPアドレスを基に接続することもできます。
ADD INTEGRATION をクリックし、esphome を検索します。

次に、XIAO ESP32C3 の IP アドレスとポート番号 6053 を入力します。その後、SUBMIT をクリックしてください。

入力した IP アドレスとポート番号が正しい場合、yaml ファイルに保存した暗号化キーを入力するよう求められます。
その後、SUBMIT をクリックしてください。

これで、デバイスの追加手順が正常に完了しました。
Grove モジュールを ESPHome と Home Assistant で使用する
次に、Grove モジュールを Seeed Studio XIAO ESP32C3 に接続し、Home Assistant を使用してセンサーデータを表示したり、デバイスを制御したりできるようにします!
Grove モジュールを XIAO ESP32C3 に接続する
Grove モジュールを Seeed Studio XIAO ESP32C3 で使用するには、Grove Shield for Seeed Studio XIAO を使用し、XIAO ESP32C3 を接続します。

その後、ボード上の Grove コネクタを使用して Grove モジュールを接続できます。
ピン定義
Grove Shield for Seeed Studio XIAO 上の Grove コネクタに Grove モジュールを接続する際には、以下の表に従って適切な内部ピン番号を使用する必要があります。
内部ピン番号 | ピンマッピング |
---|---|
2 | D0 |
3 | D1 |
4 | D2 |
5 | D3 |
6 | D4 |
7 | D5 |
21 | D6 |
20 | D7 |
8 | D8 |
9 | D9 |
10 | D10 |
6 | SDA |
7 | SCL |
例えば、Grove モジュールを D0 ポートに接続したい場合、ESPHome 上でピンを 2 として定義する必要があります。

ESPHome での Grove モジュール互換性リスト
現在、以下の Grove モジュールが ESPHome に対応しています。
これから、上記の表から6つのGroveモジュールを選択し、それらをESPHomeとHome Assistantに接続する方法を説明します。
Grove - 温度・湿度センサー (AHT20)
設定手順
- ステップ1. Grove - 温度・湿度センサー (AHT20) をGrove Shield for Seeed Studio XIAO のI2Cコネクタの1つに接続します。

- ステップ2. 以前作成した xiao-esp32c3.yaml ファイルの末尾に以下を追加し、OTAでXIAO ESP32C3にプッシュします。
i2c:
sda: 6
scl: 7
sensor:
- platform: aht10
temperature:
name: "Temperature"
humidity:
name: "Humidity"
AHT10コンポーネントについての詳細はこちらをご覧ください。このコンポーネントは、AHT10、AHT20、AHT21ベースのセンサーを使用できます。ここでは、AHT20がI2Cプロトコルを使用して通信するため、I²Cバスコンポーネントを追加しています。
ダッシュボードでの可視化
- ステップ1. Home Assistantの概要ページで、3つのドットをクリックし、ダッシュボードを編集を選択します。

- ステップ2. + カードを追加をクリックします。

- ステップ3. エンティティ別を選択し、temperatureと入力して、Temperatureの横のチェックボックスを選択します。

- ステップ4. 同じ手順をHumidityにも繰り返します。

- ステップ5. 続行をクリックします。

- ステップ6. ダッシュボードに追加をクリックします。

これで、Home Assistantのダッシュボードは以下のようになります。

- ステップ7. センサーのデータをゲージとして可視化することもできます。カード別でゲージをクリックします。

- ステップ8. ドロップダウンメニューからTemperatureを選択します。

- ステップ9. 保存をクリックします。

- ステップ10. 同じ手順をHumidityにも繰り返します。

これで、ダッシュボードは以下のようになります。

このWikiに記載されているGrove - VOCおよびeCO2ガスセンサー (SGP30)やGrove - CO2 & 温度・湿度センサー (SCD41)についても、同様の手順でセンサーデータをダッシュボードに可視化できます。
Grove - VOCおよびeCO2ガスセンサー (SGP30)
設定手順
- ステップ1. Grove - VOCおよびeCO2ガスセンサー (SGP30) をGrove Shield for Seeed Studio XIAO のI2Cコネクタの1つに接続します。

- ステップ2. 以前作成した xiao-esp32c3.yaml ファイルの末尾に以下を追加し、OTAでXIAO ESP32C3にプッシュします。
i2c:
sda: 6
scl: 7
sensor:
- platform: sgp30
eco2:
name: "eCO2"
accuracy_decimals: 1
tvoc:
name: "TVOC"
accuracy_decimals: 1
SGP30コンポーネントについての詳細はこちらをご覧ください。
Grove - CO2 & 温度・湿度センサー (SCD41)
設定手順
- ステップ1. Grove - CO2 & 温度・湿度センサー (SCD41) をGrove Shield for Seeed Studio XIAO のI2Cコネクタの1つに接続します。

- ステップ2. 以前作成した xiao-esp32c3.yaml ファイルの末尾に以下を追加し、OTAでXIAO ESP32C3にプッシュします。
i2c:
sda: 6
scl: 7
sensor:
- platform: scd4x
co2:
name: "CO2"
temperature:
name: "Temperature"
humidity:
name: "Humidity"
SGP4xコンポーネントについての詳細はこちらをご覧ください。
Grove - リレー
設定手順
- ステップ1. Grove - リレー をGrove Shield for Seeed Studio XIAO のデジタルポートの1つに接続します。ここではD0ポートを選択します。

- ステップ2. 以前作成した xiao-esp32c3.yaml ファイルの末尾に以下を追加し、OTAでXIAO ESP32C3にプッシュします。
switch:
- platform: gpio
pin: 2
name: "Relay"
リレーコンポーネントについての詳細はこちらをご覧ください。
ダッシュボードでの可視化
- ステップ1. 前述の+ カードを追加の下で、エンティティ別を選択し、relayと入力して選択し、続行をクリックします。

- ステップ2. ダッシュボードに追加をクリックします。

これで、トグルスイッチを使用してリレーをON/OFFに切り替えることができます。

Grove - mini PIR モーションセンサー
設定構成
- ステップ 1. Grove - mini PIR モーションセンサー を Seeed Studio XIAO 用 Grove Shield の デジタルポートのいずれかに接続します。ここでは D0 ポートを選択します。

- ステップ 2. 以前に作成した xiao-esp32c3.yaml ファイルの末尾に以下を追加し、OTA を使用して XIAO ESP32C3 にプッシュします。
binary_sensor:
- platform: gpio
pin: 2
name: "PIR Sensor"
device_class: motion
PIR コンポーネントについての詳細は こちら を参照してください。
ダッシュボードでの可視化
- ステップ 1. 以前に説明した + ADD CARD の下で、BY ENTITY を選択し、pir と入力して選択し、CONTINUE をクリックします。

- ステップ 2. ADD TO DASHBOARD をクリックします。

モーションが検出されると、Detected と表示されます。

次は何をする?
おめでとうございます!LinkStar 上で Home Assistant のデプロイを完了し、ESPHome プラグインを使用できるようになりました。Home Assistant Container をアドオン付きでインストールできない場合など、同様の問題がある場合は、この方法を使用して他の Home Assistant プラグインをインストールできます。
また、私たちのクリエイターのチームに参加し、より役立つ例を提供していただけることを楽しみにしています!
もちろん、XIAO ESP32C3 は Home Assistant で MR24HPCB1 をサポートするだけではありません。このドキュメントで他の用途向けのチュートリアルを見つけることができます。
- Grove モジュールを ESPHome を使用して Home Assistant に接続する (Odyssey)
- XIAO ESP32C3 が ESPHome サービスを介して Home Assistant にアクセスする
創造力を発揮してください!
トラブルシューティング
FAQ1: ESPhome Web ツールを使用してファームウェアをアップロード中に以下のエラーが発生しました。どうすれば修正できますか?

A: このプロンプトがアップロード中に表示された場合、XIAO ESP32C3 を PC から切断してください。その後、BOOT ボタンを押しながらボードを PC に接続し、BOOT ボタンを放してブートローダーモードに入ります。この時点で再接続してファームウェアを再度アップロードすれば十分です。
FAQ2: esphome flasher のチュートリアルに従って Linux に esphome flasher をインストールできません。どうすればよいですか?
A: 以下のコマンドを実行する際に、システムバージョンを選択する必要があります。そうしないとエラーが発生します。例えば、私のコンピュータが Ubuntu 22.04 の場合、実行すべきコマンドは以下の通りです。
sudo apt install python3
pip3 install -U \
-f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/ \
wxPython
pip3 install esphomeflasher
FAQ3: 正しい WiFi とパスワードを入力しましたが、XIAO ESP32C3 の IP アドレスが表示されません。なぜですか?
A: この問題が発生した場合、XIAO ESP32C3 のアンテナが正しく接続されているか確認してください。アンテナがすでに接続されている場合、可能であれば XIAO が LinkStar から 3m 以上離れていないことを確認してください(より強力なアンテナに交換していない限り)。 それでも XIAO が表示されない場合は、esphome flasher ソフトウェアを使用して XIAO のログ情報を確認し、ログを通じて XIAO の接続をチェックしてください。 XIAO を再接続して WiFi を検索し、再接続を試みることもできます。
技術サポートと製品ディスカッション
私たちの製品をお選びいただきありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。