Node-REDを用いてRaspberry PiとAmazon Alexaを連携させる方法
公開日:2018/03/07
今回は、Node-REDを用いてRaspberry PiとAmazon Alexaを連携させる方法をご紹介します。これらを連携させることで、「スマートホームスキル」で様々な指示を出すことができます*1。また、Raspberry Piを経由させますので、Amazon Alexaに特定のプログラムのトリガーをかけさせるなど、様々な動作ができるようになります。
Raspberry PiとAmazon Alexaの連携
環境
Rasperry Pi:Raspberry Pi 3 model B(Raspbian Jessie)
母艦PC:Macbook Air macOS Sierra
その他:Raspberry PiにはSSH、VNC導入済み
Raspberry Piの初期設定はこちらから
Raspberry PiにNode REDを導入
Raspberry PiとAmazon Alexaの連携にはNode-REDを使用します。Node-REDは2015年11月以降のRasspbian Jessieのフルイメージにはプリインストールされています。私は先日Raspberry Piを購入してRaspbianをインストールしたばかりですので、今回はプリインストールされている前提で勧めます。まずは下記のコマンドを実行しNode-REDをアップデートします。
コマンドを実行したらアップデートするか聞いてくるので「y」で進めてください。進めると次のような画面が表示され、暫く待つとアップデートが完了します。
もし、2015年11月以前のRaspbianや、フルイメージではない場合、Raspberry PiへのNode-REDのインストールには下記のサイトを参考にするとよいです。
Node-RED日本ユーザ会 : Running on Raspberry Pi
undefined
インストールができたら下記のコマンドをでNode-REDを起動します。
これでNode-REDが動き出します。Raspberry Piと同一のネットワークにあるPCのブラウザから「http://Raspberry Piのローカルアドレス:1880」にアクセスします。
このような画面が表示されればOKです。
Alexa Home Skill Bridgeに登録
次にAlexa Home Skill Bridgeに登録を行います。Alexa Home Skill Bridgeは文字通りNode-REDとAlexa Home Skillの架け橋となるサービスです。まずは下記のページにアクセスします。
Node-RED Alexa Home Skill Bridge
undefined
まずはResisterを選択します。
次にUsername、Email、Passwordを入力します。ここで入力した値は後でAmazon Alexaアプリで使いますので覚えておいてください。入力できたらResisterをクリックしてください。
登録できたらDevicesでデバイスを登録します。Devicesを開き、Add Deviceをクリックします。
ポップアップされた画面を埋めていきます。
- Name:Alexaに指示する時のデバイス名
- Deispciption:動作の説明(なんでもいいです)
- Actions:どういったアクションをさせるか(On/Off/温度設定/照明の色設定等)
ここでは例としてテレビのOn/Offを行えるようにするという前提で進めていきます。 上のように入力できたら「OK」を押し、デバイスの登録を完了します。
Alexaにスキルをインストール
次にAlexaにNode-REDのスキルをインストールします。Amazon Alexaアプリを開き、メニューからスキルを選択します。
検索から「node-red」を検索し、スキルを有効にします。有効にしたらアカウント認証を求められますので先程作成したアカウントを入力します。アカウントがリンクできたらスマートホームデバイスをAlexaに探してもらいます。
「設定 > スマートホーム > デバイスを追加」とたどるか、Alexaに「Alexa、スマートホームデバイスを探して」とお願いします。しばらくすると先程作成した「テレビ」がスマートホームに追加されるはずです。これでAlexa側の準備は完了です。
Raspberry PiのNode-REDにAlexa Home Skill Bridgeを導入
さて、Raspberry PiとAmazon Alexaを連携させる肝となる、Node-RED Alexa Home Skill Bridgeを導入します。これを導入することで、AlexaとNode-REDを連携させることができるようになります。
まずはRaspberry Piで起動しているNode-REDにアクセスし、右のハンバーガーメニューからパレットの管理を選択します。
「ノードを追加」タブに移動し、「node-red-contrib-alexa-home-skill」を検索します。ヒットしたノードを追加します。すると左に並んでいるノードに「alexa」が追加されます。
追加されたノードの中から、「Alexa Home」をフローにドラッグ・アンド・ドロップします。フローに配置した「Alexa Home」ノードをダブルクリックしてノード編集画面を出し、Accountの編集マークをクリックします。
アカウント入力画面が出ますので先程作成したアカウントを入力します。完了したら「追加」を選択します。
うまく連携できていればAccountにアカウント名が表示されます。Deviceの更新マークをクリックして先程作成した「テレビ」が出てくればOKです。ここまでできたらテストしてみましょう。
ノードにデバッグがあるのでそれと「Alexa Home」をつなぎ、デプロイします。デプロイが完了したらデバッグタブを開き、Alexaに下記の通り指示してみてください。
- 「Alexa、テレビつけて」
- 「Alexa、テレビ消して」
うまくいっていれば画像のように「つけて」のタイミングで「True」が、「消して」のタイミングで「False」が表示されます。
まとめ
さて、今回はRaspberry Piを用いてNode-REDとAlexaを連携させました。中々ややこしい手順ですが地道にこなしていけば無理なくたどり着けると思います。今回はデバッグノードを使って動作の確認しかしていませんが、ここにシェルスクリプトなどを仕込めばかなりのことがAlexa経由で可能となります。
- アーティスト: ゆず,北川悠仁,岩沢厚治,松任谷正隆
- 出版社/メーカー: SENHA&Co.
- 発売日: 2004/07/22
- メディア: CD
- 購入: 3人 クリック: 342回
- この商品を含むブログ (77件) を見る