• 記事をシェア
  •  
  •  
  •  
  • B! 
  •  

ラズパイ(Raspberry Pi)でパソコンをリモート起動 HomeBridge-WOLの使い方

iPhone
Linuxマシン等を(ホーム)アプリのアクセサリにしてしまう HomeBridge を使えば、 iPhoneを使って家電などをコントロールすることができます。 ここでは、超小型コンピューター:Raspberry Pi(ラズベリーパイ)とHomeBridge用プラグイン“homebridge-wol”を使って、 パソコンやNAS、DVDレコーダーをiPhoneからリモート起動してみます。
homebridge-wolとは、Wake on LAN(WOL)に対応したデバイスに対してマジック・パケットを送信して、リモート起動させることができるプラグインです。 デバイスのIPアドレスが固定されているなら、定期的にpingを打って稼働状態を確認することもできます。 また、SSH接続ができ、シャットダウンのためのコマンドが打てるデバイスに対しては、リモートシャットダウンも可能です。
なお、ここでは前提として、すでにHomeBridgeが動作しているRaspberry Piが準備されているものとします。 Raspberry PiにHomeBridgeをインストールする方法については、 ラズパイ(Raspberry Pi)で家電をコントロールする HomeBridgeの使い方 をご覧ください。

必要なもの

PC すでにHomeBridgeが動作しているRaspberry Piが準備されているなら、あとは何も必要ありません。 HomeBridge用プラグイン“homebridge-wol”をインストールするだけで、パソコンをリモート起動することができます。
Raspberry PiにHomeBridgeをインストールする方法については ラズパイ(Raspberry Pi)で家電をコントロールする HomeBridgeの使い方 をご覧ください。

プラグイン“homebridge-wol”のインストール

HomeBridgeに新たにプラグインをインストールするのに、サービスを停止するなどの事前準備は不要です。 動作中のHomeBridgeをそのままに、インストールコマンドを入力するだけでOK。 その後HomeBridgeサーバー(ラズパイ)を再起動すれば、新しいプラグインも組み込まれた状態で動作します。
homebridge-wolのインストールは、コンソールから sudo npm install -g homebridge-wol と入力するだけです。

リモート起動するデバイスを定義する

プラグイン“homebridge-wol”でリモート起動するデバイスは、HomeBridgeの設定ファイルである config.json に記述します。

config.jsonの場所を確認する


config.jsonの場所は、HomeBridgeのインストール方法によって変わります。 通常以下のいずれかに格納されています。
  • /root/.homebridge/config.json
  • /home/[username]/.homebridge/config.json
  • /var/homebridge/config.json
  • /var/lib/homebridge/config.json
複数の場所に見つかったときは、そのうちどれか一つが実際に使用されているものです。 appleinsiderの配布しているOSイメージを使って監視カメラを構築 した場合の格納場所は「/var/homebridge/config.json」です。
systemdを使った自動起動を設定しているときは、 通常インストールされる”/home/[username]/.homebridge”フォルダは systemdのようなサービスには不適切であるため、 /var/lib/homebridge や /opt/node/lib/node_modules/homebridge などに設定されていると思います。

config.jsonにデバイスを定義する


viエディタなどでconfig.jsonを開き、デバイス定義を記述します。 config.jsonの中にすでに“accessories”セクションがあればそこに追加、ない場合は“accessories”セクションを書き加えます。 新規に“accessories”セクションを書き加えたときは、その前のセクションの終わりに“,”を付けるのを忘れないようにします。
“accessories”セクションのカギカッコの中に、デバイス1つにつき1セット、中カッコで囲って“accessory”セクションを記述します。 複数のデバイスを登録するときには、“accessory”セクションを並べます。このとき中カッコの後ろにも“,”を付けるのを忘れないようにします。

デバイスの定義の記述方法


