前置き
こんちには!
エンジニアのまるさんかくです。
今回はアレクサからRaspberryPiに指示をするための初期設定とテンプレートを記載します。
RaspberryPiをスマートホーム家電として動作させたり、RaspberryPiを中継ハブとして他のデバイスを動作させたりするための第一歩として当記事が参考になればと思います。
内容
アレクサに対し特定の音声で指示することで、RaspberryPi上のシェルスクリプトを動作できるようにする
※アレクサアプリから直接シェルスクリプトを実行させることも可能
用意するもの
- アレクサ対応デバイス(スマートフォンでも可)
- Raspberry Pi
- ホストPC
- スマートフォン
構成
アレクサ→NodeREDスキル→NodeRED Alexa Home Skill Bridge → RaspberryPi
用語説明
NodeREDとは
処理や分岐等を表すノードを線でつなぎ、ハードウェアやAPI、オンラインサービスを制御するためのツールです。
Node-REDはハードウェアデバイス、APIおよびオンラインサービスを新しく興味深い方法で接続するためのツールです。
Node-RED日本ユーザー会から引用
NodeRED Alexa Home Skill Bridgeとは
NodeREDとAlexa Home Skillを連携するためのNodeREDモジュールです。
このサイトは、node-red-contrib-alexa-home-skill Node-REDモジュールを使用するための登録ポイントです 。
このノードとサービスを使用すると、Amazon Echo のホーム スキル システムと連携する独自の「デバイス」を作成でき、Node-RED と接続できる基本的にすべてのものを音声制御できるようになります。
NodeRED Alexa Home Skill Bridge HPから引用
初期設定
Node-RED Alexa Home Skill Bridgeの登録・設定
この手順は Raspberry Pi/ホストPC/スマートフォンいずれかで実行
- アカウント登録
- サイトにアクセス
https://alexa-node-red.bm.hardill.me.uk/ - アカウント登録
画面上部のRegisterをクリックし、アカウント登録
- サイトにアクセス
- デバイスの設定
- Devicesを開く
- Add Deviceを選択
- Name, Description, Actionsを記入しOK
- Name
デバイス名(記入必須) - Description
デバイスの説明(記入必須) - Actions
デバイスの動作内容
今回は音声をシェルスクリプト実行のトリガにするだけのため、OnのみでOK
詳しく知りたい方は下記参照
https://alexa-node-red.bm.hardill.me.uk/docs
実行後、デバイスが表示される
- Name
Alexaスキルの追加
この手順はスマートフォン上で実行
NodeRedの初期設定
この手順はRaspberryPi上で実行
-
NodeREDのインストール
プリインストールされていれば不要$ bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
-
NodeREDの起動
方法1 or 方法2を実行方法1. 下記コマンドを実行
$ node-red-pi --max-old-space-size=256
下記は必要に応じて実行
- NodeREDの自動起動設定
$ sudo systemctl enable nodered.service
NodeRED Alexa用プラグイン設定
この手順はホストPC上で実行
-
RaspberryPiのNodeREDにアクセス
Webブラウザを開き、下記アクセス
http://RaspberryPiのIPアドレス:1880/
-
NodeREDにAlexa用プラグイン追加
右上のハンバーガーボタンをクリックし、"パレットの管理"をクリック
ユーザー設定のパレットからalexaと検索し、node-red-contrib-alexa-home-skillを追加
追加すると左側のパレットにalexaのノードが追加される
プロジェクト作成
シェルスクリプト作成
この手順はRaspberryPi上で実行
- 動作させるシェルスクリプトを作成
例:テキストファイルを作成するシェルスクリプトmake_text.shtouch sample.txt
NodeREDのプロジェクト作成
この手順はホストPC上で実行
- RaspberryPiのNodeREDにアクセス
Webブラウザを開き、下記アクセス
http://RaspberryPiのIPアドレス:1880/
Alexa 定型アクションの登録
-
アレクサのデバイス追加
アレクサアプリを開き、デバイスを追加
デバイスの+ボタンを押す
"デバイスを追加"を選択
"その他"を選択
"デバイスを検出"ボタンを押す
Wi-Fiのアイコンを選択
指示に従い、デバイスをセットアップ
-
定型アクションの設定
"スキル・ゲーム"を選択
右上の+ボタンを押す
"アクションを追加"を選択
"スマートホーム"を選択
"すべてのデバイス"を選択
登録したデバイス名が表示されているので、そのデバイスを選択
実行条件を設定し、保存
実行
実行後、sample.txtが作成される
※他にもスケジュール実行やアラームと連動して実行等もできます
最後に
今回はアレクサからRaspberryPiに音声で指示をするための初期設定とテンプレートを記載しました。
こちらを応用して自分だけのスマートホームデバイスを作成してみてはいかがでしょうか。