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

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

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

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

「Alexa Steamを終了して」ができるようになった

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

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

RaspberryPi用の赤外線送受信リモコンを作る

夏休みの電子工作

Amazon純正スマートプラグ

Raspberry Pi4の緊急対応用に購入