homebridge-wol Options
キーワード 必須 意味
accessory 「NetworkDevice」固定
name 機器の名前を任意の文字列で指定する。ホームアプリおよびSiriで使用される。"My Windows PC"とか。
mac 機器のMACアドレス。マジックパケットの送信先。Wake on LAN(WOL)起動させるときは必須。 書き方は「XX:XX:XX:XX:XX:XX」または「XXXXXXXXXXXX」
ip 機器のIPv4 IPアドレス。pingの送信先。ホームアプリに起動状況を表示させるときは必須。(対象機器のIPアドレスを固定する必要がある)
pingInterval IPアドレス指定時の、ping送信間隔(秒数)。規定値は2(25)秒。
wakeGraceTime 対象機器の起動後に、起動確認のpingを送信し、キーワード wakeCommand で定義したコマンドを発行するまでの待ち時間(秒数)。規定値は45秒。
wakeCommand 対象機器の起動後に、HomeBridgeサーバー(ラズパイ)に実行させたいコマンド。 Macパソコンではスリープに入れないため、ここで“caffeinate”を指定すると良い。
shutdownGraceTime キーワード shutdownCommand で定義したコマンド実行後、終了確認のpingを送信するまでの待ち時間(秒数)。規定値は15秒。
shutdownCommand 対象機器を終了させるために、HomeBridgeサーバー(ラズパイ)で実行するコマンド。
pingCommand pingの代わりに実行させる、対象機器の起動/終了確認用コマンド。
log ステータスメッセージをログするか否か。規定値はtrue。
logPinger pingメッセージをログするか否か。規定値はfalse。
timeout pingの終了待ちタイムアウト時間(秒)。規定値は1。
broadcastAddress WOLマジックパケットの送信先アドレス。
accessoryとname以外は必須ではありませんが、 macとipのどちらかは指定する必要があります。 リモート起動させるにはmacの指定が必須です。 また、起動状況をホームアプリに表示させるには、ipの指定が必須です。
詳しい記述例については、以下の各サイトで読めます。 Windowsパソコン、Macパソコン、Raspberry piマシンなどについて、起動/シャットダウンのための設定の記述方法が読めます。

ラズパイ起動時にHomeBridgeも自動起動する

これについては ラズパイ(Raspberry Pi)で家電をコントロールする HomeBridgeの使い方 の中の 「ラズパイ起動時にHomeBridgeも自動起動する」 をご覧ください。

homebridgeにPACKET送信の許可を与える

プラグイン“homebridge-wol”を使う場合は、 HomeBridgeサービスにPACKET送信の許可を与えておきます。
これについては ラズパイ(Raspberry Pi)で家電をコントロールする HomeBridgeの使い方 の中の 「homebridgeにPACKET送信の許可を与える」 をご覧ください。

HomeBridgeサーバー(ラズパイ)を再起動する

インストール、設定が終わったら、 sudo shutdown -r now でラズパイを再起動し、HomeBridgeが正しく動作しているか確認しましょう。
動作状況を確認する方法については ラズパイ(Raspberry Pi)で家電をコントロールする HomeBridgeの使い方 の中の 「HomeBridgeの動作状況を確認する」 をご覧ください。

デバイスをリモート起動する

iPhone
すべての準備が整ったら、iPod/iPad/iPhoneで (ホーム)アプリ を開きます。 するとこのようにhomebridge-wolに登録した「NetworkDevice」ひとつひとつがスイッチとして表示されています。 ここではNAS 3台、パソコン 2台、DVDレコーダー 1台を登録しました。
それぞれのスイッチをタップすると、すぐさまWOLマジックパケットが送出され、デバイスが起動します。 IPアドレスを固定しているデバイスでは、電源のON/OFF状況も確認できます。
なお、WOLマジックパケットでデバイスをリモート起動させるには、デバイス側にも設定が必要な場合があります。 パソコンの設定方法については Wake on LAN(WOL)を設定してパソコンをリモート起動する方法 をご覧ください。