e-tipsmemo

ごった煮

Home AssistantとESPHome導入とESP8266でLED点灯

Getting Started with ESPHome and Home Assistant — ESPHome
ここをやったときのメモ

Home AssitantのSupervisorになるものを用意

候補
Installation - Home Assistant
Dockerが動けば大体いけるので、最近のSynologyやQNAPのハイスペックNASでも行ける気がするが
無難にRaspberry piでいく。
公式ではRaspberry pi 3以上を推奨している。
Raspberry Pi - Home Assistant
手元にあったのはRaspberry pi 3B+でRAMが1GBであった。

Raspebian + Home Assistant Container(Docker)でいこうとするとRaspberry pi 4の8GBのほうがよいと思う。

面倒を避けるため最初から全部入りのHome Assistant Operating Systemでいく。
f:id:katakanan:20210808120329p:plain

OSのインストール

大体ここに沿って行けばよい
balenaEtcher - Flash OS images to SD cards & USB drives
Raspberry piのバージョンに合わせてOSを選択
f:id:katakanan:20210808120507p:plain

8分ぐらいかかる。

起動

LANケーブルをいれてから
電源をいれる。

初回起動はかなり遅いので、10分ぐらいまつ。
そうすると
http://homeassistant.local:8123
でHome Assistantの管理画面が初回起動画面が見れた。
f:id:katakanan:20210807075601p:plain
ここで20分程度待つ。

納豆が糸引いてるみたい。
f:id:katakanan:20210807095032p:plain:w150

その後画面が勝手に切り替わってアカウント作成しろとなる。
Onboarding Home Assistant - Home Assistant

Add-onでESPHomeを入れる

f:id:katakanan:20210808121227p:plain
SupervisorをクリックしてアドオンストアからESPHomeをクリックし、インストールする。
f:id:katakanan:20210808121349p:plain
インストールにも20分ぐらいかかった。

アドオンがインストール完了するので開始を押す
f:id:katakanan:20210808121500p:plain
開始するのに60秒ぐらいはかかる。
f:id:katakanan:20210808121554p:plain
WebUIでようやくターゲットデバイスのコンフィグを行うyamlを書く画面となる。

バイスの作成(ノードの追加)

LAN上にある管理されるデバイスのことをノードと呼ぶ?
右下の緑の+から。
f:id:katakanan:20210808121708p:plain
ノードの名前とそのノードが接続するWifiSSIDとPasswordをいれる。(あとから編集できる)

f:id:katakanan:20210808121922p:plain
今回はESP8266( https://akizukidenshi.com/catalog/g/gK-12236/ )
f:id:katakanan:20210808122004p:plain
EDITからデバイスの構成を書ける。

デフォルトで以下のようになっている。

esphome:
  name: test
  platform: ESP8266
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "********************"

wifi:
  ssid: "**************"
  password: "****************"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Test Fallback Hotspot"
    password: "***************"

captive_portal:

適当なところに以下をついか

switch:
  - platform: gpio
    name: "LED"
    pin: 14

f:id:katakanan:20210808122745p:plain:w400

SAVEする。

Firmwareを書く

f:id:katakanan:20210808123102p:plain:w400
INSTALLボタンからManual Downloadを選ぶ。
Wirelesslyは、OFFLINEだと使えない。
yamlで指定した構成をもとに、ソースコードが生成されて、ビルドが始まる。
f:id:katakanan:20210808123404p:plain:w400
終わるとbinがダウンロードされ始める。
f:id:katakanan:20210808123712p:plain:w400

ESP flasherなどでbinを書き込む。
f:id:katakanan:20210808123854p:plain:w400

ダッシュボードに置く。

書き込んだESPを起動して、Wifiが接続されて、Home Assistantがそれを発見すると、ONLINEになる。
f:id:katakanan:20210808124110p:plain:w400
f:id:katakanan:20210808124152p:plain:w400
設定のインテグレーションの中に先ほど作ったノードが”発見”されているので「設定」する。

Statusにデバイスが設定される。
f:id:katakanan:20210808124357p:plain:w400
Toggle Buttonをスライドさせると、Pin14につながったLEDが点灯した。

感想

インストールで待つのがいやだったら、Raspberry pi 4を使ったほうがいい。

しかし、そうするとかなり熱くなる。
3B+ではヒートシンクでもなんとかなるかもしれないが、
4ならアルミケースなど全体で冷やさないともたなさそう。

さらに長時間使うとSDカードがダメになるという報告も見たので、(書き込み上限などで)
そういう場合はSSDなどからブートできたらと思う。(USB3.0じゃないと起動が遅いと思われる)
これらを満たす以下のケースを見つけた。

しかし値段的には
Raspberry pi 4 8GB + 上のアルミケース(M.2可能)とCeleronIntel NUCが対応するかもしれない。(どちらもストレージは別)

以前つかったTasmotaによってコンフィグされたデバイスもおそらくこのHomeassistantで管理できるのだと思う。
しかしTasmotaはデバイス側の自由度が低く、自分で作ったESPデバイスにあった構成をコンフィグできるとは限らないと思った。
その点、こちらのESPHomeはプログラミングまでではないが、yamlによって構成を自由に記述できるので、自分でESPが乗ったデバイスを作ったりする場合はこちらのほうが良いと思った。


バイスからのイベントをつなげてある自動化をおこなうTutorialもあったが、これはまた別記事に書こうと思う。
Automating Home Assistant - Home Assistant