AlexaにPS4を起動してもらう

公開日時
更新日時

先日の記事で任意のデバイスに対して「Alexa、〇〇をつけて(消して)」ができるようになったので、PS4にも対応させることにした。

PS4の起動に関しては以前、Keybow Kitのショートカットとして作っていたのでこれを応用。

ps4-wakerのREADMEにcliではなくjsから利用する方法があったので、下記のように実装した。

const express = require('express')
const { Device } = require('ps4-waker');
const app = express()
const TOKEN = process.env.API_TOKEN

app.get(`/${TOKEN}/irkit_ps4_on`, (req, res) => {
  console.log('ps4 on')
  const ps4 = new Device()
  ps4.turnOn().then(() => ps4.close())
  // ps4.startTitle('CUSA08444').then(() => ps4.close()) // IDを指定して特定のタイトルを起動する場合
  ps4.close();
  res.send('ok')
})

app.get(`/${TOKEN}/irkit_ps4_off`, (req, res) => {
  console.log('ps4 off')
  const ps4 = new Device()
  ps4.turnOff().then(() => ps4.close())
  res.send('ok')
})

app.listen(3000, () => console.log('app listening on port 3000!'))

最初、async/awaitで処理を待つようにしていたが、Lambdaの応答を8秒以内に返さないとAlexa側でtimeoutになるため先にレスポンスだけ返すようにした。

あとはLambdaのDiscoveryにPS4を設定して、Alexaアプリでデバイスの検出をすれば「Alexa、PS4をつけて(消して)」ができるようになる。

参考


Related #iot

MH-Z19でCO2濃度をリアルタイム計測してMackerelでアラート通知する

換気すべきタイミングにアラートが飛ぶようになった

Echo Dot 2台をステレオペアとして設定する

BGM再生端末としてちょうど良い

YAS-109でAlexaを使う

本体のマイクの無効化を解除する必要があった

Alexaにゲーミングマシンと周辺環境を起動してもらう

PC起動、TV起動、サウンドバー起動がまとめてできるようになった

MH-Z19にピンヘッダを取り付けてはんだ付け

いつの間にかワイヤが外れていたのでピンヘッダを付けた

FireTVのスリープ時間を1分に変更する

開発者モードを有効にしてabdコマンドで設定する必要があった