Raspberry PiへのHome Assistant Supervisedのインストール・設定

自宅のホームオートメーションを実現する方法として、いくつか手段があります。 最も簡単なのはSwitchBotやNature Remoなどのスマートリモコン・温湿度計を購入して、アプリからオートメーションの設定をすることです。

www.switchbot.jp

nature.global

しかしながら、こういった製品では以下の問題があります。

  • ベンダーロックイン:同一メーカーの製品しか接続できない。他社の通信対応温湿度計などを持っていても接続できないし、自作品はもっとできない。(Matter*1ができて今後は相互接続ができるようになるかもしれませんが、そもそもまだMatter対応製品が少ない)
  • 接続可能センサに限りがある:そのメーカーに対応するリモコン・センサがなければそもそも接続できない

また、各社のHEMS製品を導入するのも手です。

sumai.panasonic.jp

しかし、こういった製品は物自体および工事費がかかり高価になりがちです。

そこで、安価に自由度高くホームオートメーションを実現するための手段として、スマートホームハブを使う、という方法があります。

www.smarthome-diy.info

これらのスマートホームハブは、オープンソースソフトウェアとして提供されており、Raspberry Piなどにインストールして使うことで、家の様々なメーカー・種類のデバイスを接続し、1つのプラットフォームでまとめて管理・連携させて動かすことができます。

今回はスマートホームハブの中でも、接続性が高そう・良い画面が作れそう、という観点でHome Assistantを採用することにし、インストールする手順を紹介します。

Home Assistantのインストール形態

Home AssistantはRaspberry Piなどにインストールして使う、と述べましたが、Raspberry Piに限ったものではなく、Home Assistant Greenというインストール済みハードウエアを購入したり、自分でRaspberry Piや他のPC・デバイスにインストールすることが可能です。

www.home-assistant.io

Home Assistantには、HA OS、Container、Core、Supervisedという4つのインストール形態があります。HA OSが最も高く多機能ですが、デバイスのOSとしてHome Assistantをインストールして使うため、そのデバイスに他のソフト・機能は入れられない制限があります。一方、ContainerやSupervisedはデバイスの旧来のOSと共存できますが、Home Assistantの機能に一部制限があり、入れられないアドオン等がある場合があります。

可能なら、Home Assistant向けデバイスを1つ用意してHA OSを入れ、他の機能は別のデバイスで実現するのが良いですが、今回は電力計測に使っているRaspberry Pi 4BでHome Assistantを併用するため、Supervisedをインストールすることにしました。

インストール手順

こちらの記事を参考にインストールしていきます。

gadget-homes.com

まず、以下のコマンドで依存パッケージをインストールします。

sudo apt install apparmor cifs-utils curl dbus jq libglib2.0-bin lsb-release network-manager nfs-common systemd-journal- 
emote systemd-resolved udisks2 wget -y

つぎに、Dockerをインストールします。

curl -fsSL get.docker.com | sh

さらに、OS Agentをインストール

 wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_aarch64.deb
 sudo dpkg -i os-agent_1.6.0_linux_aarch64.deb

ここで、dpkg --print-architectureの結果がarmhfだった場合、32bitと勘違いされています。Raspberry Pi 4BのCPUはarm64ですので、sudo dpkg --add-architecture arm64した後に、dpkgコマンドを実行します。

ここで、Home Assistant Supervisedをインストールします。

  wget -O homeassistant-supervised.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
  sudo apt install ./homeassistant-supervised.deb

現在のユーザーじゃ実行できないからrootで実行する、というメッセージが出て、そのまま継続したところインストールが完了しました。再起動を要求されるのでsudo rebootします。

最後に、対象ポートの開放をします。

sudo ufw allow 8123
sudo systemctl restart ufw

この状態でhttp://192.168.XXX.XXX:8123にアクセスすると、Home Assistantの画面が開きます。初期設定を20分ほど行い、ようこそ!画面が表示されます。

Home Assistantのセットアップ

自宅のデバイスを接続する前に、セットアップをします。マイホーム・ユーザーアカウントを作成し、自宅住所を指定します。

その後、左のメニュー→設定から、「エリアとゾーン」で室を追加します。LDK、寝室、書斎など。

また、便利なアドオンを入れます。

www.core-da-core.com

コチラの方が紹介してくれていますが、通常の運用には、File Editor、Log viewerがあるといいです。MQTTでデータを送るならMosquitto brokerが必須です。

File Editorを入れたら、configuration.yamlに以下を追加してデフォルトのポート番号を変更しておきます。

http:
  server_port: 12345

ufwのポート開放も忘れずに行っておきます。

sudo ufw allow 12345
sudo systemctl restart ufw

バイスの接続

設定→デバイスとサービス→統合を追加で、自分の持つデバイスに合わせて統合を追加します。

ここでは、SwitchBot温湿度計を接続する例を示します。「統合を追加」からSwitchBot Bluetoothを入れると、Bluetoothが届く範囲のデバイスが勝手に発見できて、デバイスとして追加できます。

ただ、これだけではどこのデバイスかわかりにくいので、デバイスの設定を編集します。統合の画面の上側のタブにあるデバイス、というタブをクリックすると、発見・接続したデバイスが表示されます。

デフォルトではMACアドレスで表示されています。ここで、デバイスを選択して右上のペンマークをクリックすると、編集画面に入るので、わかりやすい名前をつけ、そのセンサがあるエリアを選択しておきます。

こうすることで、デフォルトのダッシュボード(オーバービュー)のエリアの蘭に自動で温湿度計が追加されました。

画面の構築

接続できたセンサを可視化する画面の構築自由度が高いのが、Home Assistantのいいところです。

左の設定→ダッシュボードから、「ダッシュボードの追加」をします。

追加できたらその画面に移動して右上のペンボタンで編集し、好きなカードを追加します。

わたしは、ピクチャーエレメントというカードにハウスメーカーが作成してくれた3Dパース画像を置いて、その上に温湿度を表示するような画面を作ってみました。

面白い画面ができるのがわかっていただけるかと思います。さらに凝りたい人は、設定ファイルを変更することでもう少しカスタムできるようです。

おわりに

スマートホームハブとしてHome AssistantをRaspberry Piにインストールし、初期設定する手順を紹介しました。 安価で自由度が高いこと、Integrationが用意されていれば容易に接続でき、それをダッシュボードに表示できることを示しました。

次回はECHONETLite機器と自作デバイスのMQTTでの接続方法について記載します。

*1:スマートホーム向けの規格