DiskStationを使って寝る時間になったらGoogle Homeから音楽を流す
Google Homeでお家ハックをしたいが、ラズパイ買うほどじゃないなーということで、DiskStationを使って遊ぶ(どうせ1ヶ月したらラズパイ買ってそうだけど)
最近朝が早いので、7.5時間睡眠確保のために22時位には寝る準備をしないといけない。 ということで、22時になったら音楽を流してお布団への移動を促す
準備
- Diskstaionにsshで入れるようにしておく
- DiskStationにNode.js v8を入れる
- DiskStationのパッケージマネージャから、Node.js v8をインストールする
- DiskStationにWeb Stationを入れる
流す音楽をWebサーバーで公開する
今回はドヴォルザークの交響曲第9番ホ短調「新世界より」 Op.95 B.178を流す。「遠き山に日は落ちて」で有名である。*1
著作権切れ音楽なので下のサイトでダウンロードできる。ここではとりあえず一番上のカラヤンのやつを使う*2
ドヴォルザーク 交響曲第9番ホ短調「新世界より」 Op.95 B.178 - クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
「遠き山に日は落ちて」のメロディは02.mp3
の部分。適当にFromTheNewWorld-Largo.mp3
とかに名前を変えてwebディレクトリに入れておく。
google-home-notifierを入れる
ネットに大量にある記事を参考にNASにgoogle-home-notifierを入れようとしたら詰まった。どうもDiskStationにはmakeコマンドがないのでgoogle-home-notifierが依存しているmdnsモジュールがインストール出来ないらしい。
なので、下の記事を参考にmdns-jsを使ったgoogle-home-notifierを入れる
音楽再生スクリプトを書く
google-home-notifier.js
の編集ができたら、音楽を鳴らすスクリプトを書く。
// main.js const googlehome = require('../google-home-notifier'); const language = 'ja'; googlehome.device('Google-Home', language); googlehome.play('http://192.168.0.5/music/FromTheNewWorld-Largo.mp3', function (res) { console.log(res); });
音楽ファイルのurlのIPアドレス部分は適切に変更すること。 加えて、DiskStationで実行するためのshell scriptを作る
# trigger.sh cd `dirname $0` node main.js
作ったら、適当にディレクトリに入れる。 今回は下のようなディレクトリ構成にしている
- google_home
最後に、sshでDiskStationに繋いでtrigger.sh
に実行権限を付与しておく
ssh aoiro.hn@192.168.0.5 cd google_home/sleep_inducer chmod 775 trigger.sh
DiskStationで繰り返しタスクを設定
DiskStationのコントロールパネル→タスクスケジューラーから繰り返しタスクを設定する
- [全般]タブのユーザを自分にする
- [スケジュール]タブで流したい時間を設定
- [タスク設定]のユーザ指定のスクリプト欄に、
trigger.sh
のパスを絶対パスで指定する/var/services/homes/aoiro.hn/google_home/sleep_inducer/trigger.sh
完成!
そこそこ高性能なNASがあればラズパイ使わなくてもある程度Google Homeで遊べる。 とは言えAmazon Dash Buttonで遊びたいと思っているのでそのうちラズパイ買う。