概要とVolumioについて
- GoogleHomeで音楽聞くのはいいけど,無料だとspotifyしかないし,CDや他のストアで買った音楽が聞けない
- また,お気に入り(自作)のスピーカーで聞きたいけどBluetooth機能なんてない
- PCをスピーカーにつなげるのでもいいけど...
そんなときは,ラズパイにVolumioを入れるのがおすすめです
https://volumio.org/
Volumioには色々な機能があり,AirPlayに対応していたり,自宅nasにある音楽ファイルを再生できたり,プラグインを追加するとyoutube(音だけですが)が聞けたりします
そして今回はそのVolumioをGoogleHomeで操作してみようということです
Volumioには,元からAPIがwebsocketやRESTなどで公開されています
今回はそのRESTの方を使います
ngrokについて
https://ngrok.com/
https://qiita.com/mininobu/items/b45dbc70faedf30f484e
自宅のラズパイなどを外からアクセスできるようにしてくれるすごいやつ
GoogleHomeとラズパイの連携にfirebaseを用いるのをよく見かけますが,今回はRESTということで,もっと単純にできるかもっということで利用してみます
アプリケーション構成
googleHome -> ifttt,webhook -> ngrok,raspberryPi(volumio REST API)
ngrokの設定
ngrokは有料版もあるのですが,今回は全部無料で
- https://ngrok.com/ にログイン
- Linux (ARM) をダウンロード
- ダウンロードしたものを解凍し,ラズパイに移す(ftpやusbメモリを利用してなど)
- /usr/local/binにファイルを移動(mvコマンドなどで)
- さっきログインした画面の3番目のコマンドを実行(ngrok authtoken 〜)
- nohup ngrok http 3000 & を実行(volumioのplayback画面がポート番号が3000のため)
- curl localhost:4040/status | grep ngrok.io を実行
- 出力されたログの中のURLを控えておく(http://〇〇.ngrok.io)
iftttの設定
- https://ifttt.com/ にログイン
- google asisstantで例えば「ラズパイで再生」といったら(volumioの単語は認識が悪かったでした)
- webhookで
- URL:さっき控えたurl + /api/v1/commands/?cmd=play
- Method : GET
- Content Type: application/x-www-form-urlencoded(関係なし)
- Body : 空
# 実行!!
これで一旦Volumioにキューを追加しておいて,
GoogleHomeに向かって「ok google! ラズパイで再生」で再生されるはずです
もしVolumioを再起動などさせた場合URLが変わってしまうので[ngrok]項目の6,7と[ifttt]の3のurlの変更をしてもらえればと思います
ngrok有料版だと控えたURLのサブドメインの部分を指定できるっぽいので,楽ですね
その他,参考サイト
https://volumio.github.io/docs/API/REST_API.html
http://netbuffalo.doorblog.jp/archives/4974284.html
https://hakengineer.xyz/2017/11/15/post-629/