目 次

前回までは、主にVolumioの再生までがメインでしたが、今回は、いよいよAlexa君にVolumioを操作させる設定に入ります。
過去ログとして記載しているので多少、違う部分があるかもしれません。
楽曲料を無料にする道のりはなんて険しいのだろう・・・・
と、フケリながら作業を進めていきます。
この設定を行うと、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から作るスキルに凄さしかありません(感謝!