Home Assistantでつくるホームオートメーション(導入編)

ホームオートメーション/スマートホーム化を実現できるOSSのHome Asssitantについて

Home Assitantとは

ホームオートメーションを実現するためのソフトウェア.Githubで開発されており,Python3で書かれている. 様々なサービス,センサー,家電に対応しておりブラウザでそれらの状態を確認,操作するためのUIが提供されている. また,特定のトリガーとアクションをあらかじめ定義しておくことでそれらを自動制御することもできる.

同様のソフトウェアとして,以下のようなソフトウェアもある

2017/4/22時点でGithubのスター数は以下のような感じでHome Assistantが一番人気がありそう.

  • Home Assistant…6583
  • openHAB…241
  • Domoticz…651
  • HomeBridge…4903

公式サイトでデモ画面を見ることができる.Home Assistant Demo

インストール

Installation of Home Assistant - Home Assistant

様々のインストール方法が提供されている.自分はRaspberryPiでGPIOを使いたかったためRaspbianへのManual Installを選択した.

systemdのユニットファイルも提供されている.自分は多少変更して以下のようにした.

  • /etc/systemd/system/home-assistant.service
[Unit]
Description=Home Assistant
After=network.target

[Service]
Type=simple
User=ha
ExecStart=/srv/homeassistant/bin/hass -c "/home/ha/.homeassistant"

[Install]
WantedBy=multi-user.target

「ha」という名前でシステムユーザを作成し,このユーザでHome Assistantを実行するようにしている.

参考: Autostart using systemd - Home Assistant

  • 有効化
sudo systemctl daemon-reload
sudo systemctl enable home-assistant
sudo systemctl start home-assistant

初回起動時はコンポーネントのインストールがあるため10分ほどかかる. ブラウザでポート8123へアクセスするとWebUIが表示される.

実行ユーザのホームディレクトリに.homeassistant/configuration.yamlというファイルが自動で作成される.基本的に設定はこのファイルにYAML形式で書いていくことになる.

概念

Home Asssistantで扱うリソースはComponentという形で提供されておりここから確認できる.これを書いている時点でComponentは640個ある. 個々のComponentはPlatform(Serviceと表記されることもある)としてグルーピングされており,設定方法や可能な操作はPlatformごとに決まっている. Platformには例えば以下のようなものがある.

  • Media Player
    Google Cast,Amazon Fire TV,Apple TV,Kodiなど,再生/停止/音量などのインターフェースを持つもの
  • Lights
    Philips Hue,MiLight(LimitlessLED)など,点灯/消灯/照度/色温度などのインターフェースを持つもの
  • Switches
    Belkin WeMo,D-Link Smart Plugなど,ON/OFFのインターフェースを持つもの
  • Notifications
    Slack,Pushbulletなど,メッセージを与えるもの
  • Sensor
    Netatmo,Zabbix,OpenWeatherMapなど,数値や文字列を取得できるもの
  • Binary Sensor
    0/1の値を取得できるもの

ひとつのWebサービスやデバイスでもインターフェースによっては複数のPlatformにComponentが用意されていることがある.
また,それぞれのPlatformには,Webサービスやデバイスの他にREST,Commandといった汎用的なComponentも用意されているため結構いろいろできる.

ひとまずこれくらいを知っておくとスムーズに使い始めることができるはず.

以上

関連記事

comments powered by Disqus