コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home Assistant (Hass.io)でホームオートメーション】1. Raspberry PiにHome Assistant導入

再起動、って言ってから早何か月だ?!…ゆるゆると進めてゆきます

0. まえがき の まえがき

 2017年後半にGoogle Homeが日本で発売されました。 デジモノ、コモノ好きの私は当然購入しました。 まあ「毎日天気予報を聞く」「忘れてしまった俳優の年齢を確認する」「忘れずに体重を記録する(※これはそのうち記事にしましょう)」という用途では役に立っており、今では計4個(Homeが2個、Home Miniが2個)が活躍中です。
 が、しかし、それだけでは何だか可哀そう。何か他に役立つことはないのかと。
 「ねぇGoogle、電気をつけて」
これだ! 当時はまだ、家をコントロールする仕組みはあまり世に出ていない様子でしたので、それならコモノ(=デジタルガジェット)を組み合わせて家をスマート化(?)してGoogle Homeと繋いで、我が家で「ねぇGoogle」してやろう!と思い立った次第。
 さて、世の中的には、クラウドサービスを活用してスマートホーム化する流れだと思うのですが、私は残念ながら、古い世代で自分の情報は極力身近に置いておきたい派なのです。ありていに言ってしまうと、クラウドサービスの継続性をまったく信用していないのです。きっとそのうちサービスされなくなって、おうちのコントロールが出来なくなっちゃったりするのです。*1
で、いろいろ調べるとHome Assistantというオープンソースシステムで、家庭内ホームオートメーションサーバが簡単に作れそうということで、Home Assistantを中心に頑張ってスマートホームを目指してみることに。現在も奮闘中。

(追記:2020年11月15日 いろいろ取り組み増えてきたので下記の目次作りました。本編の最新ラズパイ(Raspi4)化もありますよ。) maky-ba.hatenablog.com

1. まえがき

 スマートホームのガジェット(学習赤外線リモコン、スマートコンセント等)は、基本的にはその会社のクラウドサービスやアプリと組み合わせて使うことが前提となっています。ただ、最近はAlexaとかGoogleHomeとかと連携できるものが多いので、それを核にしてスマートホームを満喫することも可能です。それでも、アプリからの操作などはやはり個別のままだったりします。


 Home Assistantは、様々なメーカーのいろいろな製品を直接操作(クラウド経由での操作もありますが)する統一的ホームオートメーションを実現する「おうちサーバ」のオープンソースソフトウェアです。ここ1年半でバージョンも0.6台から0.9台への着実に進歩しておりますし、しばらくは活発に活動するのではないかと思います。まあ、コミュニティは英語中心であまり日本語での紹介が無いのが玉に瑕ですが…  まずは、Home Assistantを導入して、センサーやスイッチなどを順番に繋いでゆきたいと思います。

2. 前提

下記のバージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)

  • ホームオートメーションサーバ(ソフト): Home Assistant 0.95
    (0.96でも同様。少し画面デザインが変わりましたが)
  • ホームオートメーションサーバ(ハード): Raspberry Pi 3 Model B+

3. 準備

さてまずは本命のホームオートメーションサーバの準備を進めてゆきましょうか。

f:id:maky_Ba:20190713222847j:plain:w150:left サーバ(ハード)
Raspberry Pi 3 Model B+

私はマルツで購入しましたが、あっちこっちで買えますね。

f:id:maky_Ba:20190713231122j:plain:w150:left ケース
サーバ用途なので、一応ファン付きのものを。 「Smraza Raspberry Pi 3B+ ケース」と次で紹介する「スイッチ付ACアダプタ」のセットを使っています。

f:id:maky_Ba:20190714213311j:plain:w150:left ACアダプタ 2.5A USB Micro-Bコネクタ出力
RaspberryPi3が2.5A必要なので流用は難しいですね。 それから、Raspberry Piは電源スイッチが無くUSBケーブルの抜き差しが電源スイッチがわりなのですが、これはスイッチ付きUSBケーブルです。便利。

f:id:maky_Ba:20190714213355j:plain:w150:left SDカード (microSD 64GB)
32GB推奨だが、FAT32でフォーマットされている必要あり。 Windows10では64GB SDはFAT32フォーマットできない(そもそも64GBをFAT32にするのは規格外)ので、なんらかのツールを使う必要があります。 アクセス速度より常時起動を考慮して、高耐性のMLCタイプのSDカードを使っています。

f:id:maky_Ba:20190714212255j:plain:w150:left サーバ(ソフト)
Home Assistant

https://www.home-assistant.io/getting-started/

それ以外に必要なもの: インターネット接続(無くてもおうちサーバは立てられますが、そもそもインストールが大変…)、 無線LANルーター(ホームオートメーション専用に1台古いのを準備。無線LANと有線LANが両方あるとよし)、 LANケーブル(必要なだけ)、 PC(Windows/MAC/Linux)(microSDにHome Assistantを書き込むのに使用)、 PC/タブレット/スマホ(Home Assistantをブラウザ越しに設定するのに使用)、 ぐらいでしょう。

