家のガジェットをまとめて管理！ Home Assistant を、古いPCにインストールしよう！

# はじめに
みなさん、[Home Assistant](https://www.home-assistant.io/) 使っていますか！先日投稿した [秋月電子の謎SOC基板を使って、家の電力計の値を取得してHome Assistantで可視化しよう](https://qiita.com/tonasuzuki/items/40fa0d722f7468ec79f9) のように、家の中の機器を一括管理できる、おススメなツールです。
![home-assistant-gui-s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/2f15799c-d86d-d789-e2e0-9353196fc290.jpeg)

ポイントとしては、
- 多くの機器に対応している ( https://www.home-assistant.io/integrations/ )
- WebGUIで管理できる。OSレベルの操作(linuxコマンド入力するなど)はほぼ不要
- 動作がものすごく安定している
- オープンソースなので、ベンダロックされない
- アドオン「 [ESPHOME](https://esphome.io/index.html) 」を追加すると、[ESP32](https://ja.wikipedia.org/wiki/ESP32)を使ってお手軽にHome Assistantと連携した機器を作れる。(以前書いた記事「[秋月電子の謎SOC基板で取得した家の電力利用状況を、小型液晶画面に表示しよう](https://qiita.com/tonasuzuki/items/f499ba012aefbc0c23c1)」をご参照ください。)

などなど、手間をかけずに稼働できるところが、とてもすばらしいです。
簡単ですが、みなさんの家に一つはあるだろう古いPCに、このHome Assistantサーバーをインストールする手順をまとめました(手順にするほど、複雑ではないのですが…)。まだ家に設置されていない方、お試しください。

# 準備するもの
- ちょっと前のデスクトップPC
  - ここでは、定番のRaspberryPiではなく、Windows11に対応しない(第8世代Intel CPU以前の)デスクトップPCにインストールしてみましょう。64ビット版(x64) Windows 10 が動く程度の性能があり、UEFI ブートができて、定番のチップセット、定番のNICが載っており、32GB以上のストレージ(ハードディスクまたはSSD)、メモリが2GB以上載っているデスクトップパソコンであれば、簡単にインストールできて快適に動きます。(詳細は[Home -> Installation -> Generic x86-64](https://www.home-assistant.io/installation/generic-x86-64)をご確認下さい ) 。
  - 今回は、手元にあったi5-4590T(第4世代 Haswell)のミニPCにインストールしてみました。中古PCを探せば、RaspberryPi 4よりお安い価格で見つけることができるかと思います。
![desktop-pc.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/05b5751b-d94e-6339-0edb-54c68ae705e7.jpeg)

- 上記PCのストレージをUSB経由で接続するケーブル
  - Home Assistantのイメージをハードディスクに書き込むために必要です。
  - ケーブルが無い場合は、USBメモリに入れたUbuntu linuxを上記PCに差し込み、イメージを書き込む方法もあります。⇒[To install HAOS via Ubuntu from a USB flash drive](https://www.home-assistant.io/installation/generic-x86-64#to-install-haos-via-ubuntu-from-a-usb-flash-drive)

- いつも使っているPC 
  - 稼働時の操作は、上記デスクトップのPCでは行わず、いつも使っているPCからwebブラウザ経由で操作します。また、インストール時にOSイメージを書き込むためにも使います。

# Home Assistantのイメージをダウンロードして、ストレージ(ハードディスク・SSD)に書き込む
いつも使っているPCで、[ Home Assistant Operating System ]( https://github.com/home-assistant/operating-system/releases/ )から、Generic x86-64のOSイメージファイル(ファイル名が「haos_generic-x86-64-xx.x.img.xz」(xx.xはバージョン))をダウンロードします。
ダウンロードしたらファイルを展開し、haos_generic-x86-64-xx.x.img のファイルを取り出します。また、OSイメージを直接ストレージに書き込むツール [Balena Etcher ]( https://www.balena.io/etcher )をダウンロードします。
古いデスクトップPCのストレージを取り出し、いつも使っているPC(上記Balena EtcherをインストールしたPC)にUSB経由で接続します。
Balena Etcherを起動し、「Flash from File」をクリックして、書き込みイメージとして上記 haos_generic-x86-64-xx.x.img を選びます。そして「Select Target」として、上記USB経由で接続したストレージを選択します(ストレージを間違えると、とても悲惨なことになるので、関係ないストレージは外しておくなど、間違えないようにしましょう)。「Flash」を押して、OSイメージをストレージに書き込みます。
![balenaEtcher-1s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/2e053061-dec9-aa35-ff4d-c87f93918961.jpeg)

# ストレージを古いデスクトップPCに入れて起動！
上記でOSイメージを書き込んだストレージをPCに入れ、LANケーブルを接続して起動します。操作は他のPCからWebブラウザ経由で行うので、LANケーブルをつないでください。
初回はストレージのパーティションの調整などを行っているようですので、5～10分程度待って、いつも使うPCのブラウザから、以下を入力してください。
```
http://homeassistant.local:8123/
```
なお、ディスプレイを接続すると、動作確認、IPアドレスの確認が行えます。以下のような画面が表示されていれば、正常に動作しています。
![ha-console-ss.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/37aaca60-2d7c-9046-e936-e86c58028db8.jpeg)

ブラウザで以下のような画面が表示されれば、Home Assistantサーバー完成です！
![ha-welcome-s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/3f59ff28-7e82-7ee5-cd3d-63a811647143.jpeg)

以下の設定を行います。
- 「私のスマートホームを作成」を押します。まず、自分のユーザーアカウント(このHome Assistantサーバーにログインするためのアカウントです)
- 「自宅の場所」を設定します。(天気や日の出/日の入りなどの環境情報を収集するのに使います)

# ちょっとした初期設定を行う。
- 画面左の「設定」を押して、「システム」⇒「一般設定」で、サーバ名称、単位などを設定します。
- このサーバーの電源を切るには、画面左の「設定」を押して、「システム」を選びます。画面右上にある電源のアイコンを押します。

# 試しにデバイスを追加して、ダッシュボードに表示してみる。
- Home Assistantで、例えばLED電球をコントロールするとします。Home Assistantでは、LED電球を「デバイス」と呼びます。このLED電球の状態を示す数値を、「エンティティ」と呼びます。また、デバイスを制御する機能を「サービス」と呼びます。
- ここでは試しに、今回作成したHome Assistantサーバーの状態を、エンティティとして取得するサービスを追加してみましょう。(ただし、用意したPCによっては、正常に値を取得できない項目があります)
  - まず、空白のダッシュボードを作成します。「設定」⇒「ダッシュボード」⇒「ダッシュボードを追加」で、空白のダッシュボードを作成します。
  - 「設定」⇒「デバイスとサービス」を選び、画面右下の「統合を追加」をクリックします。
  - 「System Monitor」サービスを探してクリックし、「送信」をクリックします。
  - 画面下のほうの「設定済み」に「System Monitor」が追加されていると思いますので、クリックします。「エンティティ」をクリックすると、Home Assistantサーバーの状態を取得できる項目の一覧が表示されます。
  - 試しに「プロセッサー温度」を探してクリックし、右上の歯車アイコンをクリックして設定画面を開き、「有効化」をクリックします。
  - 一度画面左上の「←」をクリックして、System Montitorの一覧画面に戻り、「サービス」をクリックすると、「診断」項目に、先ほど有効化した「プロセッサー温度」が追加されているかと思います。ここで「ダッシュボードに追加」をクリックすることで、空白のダッシュボードに、リアルタイムにプロセッサー温度()を表示できます。
  
![ha-test-device-s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679798/0d9f8fb2-999b-5847-b03a-5a3eac8beaf6.jpeg)