Home Assistantとは?機能とサーバーへのインストール方法

読了時間 5分
Tropic
Home Assistantとは?機能とサーバーへのインストール方法

Home Assistant:スマートホームを一元管理するコントロールセンター

スマート電球は一つ目のアプリ、ロボット掃除機は二つ目、エアコンは三つ目、漏水センサーの通知は四つ目のアプリから届く。これでは「スマートホーム」のはずが、普通のスイッチより多くの手作業を要求することになります。

Home Assistantは、対応デバイスを一つのダッシュボードにまとめ、オートメーションで連携させます。ここでは、その機能、必要スペック、Docker Composeを使ったインストール方法を解説します。

Home Assistantを始める七つのステップ

  1. Home Assistantのインテグレーションカタログで所有デバイスを確認する。
  2. インストール先を選ぶ:既製ハブ、ミニPC、Raspberry Pi、NAS、仮想マシン、Linuxサーバー。
  3. Home Assistant OSまたはHome Assistant Containerをインストールする。
  4. 検出されたデバイスとサービスを追加する。
  5. 部屋ごとに割り当て、ダッシュボードを設定する。
  6. 役に立つオートメーションを一つ作る。
  7. バックアップと安全なリモートアクセスを設定する。

最初から何十ものシナリオを作るのではなく、本当に困っている問題を一つ解決するところから始めるのがおすすめです。最初のオートメーションが安定して動いたら、システムを拡張できます。

Home Assistantとは

Home Assistantは、スマートホームを管理するための無料かつオープンソースのプラットフォームです。中央ハブとして動作し、異なるメーカーのデバイスやサービスに接続して、Webインターフェースやモバイルアプリから操作できるようにします。

プロジェクトのカタログには、照明、空調機器、カメラ、ロボット掃除機、エネルギーメーター、MQTT、Zigbee、Z-Wave、Matter、Apple HomeKit、クラウドサービスなど、1500以上のインテグレーションがあります。

特定ブランドのアプリとの最大の違いは、シナリオが一つのエコシステムに限定されないことです。あるメーカーのセンサーで別メーカーの照明を点灯し、他社製サーモスタットの温度を変更して、スマートフォンに通知を送ることができます。

Home Assistantが複数のアプリより便利な理由

システムがスイッチをスマートフォンへ移しただけでは、家が賢くなったとはいえません。Home Assistantの価値は、いつもの操作が自動で実行されるところから始まります。

オートメーションは、トリガー、任意の条件、アクションで構成されます。たとえば、「誰かが帰宅した」がトリガー、「すでに日が沈んでいる」が条件、「リビングの照明を点ける」がアクションです。

デバイスは、スマートフォン、パソコン、壁掛けタブレットで使える共通ダッシュボードに表示されます。部屋ごとに整理し、家族用とゲスト用に別々の画面を作ることもできます。

ローカルインテグレーションを使う場合、コマンドとデータは家庭内ネットワークに残り、インターネットがなくてもシナリオを実行できます。ただし、デバイスがクラウドAPIしか提供していない場合、Home Assistantもメーカーのサービスに依存します。

そのほか、モバイル通知、在宅検知、音声アシスタントのAssist、電力網、太陽光パネル、バッテリー、ガス、水、個別の家電を記録するエネルギーダッシュボードも利用できます。

便利なHome Assistantのシナリオ

スイッチを何度も使わない照明

モーションセンサーが日没後だけ照明を点けます。夜間は低い明るさを使い、数分間動きがなければ自動で消灯します。

漏水対策

センサーが水を検知すると、システムが対応する電動止水栓を閉じ、ポンプを停止して通知を送ります。所有者がメッセージに気づくのを待たず、重要な処理がすぐに実行されます。

在宅状況に応じた空調

最後の一人が外出すると、暖房やエアコンが省エネモードに切り替わります。窓が開いている間だけ、特定の部屋の空調を停止することもできます。

洗濯終了の通知

スマートプラグが洗濯機の消費電力を測定します。運転終了後に電力が設定値を下回ると、Home Assistantが洗濯物を取り出す時間だと通知します。

無駄な電力消費の発見

消費履歴を見ることで、常時稼働している負荷を見つけ、どの家電を別の時間帯に動かすと経済的か判断できます。

コードは必要か

基本的なスマートホームにプログラミングは必要ありません。インテグレーション、部屋、ダッシュボード、多くのオートメーションはグラフィカルインターフェースから設定できます。

YAML、テンプレート、独自インテグレーションが必要になるのは複雑なケースです。最初から使う必要はありません。ほぼすべての項目を手動編集する古いガイドは、現在の初心者向けの一般的な導入方法を反映していません。

Home Assistantをどこにインストールするべきか

現在のドキュメントでは、主にHome Assistant Operating SystemとHome Assistant Containerの二つの方式が使われています。

方式向いている人知っておくべきこと
Home Assistant Greenすぐ使えるハブが必要システムはインストール済み
Home Assistant OSを搭載したRaspberry PiまたはミニPC多くの家庭ユーザー更新、バックアップ、アプリの管理が簡単
NASまたはホームサーバー上の仮想マシン常時稼働するホストがすでにあるリソースを割り当ててUSBをパススルーできる
Home Assistant ContainerDockerユーザー内蔵アプリストアがなく、更新は手動
VPSテストや遠隔拠点家庭内の無線デバイスへ直接アクセスできない

