スマートホームを実現する「Home Assistant」 〜Google HomeやAmazon Echoとの連携も
ということで、スマートホームを実現する統合アプリ「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特集はこちらから。