Android向けにHome Assistant on Gentoo

いままでiOS向けにHomebridgeの環境を整えていました。
が、iOSのHomeKit以外にHomebrigeとやりとりするようなアプリケーションがありません。
私のメインスマホはGalaxy S7 Edge。バリバリのAndroidです。
なので、家のIot機器(といっても、ほとんど電灯スイッチ)をAndroidからも扱えるようにしたい。

Linuxサーバー上動くホームオートメーションサーバーアプリケーションは、Domoticz、OpenHABなどがあるようですが、ここはGentooで簡単に動きそうなHome Assistantにしました。
「日本語がない」というのが欠点ですが、どうせそんなに難しい英語は使いません。
LivingとかLightとかですよ。中学生英語です。

そして、Home AssistantはAndroidアプリがあるのもイイ!!

LaymanにeBuildを置いてくれているツワモノもいるようですが、ここは公式に則って手動でインストールします。
と、言っても、環境を汚さないように/home配下に専用のホームディレクトリを作って、専用のユーザー権限で動かします。

やりかたは、ほぼこの公式ページです。
home-assistant.io

ただ、この公式ページは「初心者向け」って書いてあるのに、あんまり初心者向けじゃなさげ。

まずは、ユーザーとディレクトリを作成します。

gentoo ~ # useradd -m /home/homeassistant -G homeassistant homeassistant

(あるていど設定が終わってから、シェルの設定を/bin/falseにします。)

suでhomeassistatになります。

gentoo ~ # su homeassistant
gentoo ~ $

で、/home/homeassistantディレクトリで、公式ページに書かれているインストール作業を実施します。
まずは、Python3の仮想環境を構築します。ってもたったの1行。

gentoo ~ $ python3 -m venv /home/homeassistant

そしてその環境に入ります。といっても、ソースコマンドで環境変数が変わるだけかもしれませんが。

gentoo ~ $ cd /home/homeassistant
gentoo ~ $ source bin/activate

そして、homeassistantのインストールです。

gentoo ~ $ python3 -m pip install homeassistant

ここまで来れば、仮想環境を抜け出してかまいません。
というか、ルートにもどれば良いだけだと思います。

で、公式サイトに書いてある自動起動スクリプトは、Gentooには通用しないので、Gentooのお作法で、自分でインストールしたアプリケーションは/etc/local.d/の中に入れます。

/etc/local.d/homeassistant.start

#!/bin/sh
sudo -u homeassistant -H /home/homeassistant/bin/hass --pid-file /home/homeassistant/hass.pid  --daemon > /var/log/home-assistant.log 2>&1

/etc/local.d/homeassistant.stop

#!/bin/sh
kill $(cat "/home/homeassistant/hass.pid") 2>&1

これで(自動)起動する準備は整いました。
でも、起動しても、うまくいって日の出日の入りとか、chromecastやUpnp(DLNA)デバイスが見つかる程度だと思います。
(それでも、自動でみつかるだけマシですが。)

/etc/init.d/localを再起動すると、起動するはずです。

gentoo ~ # /etc/init.d/local restart

で、ブラウザ(Firefox等のmozilla系がいいです。)で、8123番ポートにアクセスします。
http://サーバーのip:8123/


f:id:naoyukinagano:20180121234519p:plain
すみません。写真は設定し終わった後なので、いろんな電灯スイッチや情報が入っています。
このあたりの設定は次回に。