自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう② - Alexa用モジュール追加

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。

前回

前回はNode-REDのインストールと認証設定までを行いました。

codelife.cafe

今回はAlexaを喋らせるためのモジュール「node-red-contrib-alexa-remote2」をインストール、設定、喋らせてみるところまでを進めていきます。

Node-REDの管理画面にログイン

Raspberry PiのIPアドレスのポート1880番(例 192.168.1.100:1880)にアクセスして前回設定したID/Passwordでログインする。 f:id:maru0014:20200922021650p:plain

もしログイン画面が表示されない、ID/Passwordを入力してもログイン出来ない場合はNode-REDが再起動出来ていないか、settings.jsの記述が間違っている可能性がありますので確認しましょう。

パレットの管理メニューからモジュールを追加

右上のハンバーガーメニューから「パレットの管理」を開く

f:id:maru0014:20200922215210p:plain


パレット>ノードを追加>node-red-contrib-alexa-remoteを検索し、ノードを追加ボタンをクリック。 モジュールのダウンロード・インストールがバックグラウンドで実行される。(ちょっと時間がかかるかも)

f:id:maru0014:20200922215433p:plain


インストールが完了したら左側のメニューにAlexa関連のノードが追加されている f:id:maru0014:20200922215901p:plain

Alexaに紐付けたAmazonアカウントの設定

まずは認証用のCookieを確認するためhttps://alexa.amazon.co.jp/ にアクセスしてログイン。 F12キーにてブラウザのデベロッパーツールを起動し、適当な音楽またはKindle本などをAlexaデバイスで再生する。 デベロッパーツールのNetworkタブに移動して「player」で検索しRequest Headersのcookie(x-amzn-dat-gui~~)をコピーしておく。 f:id:maru0014:20200922221432p:plain


Alexa Routineノードをフローに追加しダブルクリックで設定画面を開く→Accountの右側にある編集アイコンをクリック f:id:maru0014:20200922220336p:plain


各種設定を入力して追加しアカウント設定は完了

項目
Auth Method Cookie
Cookie 先程コピーした文字列を貼り付け
Service Host alexa.amazon.co.jp
Page amazon.co.jp
Language ja_JP

f:id:maru0014:20200922220732p:plain

Alexaを喋らせてみる

実行トリガーとして「inject」ノードを追加して「Routine Speak」に接続 f:id:maru0014:20200922222312p:plain


画像のようにmsg.payloadに文字列として「テストメッセージ」と入力して完了 f:id:maru0014:20200922222349p:plain


次に「Routine Speak」の方の設定は以下のようにして完了

項目
Account 追加したAmazonアカウントを選択
Text msg.payload
Devices 登録デバイスが表示されるので喋らせたい端末または「全部の部屋」を選択

f:id:maru0014:20200922222025p:plain


各種ノードの設定変更を反映させるため画面右上の「デプロイ」をクリック f:id:maru0014:20200922222725p:plain


上手く行っていれば「Routine Speak」の下にreadyと表示されているはず。

「inject」左のボタンをクリックすると実行されてAlexaが「テストメッセージ」と喋ってくれれば実験成功です。 f:id:maru0014:20200922222837p:plain


次回はSlackからチャットの内容を送信させるためにSlack Botを作成していきます。

codelife.cafe