YUUlog

ゲーム・IT・ガジェット

スポンサーリンク

OK Google 一狩りいこうぜ (GoogleHome IFTTT Webhook PS4-waker MHW)

最初にまとめ

・『OK Google 一狩りいこうぜ』 で PS4とMHWが起動するようにした

・GoogleAssistanceからIFTTTを経由して自宅鯖へhttpリクエスト PS4-wakerでPS4へPS4の起動とソフトウェアの起動のリクエストを送っている

・IFTTTでタイトルコードを変更すれば他のゲームも起動できる

f:id:YUU8o:20190727001837p:plain

OK Google 一狩りいこうぜ

ベースとなるwebhookでPOSTリクエストを送る仕掛けは以前に記事に書いたものと同じものを使っています。

yuu8o.hateblo.jp

 

PS4-wakerはnpmでインストールできます。オプションなどもわかりやすくなっているので、一度説明に目を通すと良いと思います。

www.npmjs.com

Playstation Appとの接続や、タイトルIDの調べ方など、下記が非常に参考になりました。

Google Homeに話しかけてPS4を操作してみる - Qiita

 

IFTTTのレシピ

WOLでPCを起動するものとあまり内容は変わらないのですが、正規のリクエストであることを確認するチェック用のdata1の引数とdata2にPS4-wakerのタイトル指定起動オプションにあたる「 start CUSA06027」を与えています。CUSA0627は MHWのタイトルコードになります。ここを変更することで別タイトルのゲームも起動できます。

f:id:YUU8o:20190727002419p:plain

IFTTTのレシピ

 受け側のコード

data1 は正規のリクエストかをチェックするのに使っています。

まず、シェルで実行するPS4-wakerのコマンドを組み立てています。-bのオプションはPS4-wakerの通信を実行するサーバー側のNICを指定、-dでPS4側のIPを指定しています。-pでサーバー側で利用するポートの指定です。

data2にstart <titleID>を入れて渡していますが、別のIFTTTのレシピでPS4の起動のみを行うケースがあり、その場合はdata2の引数を入れていないので、data2の存在をチェックして、data2がある場合は実行コマンドにタイトルを指定する『start <titleid>』を追記しています。

コマンドの組み立てが終わったら、トークンをチェックして、間違いがなければ、コマンドを実行しています。

<?php
$request = $_POST['data1'];
$cmd = 'sudo ps4-waker -b X.X.X.X -d Y.Y.Y.Y -p 987';
if(!empty($_POST['data2'])){
       $cmd .= $_POST['data2'];
}
if(strcmp($request,"token") == 0){
   $output =  shell_exec($cmd);
}
else{
   http_response_code(403);
}
?>

まとめ 

Google Asssistant+IFTTTはいろんなことが手軽にできるので楽しいですね。NatureRemoなんかもおすすめです。NatureRemoでもそのうち記事を書こうと思います。