Home Assistant OSは、多くのユーザーに推奨される方式です。Linuxサーバーですでに別のサービスが動いている場合はContainerが便利ですが、アプリやThreadまたはZ-Wave用の一部コンポーネントは個別に管理する必要があります。

必要なリソース

仮想マシンの公式最小要件は、2 vCPUと2 GBのRAMです。実用的な目安は次のとおりです。

シナリオCPURAMストレージ
テスト環境または小規模システム2 vCPU2 GB32 GB SSD
追加サービス用の余裕を持たせた家庭環境2–4 vCPU4 GB32–64 GB SSD
カメラ、ローカル音声、大量の履歴4+ vCPU8+ GB64 GB SSD以上

特に負荷を増やすのは、カメラ、履歴の保存期間、音声モデル、追加コンテナです。常設する場合はSSDを使うのがおすすめです。

Docker ComposeでHome Assistantをインストールする方法

この方法は、Docker EngineとDocker ComposeがインストールされたLinuxサーバーに適しています。ディレクトリを作成します。

mkdir -p ~/homeassistant/config
cd ~/homeassistant

compose.yamlを作成します。

services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    environment:
      TZ: Etc/UTC
    restart: unless-stopped
    stop_grace_period: 60s
    privileged: true
    network_mode: host

/run/dbusの行はBluetoothに必要です。Bluetoothを使わない場合は削除できます。タイムゾーンのEtc/UTCを自分の地域に変更し、コンテナを起動します。

docker compose up -d

インターフェースはhttp://サーバーIP:8123で開きます。ホームサーバーではローカルネットワーク内から利用してください。VPSでは、事前に外部ファイアウォールで8123番ポートを閉じます。

リモートサーバーへ初めてログインする場合は、SSHトンネルを作成できます。

ssh -L 8123:127.0.0.1:8123 user@サーバーIP

http://localhost:8123を開き、管理者アカウントを作成して、最初のインテグレーションを追加します。

VPSでHome Assistantを使えるか

Home Assistant ContainerはLinux VPSで動作します。インターフェースを試したり、クラウドインテグレーションを使ったり、VPNまたはMQTTで遠隔拠点を接続したりする用途に向いています。

ただし、VPSは自宅の外にあります。通常はネットワーク探索でローカルデバイスを検出できず、自宅にあるZigbee、Z-Wave、Thread用USBアダプターも直接利用できません。Bluetoothセンサーも通信範囲外です。

そのため、メインコントローラーは自宅に置き、VPSは外部レイヤーとして使うのが合理的です。用途は、VPNゲートウェイ、安全なアクセスポイント、監視サーバー、関連サービスのホストなどです。

ローカル無線プロトコルを使わないテストシステムなら、2 vCPU、2 GBのRAM、SSDで十分です。tropic.hostでは小さなLinux構成から始め、Home AssistantにMQTT、Node-RED、データベース、その他のコンテナを追加した場合にリソースを増やせます。Zigbee、Thread、Z-Wave、Bluetoothは引き続き自宅側のノードに置くのが適切です。

安全なアクセスとバックアップの設定方法

8123番ポートを直接公開しないでください。リモート操作にはHome Assistant Cloud、VPN、またはHTTPS対応のリバースプロキシを使用します。多要素認証を有効にし、必要なユーザーだけに管理者権限を付与してください。

Home Assistantは自動暗号化バックアップに対応しています。少なくとも一つのコピーをシステム外に保存し、暗号化キーを含むemergency kitも別の場所で保管してください。

よくある間違い

間違いより良い方法
インテグレーションを確認せずにデバイスを購入する対応モデルと機能を調べる
最初から何十ものオートメーションを作る一つの簡単なシナリオから始める
物理スイッチをすべて取り外す重要機能には手動操作を残す
ZigbeeコーディネーターをVPSに設置する自宅内に配置する
バックアップをシステムと同じ場所に保管する別の機器または自宅外にコピーを作る

まとめ

Home Assistantは、ばらばらのデバイスを一つのシステムにまとめます。一つのダッシュボード、統合された履歴、ブランドをまたぐオートメーションを利用できます。互換性を確認し、Home Assistant OSまたはContainerをインストールして、役に立つシナリオを一つ作れば、プログラミングなしで始められます。

メインサーバーは、特にZigbee、Thread、Z-Wave、Bluetoothを使う場合、自宅内に置くのが適切です。VPSはテスト、クラウドインテグレーション、VPN、監視、関連サービスに役立ちますが、ローカル無線ゲートウェイの代わりにはなりません。

FAQ

Home Assistantは無料ですか?

はい。ハードウェア、外部のクラウドサービス、任意のHome Assistant Cloudサブスクリプションには費用がかかる場合があります。

インターネットがなくても動作しますか?

ローカルインテグレーションとオートメーションは家庭内ネットワークで動作し続けます。クラウド専用デバイスはインターネットがないと利用できません。

Raspberry Piは必要ですか?

いいえ。Home Assistant Green、ミニPC、古いパソコン、NAS、仮想マシン、Linuxサーバーを使用できます。

Home Assistant OSとContainerのどちらがよいですか?

多くのユーザーにはHome Assistant OSのほうが便利です。Containerは、すでにDockerを利用していて、追加サービスを自分で管理できる人に向いています。

異なるメーカーのデバイスを接続できますか?

はい。対応するインテグレーションがあれば接続できます。購入前にブランドだけでなく、具体的なモデルと対応機能も確認してください。