VolumioミュージックサーバをAlexaと連携する

前回までは、主にVolumioの再生までがメインでしたが、今回は、いよいよAlexa君にVolumioを操作させる設定に入ります。

過去ログとして記載しているので多少、違う部分があるかもしれません。

追記2023年2月に新しい記事を上げました。

楽曲料を無料にする道のりはなんて険しいのだろう・・・・

と、フケリながら作業を進めていきます。

この設定を行うと、WebGUIの画面を出さずともAlexaに話かけるだけで再生、停止ができるようになります。

Node-REDをインストールする

Node-REDとは、APIやオンラインサービス、デバイスなどの機能を繋げてアプリケーションを作成していくプラットフォーム
処理フローをブラウザの操作によって作成することができるオープンソースソフトウェアで、Node.jsが動く環境なら何処でも動かせる

もうちょっと簡単に言うとTwitterで何かつぶやいたらLED光らせるとか、スイッチ押したらメールを送信するようなことがドラッグ&ドロップと多少のコードだけで簡単に実現できるものです。

さて、TeraTermで入って作業に移ります。

Curlでダウンロードしてインストールします。

volumio@volumio:~$ sudo su
volumio@volumio:~$ bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)


[y/N]の所はすべて「y」を選択する。


http://[your_pi_ip-address]:1880 が表示されてインストールが完了したらNore-Redを起動します。


自動起動を有効にする設定を記述します。

root@volumio:~$ sudo systemctl enable nodered.service


Node-Redを起動します。

root@volumio:~$ node-red-start

Node-RED Alexa Home Skill Bridgeでアカウントを作成する

Node-RED Alexa Home Skill Bridge

https://alexa-node-red.bm.hardill.me.uk/

「Register」でアカウントを作成する。


必要箇所に記入後、「Register」を選択します。


「Add Device」を選択してデバイスを登録します。

Name:メディアサーバー <–これがAlexaから呼び出す名前になります。

              ちなみに、「ミュージックサーバー」は先約が

              あるので使えません。

Description:説明を入れます。

On、Off:チェックを入れる。

%+、%-:チェックを入れる。

「OK」を選択して登録します。


登録された状態です。

AlexaアプリにNode-REDを入れる。

スマホのAmazon Alexaへ入ります。


左上の線3つの所を選択し「スキル・ゲーム」を選択します。


「検索」でNode-REDを検索します。


上側にNode-REDが見つかったので、それを選択します。


Node-REDを有効にします。

「有効にする」を選択します。


上記、Node-RED Alexa Home Skill Bridgeのホームページで作成したアカウントのユーザ名及びパスワードを入れます。


上記アカウントでデバイスが認識できるようになります。

Node-RED Alexa Home Skill Bridgeで作成したNameつまり、「メディアサーバー」が追加されます。

Node-REDのフロチャート作成

作業用PCのブラウザでNode-REDのフロチャートページを開きます。

http://192.168.*.*:1880 <– VolumioのIP


左側にalexaの項目がない場合は、右上の線3本から「パレットの管理」で追加します。


「ノードを追加」タブを選択して検索窓に「alexa」と入れると検索されます。

「node-red-contrib-alexa-home-skill」の「ノードを追加」を選択します。


「現在のノード」に「node-red-contrib-alexa-home-skill」が追加されます。

すると、メッセージダイヤログがでてメイン画面右側の項目に「alexa」が追加されます。

ノードを配置する

方眼紙画面の左から配置しましょう!

「alexa」の欄から「alexa home」(配置後灰色)を左側からドラックアンドドロップで方眼紙画面に配置します。

「機能」の欄から「switch」(黄土色)を適当な箇所に配置します。

「その他」の欄から「exec」(ピンク)を適当な箇所に配置します。

「出力」の欄から「debug」(緑色)を適当な箇所に配置します。

それぞれのパーツに〇があるのでクリックして次のパーツにマウスで線を繋ぎます。

下写真のようにすべて繋ぎます。

「switch」から「exec」と「exec」から「msg-payload」は4つの上から順番に線を引いてってください。

プロパティの設定

配置した「Alexa Home」をダブルクリックすると「プロパティ」がでるので「Account」をNode-RED Alexa Home Skill Bridgeで作成したユーザ名で「Device」を「メディアサーバー」にし「更新」後に「完了」を選択します。

 ※動作後の図を使っているので実際の作成途中と違います。


「switch」をダブルクリックします。

「名前」を「再生メニュー」

「is true」→1

「is false」→2

「==」「25」→3

「==」「-25」→4

「完了」を選択します。


一番上のから順番に下へ設定していきます。

「exec」をダブルクリックします。

一番上のから順番に下へ設定していきます。

1番目 コマンド「bach -c “mpc play”」 名前「再生」

2番目 コマンド「bach -c “mpc pause”」 名前「停止」

3番目 コマンド「bach -c “mpc volume +5″」 名前「音量+」

4番目 コマンド「bach -c “mpc volume -5″」 名前「音量-」

execの4つの設定をします。

参考記事にもありましたが、mpc stopでなくpauseでないと正しく停止できませんでした。stopにすると次の曲に行きます。

volumeは操作ができませんでした。pHAT DACでボリューム変更ができない設定にしているので動いていると思いますが・・・確認してないです。


コマンドでも動作確認してみました。ここは設定ではないので飛ばしてください。

 

「msg-payload」はデバッグウインドで結果を表示するためのものなので、そのままでOKです。

処理を実行するとデプロイ下に「デバック」項目タブがあり、そこに処理が表示されます。

Connectする

「デプロイ」から「全て」を選択します。


「メディアサーバー」下の「connected」が表示されていればアクティブな状態です。

成功です。

Alexaから音声操作

メディアサーバーの動作はONとOFFなのでAmazon Alexaアプリから定型アクションを入れました。この定型アクション、無くてもいいかも・・・知れません


「アレクサ、メディアサーバーをつけて」・・・Volumioの音楽が途中から始まります。

音楽が途中から始まるのはご愛敬で、一応、音声制御はできています。

「アレクサ、メディアサーバーをけして」・・・Volumioの音楽が停止します。

オフに出来ている分けではありません(汗

 

これらのホームページを参考にしました。

これらの方は何もない所から1から作るスキルに凄さしかありません(感謝!

独身貴族のスマートホーム -Alexaからローカルの音楽を再生する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です