Alexaにゲーミングマシンと周辺環境を終了してもらう
Alexaにゲーミングマシンと周辺環境を起動してもらうで課題に挙げていた「Alexa Steamを終了して」でゲーミングマシンと周辺環境を終了させるのを対応した。
やったこととしてはRaspberryPiからsshでゲーミングマシンにアクセスできるようにして、shutdownコマンドを実行するようにした。
ssh {user}@{windows_host} shutdown -s -t 0
sshの設定方法については以前、Windows10 Homeでsshdを実行するにまとめている。
ここでは今回対応した、alexaから呼ばれるapiのコードを載せておく。
const express = require('express')
const exec = require('child_process').exec
const app = express()
app.get(`/${TOKEN}/steam_off`, (req, res) => {
console.log('windows shutdown')
exec('ssh {user}@{windows_host} shutdown -s -t 0')
console.log('soundbar off')
exec('curl -i -s -X POST "http://{irkit_host}/messages" -H "X-Requested-With: curl" -d \'{"format":"raw","freq":xx,"data":[xxx]}\'')
setTimeout(() => {
console.log('tv off')
exec('curl -i -s -X POST "http://{irkit_host}/messages" -H "X-Requested-With: curl" -d \'{"format":"raw","freq":xxx,"data":[xxx]}\'')
}, 8000);
res.send('ok')
})
これでゲーミングマシンの起動と終了を音声のみで操作できるようになった。