Raspberry Pi をスマートリモコン化 -その3-

赤外線学習リモコンボード RPi-IREX を使った Raspberry Pi のスマートリモコン化の第3弾です。

今回は、これまで紹介しきれなかった以下の内容について紹介します。

  • Homebridge の自動起動化
  • シーンの設定
  • 外出先からのコントロール
  • オートメーション

目次

Homebridge の自動起動化:

その2」ではコマンドラインから Homebridge を起動しましたが、今回は Raspberry Pi 起動時に Homebridge を自動起動する方法を紹介します。幾つか方法はありますが、ここでは /etc/init.d に起動スクリプトを用意する方法を紹介します。

root で raw template file を /etc/init.d/homebridge という名前で保存します。Homebridge 用にファイルの先頭部分を以下の内容で書き換えます。

#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/root"
cmd="DEBUG=* /usr/local/bin/homebridge"
user="root"

ファイルのパーミッションを変更してスクリプトをインストールします。

$ sudo chmod 755 /etc/init.d/homebridge 
$ sudo update-rc.d homebridge defaults

これで再起動時に Homebridge を起動することができます。

 

Raspberry Pi を再起動して、Homebridge が起動することを確認しましょう。

$ su /etc/init.d/homebridge status
Running

「Running」と表示されれば Homebridge が起動しています。

 

うまく起動しない場合は、/var/log/homebridge.err のエラーメッセージや、/var/log/homebridge.log のログを確認します。

 

なお、以下のコマンドで手動で Homebridge を起動することもできます。

$ sudo /etc/init.d/homebridge start

 

ホームアプリケーションのシーンの設定:

その2」では、 「Hey Siri, テレビつけて」では Siri は残念ながら認識せず、「Hey Siri, テレビオン」と話しかける必要がありました。では、「Hey Siri, テレビつけて」と話しかけてテレビをつけるにはどうすれば良いのでしょうか?

「テレビつけて」という名前でシーンを作成し、アクセサリに「テレビ」を追加します。スイッチは「オン」にします。(実際は、オンとオフの違いがないのでどちらでも構わないのですが。)

 

「テレビ消して」という名前でシーンを作成し、アクセサリに「テレビ」を追加します。スイッチは「オフ」にします。

 

これで、「 Hey Siri, テレビつけて」でテレビの電源をオンにすることができるようになります。同様に命令したい言葉でシーンを作成し、アクセサリを追加すれば、その言葉で命令を実行する(アクセサリを実行する)ことができます。Siri がうまく認識してくれない命令は、シーンで登録すると良いでしょう。

 

外出先からのコントロール:

その2」では iPhone を Wi-Fi で自宅ローカルネットワークに接続し、Homebridge を使って家電をコントロールしました。今回は、外出先から自宅の家電をコントロールする方法を示します。

なお、オンとオフが同じボタンの家電の場合、状態を確認することができませんので、外出先からオフにしたつもりが、オンになったりという危険がありますのでご注意ください。

 

Apple TV を使う:

HomeKit アクセサリをリモートからコントロールするには、Apple TV(第三世代)、Apple TV(第四世代おそらく第五世代も可)、iPad、HomePad(日本未発売)をホームハブとして設定する必要があります。

Apple TV を自宅のローカルネットワークに接続します。

  1. iPhone で、「設定」>「[ユーザ名]」>「iCloud」の順に選択し、iCloud キーチェーンを有効にします。
  2. Apple TV で、「設定」>「アカウント」の順に選択し、iPhoneと同じ Apple ID で iCloud にサインインします。
  3. iCloud にサインインしたら、Apple TV が自動的にホームハブとして設定されます。

 

 

うまくホームハブとして認識できなかったり、接続中にならなかった場合は、iPhone の電源を入れ直したり、Apple TV の電源を入れ直したり、Apple TV の iCloud アカウントを一旦ログアウトしてアカウントの再設定を行ってみてください。それで認識されるはずです。

ホームハブを設置することで、外出先からインターネット経由で自宅の家電をコントロールすることができます。

 

VPN を使う:

別の方法もあります。外出先から自宅のVPNサーバにiPhoneで接続することで、Homebridge をコントロールできます。この方法の場合、(ここでは具体的な方法は示しませんが)自宅でVPN サーバを稼働させる必要があります。

Apple TV は持っていなくても、VPN が利用できる場合にはこちらの方法で外出先からでも自宅のライトを消す等ができます。

 

オートメーション:

ホームハブを設定すると、ホームアプリケーションのオートメーション機能を利用することができるようになります。(ただし、 Apple TV(第三世代)はオートメーションに対応していません。)

オートメーションでは、家の状態変化に合わせてアクセサリを動作させることができます。例えば、家から出るとライトをオフにして、家に帰ってきたらライトをオンにするといったことを設定することができます。

 

「新規オートメーションを作成」を選びます。

「人が到着したとき」を選択します。

ここではそのまま「次へ」に進みます。

「ライト」を選択します。

これで「誰かが家に到着したとき」に「ライト」が「オン」するオートメーションの登録ができました。同様に「誰かが家を出発したとき」に「ライト」が「オフ」するオートメーションを登録します。

 

これで、家から出るとライトがオフになり、家に帰って来るとライトがオンになります。(もちろん、iPhone を持って移動しないと反応しませんのでそのつもりで。)

他にもある時間になるとスイッチをオンにするとか、オフにするといったこともオートメーションで設定できます。より詳しくは「ホーム App でホームオートメーションを作成する」をご覧ください。

 

おまけ:

ここまで、Raspberry Pi + RPi-IREX でのスマートリモコン化を紹介しましたが、RS-WFIREX4 を使えば Raspberry Pi なしでこれまで紹介した以上のことが簡単にできます。

しかし、RPi-IREX は、Raspberry Pi に接続しプログラミングをおこなうことで赤外線学習リモコン機能を追加することのできる拡張キットです。ものづくりの技術を楽しみながら学ぶことができるのが魅力です。これまで紹介したスマートリモコン化では、RPi-IREX のほんの一部の機能しか使っていませんので、機会があれば色々な目的に使っていきたいと思います。

参考)

 

 

関連記事: