コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home AssistantでDIY Smart Home】ESP32デバイスの初期設定(最新版)

【Home Assistant(Hass.io)】
ESPHome最新版でESP32の初期設定

「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。

 久しぶりにESP32デバイスを設定したら、ESPhomeの画面がだいぶ変わっていたので、備忘録代わりにメモっておきます。
<2023/09/28 追記>
ESP32デバイスの静的IPアドレスの設定・変更の仕方の記述を追加しておきました。これも備忘メモです。

 以前は下記記事でESP32デバイスの初期設定について書きました。やることは概ね一緒ですが、細かな手順が変わりました(違うやり方ができるようになりました)。

maky-ba.hatenablog.com

この記事の前提条件
Home Assistant 2022.9.1
Supervisor 2022.08.6
Operating System 8.5
Server Raspberry Pi 4(2GB)/32bit
ESPHome 2022.8.3

 上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)

1. はじめに

 下記の記事で、ESPHomeでESP32デバイスの設定方法を記載しました。その後、ESPHomeも版を重ね画面とか変わったので、更新しておきます。

【Home Assistantでホームオートメーション】ESPHomeで屋内センサー増量 - コモノポリタン

2. ESP32の初期設定

 基本的な流れは上記記事通りです。まず3.1. ESPHomeのHome Assistantへの導入 は終わっているとします。

 3.2. NodeMCU-ESP32の初回接続の準備でブレッドボードにESP32デバイス(NodeMCU-ESP32Sとか)を挿すところまでは同じ。前はいちいちサーバまで行ってUSBケーブルで接続しなければならなかったので面倒でしたが、いまは設定画面をブラウザで開いているPCに接続して初期設定が可能になりました。

 ESPHomeアドオン画面の右下の「+New Device」から初期設定を始めます。

 初期設定するデバイスの名前(ここではenergy-ct1としています。何用かは察してくださいね)を設定するのと、デバイスが接続するWiFiSSIDとパスワードを設定するようになっています。このWifiの設定は画面右上のSECRETSの中に記載されます(wifi_ssid, wifi_password)。
(ちなみに古いESPHomeで設定したことがある私は既にここにwifi_passwordが保存されていました。そこにさらにwifi_password(同じ名前!)の行が追加されたので、エラー出たりしました。ううむ。片っぽのwifi_passwordを消せば大丈夫なのですが。)

 「インストール開始 (Installation)」のメッセージ画面ですが、ここで「Connect your ESP board with a USB cable to your computer ...」とあるので、今、ブラウザを開いているPCにデバイスを接続します。

 上の画面の「Connect」をクリックすると、下の左の様な接続選択画面が出ます。「CP2102 USB to …」を選んで接続する(私のESP32デバイスの通信ブロックはCP2102らしい。四角いチップが載っている)のですが何度やってもうまくいかない時は、CP2102のドライバを入れなおしたらうまくいきました。下左画面で「キャンセル」とすると下右画面がでるので、CP2102のドライバを落としに行きましょう。私はCP210x Universal Driverなるものを入れてうまくいきました。

 Connecting、Preparing installationとしばらくグルグルして「大丈夫か?」と不安になり始めたころに、真ん中のようなInstalling画面が出ます。で、うまくいくと「Configuration created」となります。

 こうなればブレッドボードから抜いてUSBに電源を供給するだけで、ESPHomeから認識されるようになります。めでたしめでたし。

<追加メモ> ESP32デバイスの静的IPアドレス設定/変更

 上記初期設定後はDHCPで自動取得したIPになっているかと思います。それを固定IP(静的なIPアドレス)でアクセスできるようにしたいと思います。
 まずDHCPで割り当てられたアドレスを確認します。ESP32デバイスのログを見るか、ルータで割り当てられているIPを確認するかで、DHCPでのIPを取得します(例:'192.168.200.11)
 次にESPHomeでデバイスの「EDIT」で下記記載を加えてインストールします。
(ここでuse_address:に今アクセスしているアドレスを入れないとESPHomeはmanual_ip:の項を見てそちらのIPにアクセスしようとします。ですが当然、まだそこにはいないので、変更のアップロード失敗します。)

(前略)
wifi:
  ssid: "<接続しているWi-FiのSSID>"
  password: "<接続しているWi-Fiのパスワード>"

  use_address: 192.168.200.11   # DHCPでのIPアドレス

  # Static IP for this device
  manual_ip:
    static_ip: 192.168.200.101  # 設定したい静的IPアドレス
    gateway: 192.168.200.1
    subnet: 255.255.255.0
    dns1: 192.168.200.1
    dns2: 0.0.0.0
(後略)

 これで静的IPアドレス(固定IP)が設定できました。が、このままの設定ファイル(.yamlファイル)にしておくと次にアップロード(インストール)をしようとした時に、既に使っていないDHCP割り当てでのIPアドレスに接続しに行ってしまうので、use_address:コメントアウトするか、削除しておく必要あります。

(前略)
wifi:
  ssid: "<接続しているWi-FiのSSID>"
  password: "<接続しているWi-Fiのパスワード>"

#  use_address: 192.168.200.11   # DHCPでのIPアドレス
(後略)

 以上で、ESP32デバイスの固定IP化は完了です。

 同じやり方で「静的IPアドレスの変更」もできます。

  1. ESP32デバイスの設定ファイル(.yamlファイル)を編集して、今までのIPをuse_address:に設定し、static_ip:を新しい固定IPに変更。
  2. ESP32デバイスに新しい設定ファイルをインストールする
  3. ESP32デバイスの設定ファイル(.yamlファイル)を編集して、use_address:コメントアウト(もしくは削除)する。

4. おわりに

ということで、これもだいぶ楽になりましたね。

maky-ba.hatenablog.com