メインコンテンツまでスキップ

Home Assistant を中心にスマートホームコントロールセンターを構築する

この記事では、Seeed Studio の新製品 LinkStar H68K に Home Assistant をセットアップし、ESPHome 環境をデプロイする方法を詳しく説明します。ESPHome は Home Assistant で非常に一般的なサービスです。ソフトルーティングのシステム制限のため、ESPHome を例に取り上げ、このサービスをインストールする巧妙な方法を案内します。

初めに​

このチュートリアルをすべて実行するには、以下のものを準備する必要があります。

Wi-Fi 6 対応 LinkStar H68KreRouter CM4 1432(オプション)XIAO ESP32C3
今すぐ購入今すぐ購入今すぐ購入

*reRouter CM4 1432 もこのチュートリアルに対応しています。LinkStar または reRouter を購入できます。

このプロジェクトの目的は、LinkStar の Docker サービスを使用して Home Assistant と ESPHome をインストールし、LinkStar ホットスポットを構成して、XIAO ESP32C3 の WiFi 機能を使用して LinkStar に接続し、ネットワークを完成させることです。

さらに、広範な Grove エコシステムと組み合わせることで、Home Assistant でさらに多くの可能性を実現できます。

このチュートリアルの内容は、以下のステップを大まかに進めていきます。

  1. LinkStar OpenWRT で Docker 環境を構成する
  2. Home Assistant と ESPHome のインストールと構成
  3. Seeed Studio XIAO ESP32C3 を ESPHome に追加する
  4. 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デバイスで使用される一般的なチップのドライバーです。

  1. CP2102 ドライバー: Windows & Mac
  2. CH342, CH343, CH9102 ドライバー: Windows, Mac
  3. CH340, CH341 ドライバー: Windows, Mac

ESPhome Web tool をChromeまたはEdgeウェブブラウザで開きます。

CONNECT をクリックします。

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

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

ドライバーをインストールし、ブラウザを変更した後でも方法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 モジュールを接続する際には、以下の表に従って適切な内部ピン番号を使用する必要があります。

内部ピン番号ピンマッピング
2D0
3D1
4D2
5D3
6D4
7D5
21D6
20D7
8D8
9D9
10D10
6SDA
7SCL

例えば、Grove モジュールを D0 ポートに接続したい場合、ESPHome 上でピンを 2 として定義する必要があります。

ESPHome での Grove モジュール互換性リスト​

現在、以下の Grove モジュールが ESPHome に対応しています。

Grove モジュールカテゴリ
Grove - Laser PM2.5 ダストセンサーガス
Grove - SEN55 オールインワン環境センサー, NOx, PM, VOC, RH, 温度ガス
Grove - SEN54 オールインワン環境センサー, PM, VOC, RH, 温度ガス
Grove - CO2 & 温度 & 湿度センサー (SCD30)ガス
Grove - CO2 & 温度 & 湿度センサー - SCD41ガス
Grove - VOC および eCO2 ガスセンサー - SGP30ガス
Grove - 4 チャンネル 16-bit ADC (ADS1115)ADC
Grove - Time of Flight 距離センサー (VL53L0X)距離
Grove - 超音波距離センサー距離
Grove - AHT20 I2C 工業用温湿度センサー環境
Grove - 温湿度センサー V2.0 (DHT20)環境
Grove - 温湿度センサー Pro (DHT22/AM2302)環境
Grove - 温湿度 & 気圧センサー (BME280)環境
Grove - 温湿度、気圧、ガスセンサー (BME680)環境
Grove 温度 & 気圧センサー (BMP280)環境
One Wire 温度センサー - DS18B20環境
Grove - 温湿度センサー (DHT11)環境
Grove - I2C 高精度温度センサー - MCP9808環境
Grove - 温湿度センサー (SHT31)環境
Grove - 温湿度センサー (SHT40)環境
Grove - 高精度気圧センサー (DPS310)環境
Grove - I2C 熱電対アンプ (MCP9600)環境
Grove - I2C カラーセンサー V2カラー
Grove - デジタル光センサー - TSL2561光
Grove - ロードセル用 ADC (HX711)重量
Grove - 12 キー静電容量式 I2C タッチセンサー V3 (MPR121)静電容量
Grove - 16 チャンネル PWM ドライバ (PCA9685)PWM
Grove - 4 桁ディスプレイディスプレイ
Grove - OLED ディスプレイ 0.66" (SSD1306)ディスプレイ
Grove - リレーリレー
Grove - SPDT リレー (30A)リレー
Grove - ソリッドステートリレー V2リレー
Grove - 2 チャンネル SPDT リレーリレー
Grove - PIR モーションセンサーモーション
Grove - ミニ PIR モーションセンサーモーション
Grove - デジタル PIR モーションセンサー (12m)モーション
Grove - サーボアクチュエータ
Grove - 8 チャンネル I2C マルチプレクサ/I2C ハブ (TCA9548A)マルチプレクサ

これから、上記の表から6つのGroveモジュールを選択し、それらをESPHomeとHome Assistantに接続する方法を説明します。

Grove - 温度・湿度センサー (AHT20)​

設定手順​

  • ステップ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)​

設定手順​

  • ステップ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)​

設定手順​

  • ステップ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 モーションセンサー​

設定構成​

  • ステップ 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 をサポートするだけではありません。このドキュメントで他の用途向けのチュートリアルを見つけることができます。

創造力を発揮してください!

トラブルシューティング​

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 を検索し、再接続を試みることもできます。

技術サポートと製品ディスカッション​

私たちの製品をお選びいただきありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。

Loading Comments...