4. さあHome Assistant(Hass.io)を導入するぞ

Home Assistantが、オープンソースのサーバソフトだという事は言及しましたが、ではタイトルにある「Hass.io」というのは何か。まあ、難しいことを省くと、インストールと管理が便利な「一塊になったHome Assistant」のこと、とでも覚えておけば問題ない。 基本的には、Install Home Assistantに従ってインストールを進めれば良い。下記のその手順。

(1) ソフトウェア(Hass.io)のダウンロード

Installing Hass.ioのページから該当するハードウェアのzipファイルをダウンロードする。今回はRasPi3B+なので『Raspberry Pi 3 Model B and B+ 32bit (recommended)』をダウンロードする。

(2) SDカードに書き込む

Windows/Mac/Linux用のSD書き込みソフトEtcherをインストールする。FAT32でフォーマットされた32GB以上のSDカードをパソコンに挿入して、Etcherを起動し、下記のステップで書き込む。

  1. Select image: (1)でダウンロードしたzipファイルを指定
  2. Select drive: SDカードのドライブ(決してシステムドライブとかと間違えないこと)
  3. Flash!: これで書き込み開始

(3) Raspberry Piの固定IP化

Raspberry Pi側で固定IPに出来るはずですが、設定が面倒なので、ルーターDHCPでのIPの割り当て時に固定IPを割り当てるようにする。

1) IP確認の準備
今回準備したルーター(インターネット接続までは準備を完了していること)に接続したスマホタブレットに、Fing(iPhone/Android)をインストール。このアプリで同一ネットワーク内のマシンのIPやMACアドレスがわかるようになる。
2) Raspberry Piの起動
MicroSDカードを挿入し、LANケーブル(準備したルーターに繋いだもの)を接続し、最後に電源(USBケーブル)を接続する。しばらく激しくLEDが点滅するので傍観する。
3) IPアドレスMACアドレスの確認
LEDの点滅が落ち着いたら(本当はHass.ioのネットワーク初期設定が完了したら、だが外からはよくわからない)、Fingを起動し準備したルーターを選択。Bonjour名:hassio、MAC販売元:Raspberry Piというデバイスがあるはず(なければもう少し待つ)なので、そのIPアドレスMACアドレスをメモる。(例:IPアドレス=192.168.1.3、MACアドレス=B8:27:EB:xx:xx:xx)
4) ルーターDHCP設定
ルータ毎にDHCPでの振り出しIPの固定化手順は違うと思うが、私が使っているBuffaloのルーターでは、「Internet/LAN」→「DHCP リース」で、3)で調べたMACアドレスを「手動割当」に変更できる。(例えば、192.168.1.30に設定(固定)する)
5) Home Assistantの画面にアクセス
先ほどFingを実行したスマホ/タブレットのブラウザからhttp://(Raspberry PiIPアドレス):8123にアクセスする。Name/Username/Passwordを設定しろと言われるので、設定する。UsernameとPasswordは、このHass.io(Raspberry Pi)にアクセスするときに使うので忘れないように。 左上のメニューから設定(歯車のマーク)を選び、「一般」→「サーバー管理」「再起動」とすすむ。
6) IP固定化の確認
Raspberry PiのLEDのチカチカ(Hass.ioの起動中)が落ち着いたら、再びFingでhassioデバイスIPアドレスを確認する。

(4) Home Assistantの起動確認

さきほど既に、Home Assitant画面にアクセスしてますが、固定IP化したアドレスhttp://<Raspberry PiのIPアドレス>:8123 でHome Assistantの画面を開く。何も設定していないので、さみしい画面が表示されるはずです。

f:id:maky_Ba:20190715165138p:plain
Hass.io初期画面

5. おわりに

 ここまででRaspberry PiにHome Assistantを導入出来ました。まあこれだけだと何もできない(天気がわかるぐらい)ので、これから順にスマートホームバイスをつないでいきます。
 入力側の環境センサーで気温とかを測りたいところですが、次は、まずはHome Assistantをとりあえず使えるように初期設定しましょう。

【Home Assistant(Hass.io)でホームオートメーション】

  1. RaspberryPiにHome Assistant導入 《今回》
  2. Home Assistant初期設定 《次回》
  3. 環境センサー(Omron)を接続
    1. 環境センサー(Omron)を接続 - 前編
    2. 環境センサー(Omron)を接続 - 中編
    3. 環境センサー(Omron)を接続 - 後編
  4. 汎用赤外線リモコンを接続
  5. スマートプラグを接続
  6. UIを改善

*1:ほらね、という訳ではないのですが、「マウスのスマートホーム販売終了、クラウドサービスは2022年まで - 家電 Watch」というニュースが。継続して売れ続けないとクラウドが維持されなくなっちゃう…