スマートホームを実現する「Home Assistant」 〜Google HomeやAmazon Echoとの連携も

2018年5月22日Home AssistantHome Assistant, スマートホーム

ということで、スマートホームを実現する統合アプリ「Home Assistant」を導入していこう。

前回の記事(Home Assistantの機能紹介)

Home Assistantで何が出来るのかは、下記の記事を参考としていただきたい。

インストールするのは「hass.io」

前回の記事でも記載した通り、Home Assistantにはスタンドアロン版の「Home Assistant」と、アドオンなどの追加が可能となっている「Hass.io」が存在している。

「Hass.io」を導入すると、アドオンとして「Home Bridge」(AppleのHomekitに登録することが出来る)や「Google Assistant」を導入することができるため、非常に便利だ。

下記のページが公式サイトである。

「Hass.io」をインストールする

公式なインストール手順は下記に記載されている。

今回はUbuntuに「Hass.io」をインストールすることにする。従って、「Alternative: install on generic Linux server」(Linuxサーバーにインストールする)に従ってインストールをすすめていく。 なお、Raspberry PiやIntelのNICでも同じ手順でインストールすることが出来る模様。

この「Linuxサーバーへのインストール」は、Dockerイメージで構成されている。従ってインストールは非常にシンプルだ。

必要なモジュールのインストール

以下のモジュールが必要となるので、事前にインストールをする。

  • docker
  • bash
  • socat
  • jq
  • curl
  • avahi-daemon
  • dbus-daemon

aptで一括インストール。

apt-get install -y docker bash socat jq curl avahi-daemon dbus-daemon

Hass.ioをインストールする

基本的には、公式サイトからDockerイメージをダウンロードして、Dockerのコンテナが起動する設定を自動的に行ってくれる。
root権限で適当なディレクトリに遷移し、下記のコマンドを打ち込む。

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s

インストールが自動的に行われる。

Dockerで起動しているかどうかを確認する

Hass.ioのインストールが完了すると、Dockerで自動的に「hassio_supervisor」と「homeassistant」が起動しているはずだ。
下記のコマンドで確認することが出来る。

docker ps

以下のような形で、STATUSが起動中になっていれば成功だ。

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                                            NAMES
990f991ac03e        homeassistant/qemux86-64-homeassistant       "/usr/bin/entry.sh..."   46 hours ago        Up 6 hours                                                           homeassistant
15d3e64255ff        homeassistant/amd64-hassio-supervisor        "/usr/bin/entry.sh..."   47 hours ago        Up 46 hours                                                          hassio_supervisor

ブラウザでアクセスする

標準では、Home Assistantは8123ポートで動作している。http://[サーバーのアドレス]:8123にアクセスすれば、Home Assistantの画面を表示することが出来るだろう。

ただし、パスワードを設定しなくてはならない。Dockerのコンテナに入り、configファイルをいじくることでHome Asisstantのパスワードを設定することが出来る。

パスワードを設定する

まず「Homeassistant」のイメージに入る。

docker exec -it home assistant /bin/bash

その後、/config/configuration.yamlを編集する。

vi /config/configration.yaml 

以下のように設定すれば大丈夫だ。ちなみに、このあとconfiguration.yamlはいやというほどいじくることになるのでご承知を。

http:                     
 api_password: [パスワード] 

おそらく、デフォルトで「api_password」なる部分があるはずなので、この部分にパスワードを設定すれば問題ない。
パスワードを反映するために、home assistantを再起動する。本当はやってはいけないのだが、dockerのコンテナごと再起動をする。

docker restart homeassistant

これで、Home Assistantのインストールが完了した。

DockerのDNSに注意

一部の環境では、DockerのDNSがうまく設定されていないことがある。具体的には、上記の手順でHome AssistantのDockerコンテナに入った際、nslookupが聞かない場合にはその状態になっている。
その場合、 /etc/default/docker を開き、次の設定を追加する。

docker_OPTS="--dns [DNSサーバーのアドレス]"

なお、ここでパブリックDNSを設定したくなるが、 Public DNSを設定するといくつかの機能が使えなくなる ため、ルーターのアドレスなどを指定することが望ましい。また、上記の手順でうまく行かない場合は下記サイトを参考とすること。

次回

次回はhttpsに対応する手順と、具体的にいくつかセンサーを追加してみる手順を掲載する予定。

センサーの追加手順

書いた。

その他Home Assistantと連携する系の記事たち

Xiaomi Smart Home

Xiaomi Gateway

ホームオートメーション

※Home Assistant特集はこちらから。

執筆者紹介

Thir

購入したガジェットの紹介やサーバーの構築方法、スマートホーム化等、そのときハマっていたもののメモ書き・趣味の備忘録ではありますが、お役に立つ情報があれば幸いです。最近はYouTubeでもレビュー動画やVlogをあげています。サイト紹介・プロフィールはこちら。依頼・お問い合わせはこちらから。