Alexaやスマートホーム機器をパソコンなどと連携させるためのスマートホームスキルを作成しよう
Amazonのスマートスピーカー「Alexa」には、特定の条件を満たしたときに特定の動作を実行するように設定する「定型アクション」の機能が用意されている。実質有料化してしまった「IFTTT」の代わりになりそうな気がするが、標準で用意されている機能だけでは不十分だ。
定型アクションを外部サービスなどと柔軟に連携できるようにするには、定型アクションのトリガーやアクションとして使えるスマートホーム機能を利用しよう。実は、スマートホーム機器をAlexaと連携可能にするための「スマートホームスキル」は、スマートホーム機器メーカーでなくても作成でき、一般公開しないテスト状態のまま自分だけで使う事も出来るのだ。
自作スマートホームスキルを使えば、実際のセンサーの代わりにパソコン上からセンサー感知情報を送信して定型アクションを発動させたり、実際の機器を動かす代わりに自宅サーバのスクリプトなどを呼び出して、様々な処理を実行させられる。
スマートホームスキルの作成は通常のAlexaスキルより多くの手順が必要だが、公開して不特定多数の人に使ってもらえるようにする必要は無いので、本格的なスマートホーム機器用のスキルを作るよりは簡単だ。機能の実現に必要なスクリプトコードはあんスマが用意したので、追加投資無しでAlexaやスマートホーム機器を最大限に活用したい人はぜひ試してみよう。
ステップ1:スマートホームスキルのプロジェクトを作成しスキルIDをコピー
以前の特集で解説した手順でAmazonの開発者アカウント登録を行ったら、Alexaスキルの開発コンソールで「スキルの作成」をクリックしよう。
スキル名を入力し、「スマートホーム」を選択したら「スキルを作成」をクリック。
スマートホームスキルのビルド画面が表示されたら、「スキルID」の部分の「クリップボードにコピー」をクリックしてIDをコピーしよう。
ステップ2:AWS Lambdaで関数を作成し、スキルIDと関数コードを設定
次に、スマートホームスキルの処理を記述する「AWS Lambda」の関数を作成する。
まだ使った事が無い人は「AWS Lambdaの使用開始」をクリックし、サインイン画面で「新しいAWSアカウントの作成」をクリックしよう。
アカウントを作成済みの場合は、メールアドレスを入力して「次へ」を押し、パスワードを入力してログインしよう。
・AWS Lambda(イベント発生時にコードを実行)| AWS
AWSアカウント登録時には、メールアドレスやパスワードを設定し、住所や氏名などを入力した後、クレジットカードによる支払い情報の登録や、SMSか音声回線での電話番号認証が必要だ。クレジットカードは、銀行などのデビットカードでも問題ないようだ。
登録・サインインが完了してAWSのマネジメントコンソールにアクセスしたら、右上のリージョンを確認し、「オレゴン」になっていない場合はクリックして一覧から「米国西部(オレゴン) us-west-2」を選択しよう。
次に、「サービスを検索する」に「lambda」と入力してLambdaを検索し、下に出てきた項目をクリック。
Lambdaの管理画面が表示されたら、「関数の作成」をクリック。
関数の作成画面が表示されたら、「一から作成」を選択し、「関数名」を分かりやすい名前に設定して、右下の「関数の作成」をクリック。
関数のデザイン画面が表示されたら、「トリガーを追加」をクリック。
トリガーの設定画面の「トリガーを選択」をクリックしたら、「Alexa Smart Home」を選択。
「アプリケーションID」の入力欄が表示されたら、先ほどスマートホームスキルのビルド画面でコピーしたスキルIDを貼り付け、「追加」を押そう。
トリガーを追加したら、オレンジのアイコンの関数名の部分をクリックしよう。
デザイン画面の下に関数コードの編集画面が表示されたら、あんスマが用意した雛形スクリプトを下記リンク先からコピーして貼り付け、「Deploy」を押して保存しよう。
スクリプトの先頭の方にはスマートホームスキルで検出されたことにするモーションセンサーと照明の設定が列挙されている。後で変更した場合は、再度「Deploy」をクリックして保存を行おう。
ステップ3:Lambda関数のARNをスマートホームスキルに設定
次に、右上の「ARN」の欄に表示されている識別子を選択してコピー。
スマートホームスキルのビルド画面に戻ったら、「デフォルトのエンドポイント」の欄にコピーしたARNを貼り付け、「保存」をクリックしよう。
ステップ4:アカウントリンクの設定
次に、スマートホームスキルがユーザーを識別する「アカウントリンク」の設定を行う。
「Login With Amazon」管理画面にアクセスしたら、「セキュリティプロファイルを新規作成」をクリックしよう。
・Login With Amazon
名前と説明、プライバシー規約のURLを入力して「保存」を押す。内容はいずれも適当で構わないようだ。項目が作成されたらクリックして編集画面に進み、「ウェブ設定」のタブに切り替えよう。
一旦スマートホームスキルのビルド画面に戻り、左のメニューで「アカウントリンク」を選択してアカウントリンクの設定画面に進んだら、下の方にある「Alexaのリダイレクト先のURL」に表示されているURLをコピー。
Login With Amazonの「ウェブ設定」画面に切り替えたら、右下の「編集」を押して編集状態にし、「許可された返信URL」の欄にコピーしたリダイレクト先URLを貼り付けよう。「別の物を追加する」をクリックして、3つのURL全てを貼り付けて「保存」を押そう。
さらに、「クライアントシークレット」の欄の「シークレットを表示」ボタンを押して隠されているコードを表示し、「クライアントID」と「クライアントシークレット」の2つををコピー。それぞれスマートホームスキルのアカウントリンク設定画面の「ユーザーのクライアントID」「ユーザーのシークレット」の欄に貼り付けよう。
引き続きスマートホームスキルのビルド画面のアカウントリンクのページで、「Web認証画面のURI」を「https://www.amazon.com/ap/oa」に、「アクセストークンのURI」を「https://api.amazon.com/auth/o2/token」に設定、「スコープ」の欄で「スコープを追加」をクリックして「profile」と入力したら、ページ右上の「保存」ボタンを押して保存しよう。
ステップ5:スクリプトからセンサー検出情報を送信するための識別情報をコピー
次に、スマートホームスキルのビルド画面のメニューで「アクセス権限」のページに切り替え、「Alexaイベントを送る」のスイッチをクリックして有効化。下に出現した「クライアントシークレット」の欄の「表示」をクリックして隠されているコードを表示させたら、「クライアントID」「クライアントシークレット」の2つのコードをコピーしよう。
下記リンク先に擬似センサーの検出イベントを送信するトリガー用のPHPスクリプトを用意した。内容をコピーしてメモ帳などに貼り付けたら、冒頭の「$client_ID=」と「$client_secret=」という部分の後の引用符の間に先ほどコピーしたクライアントIDとクライアントシークレットを貼り付け、拡張子「.php」のファイルに保存しよう。
Lambda関数コードの先頭の「var client_ID=」と「var client_secret=」のところの引用符の間にも、同様に2つのコードを貼り付け、「Deploy」で保存しよう。
ステップ6:スマートホームスキルを有効化し
次に、Web版Alexaにアクセスし、左のメニューで「スキル」のページに進んだら、右上の「有効なスキル」をクリック。スキル一覧が表示されたら上部のタブで「開発スキル」に切り替え、今回作成したスマートホームスキルの項目をクリックしよう。
・Amazon Alexa
スマートホームスキルの詳細画面が表示されたら、「有効にする」をクリック。ブラウザのポップアップブロッカーで次の画面の表示がブロックされた場合は、ブロックを解除してからやり直そう。
Login With Amazonのログイン画面が表示された場合はログインを行おう。
アカウント連携の確認画面が表示されたら「許可」をクリック。
Web版Alexaの画面に戻ると「端末を検出」のメッセージが表示されるので、「端末を検出」ボタンを押して検出を実行しよう。
上手く行けば、このようにスマートホームスキルの関数コードで定義したモーションセンサーと照明のデバイスが登録されるぞ。
ステップ7:センサー検出情報送信に必要なユーザー識別トークンをコピー
最後に、再びLambda関数の設定画面に戻り、「モニタリング」のタブをクリック。
「CloudWatchのログを表示」をクリック。
ログストリームの一覧に表示されている最新の項目をクリックしよう。
スマートホームスキルの関数コード実行によって出力されたログの一覧が表示されたら、「INFO AcceptGrant:token=」となっている項目をクリック。
ログの全文が表示されたら、「=」より後ろからログ全文の最後までをコピー。
先ほど作成したトリガー用のPHPスクリプトの「$token=」の後の引用符の間に貼り付けて保存しよう。
長い道のりだったが、これで自作スマートホームスキルの準備は完了だ。
あとはパソコン上にWebサーバやスクリプトエンジンを導入すれば、Alexaとパソコンの連携を実現出来る。次の記事ではこれらのプログラムをまとめて導入出来る「XAMPP」というパッケージと、自宅サーバに一定のアドレスでアクセス出来るようにする「ダイナミックDNS」を紹介するぞ。
関連記事
実質有料化のIFTTT代替!自作Alexaスキルでスマートホーム機器を自在に活用しよう
自作スマートホームスキルの擬似センサーでAlexaの定型アクションを起動
Alexaのスキルを自作して手持ちの音楽ファイルを再生させよう
Amazon開発者アカウントを作成してAlexaスキルを自作しよう
「Alexa Skill Blueprints」の「カスタムQ&A」で備忘録を作成
Alexaの自作スキルでお気に入りのサイトをフラッシュニュースに対応させよう
画面付きのAlexaでお気に入りの動画を再生するスキルを自作しよう
Alexaのタイマーでスマート家電を操作させるには「IFTTT」を使おう
「Alexaスキル」でFireタブレットの音声アシスタントに機能を追加
2020年10月31日06時41分 公開 | カテゴリー: ライフハック | キーワード:おすすめ, チップス | Short URL
ツイート
最新記事
- 24000mAhの大容量ポータブル電源!QC3.0急速充電であっという間に充電出来る!
- 最大10台の同時充電が可能!並べて綺麗に置いておける!
- 電源タップとコードを隠してスッキリ収納!まとめて充電出来るステーション!
- よく使うリモコンやティッシュをテーブル下に一括収納!テーブルが広々使える収納ラック!
- USB-Cポートをイヤホンジャックに変換!音楽再生も通話も対応している変換アダプター!
- USB−Cポート搭載の有線イヤホン!音量調整や曲送り等も手軽にできる!
- 最大6台まで拡張可能!USBポートをHDMIに変換できるアダプタ!
- いつでも、どこでも気軽に使える!2段階風量調整&左右首振り機能付き!
- ふさがない新感覚!オープンイヤーワイヤレスイヤホンでいつでもどこでも音楽を!
- デジタル制御のアナログパズル!プログラミング的思考を育むのに役立つ!
- 360度全方位記録!死角がないハイクオリティなドライブレコーダー!
- 1944pで500万画素の映像でしっかり記録!万一の事故を記録してくれるドライブレコーダー!
- 軽量でコンパクト!内蔵バッテリー搭載でどこでも使えるモバイルプリンター!
- 超小型・軽量・コンパクトなモバイルプリンター!バッテリー内蔵でどこででも印刷できる!
- 遊んで楽しいスマホ専用フォトプリンター!インクカートリッジを使わずフルカラー印刷!
- 充電しながらプレーしてもケーブルが邪魔にならない!ケースがあってもなくても大丈夫!
- スマホもタブレットもSwitchでも使える!もちろんパソコンでも使えるコントローラー!
- 多機能小型扇風機!720度自由回転で好きな方向に風を向けられる!
- テレビやモニターの上部を有効活用!置くだけで収納スペース確保!
- 驚きの大容量40L!どこへでも持ち運び出来る冷蔵クーラーボックス!
- コンパクトなボディに秘められた豊かなサウンド!持ち出しやすい取っ手付きのワイヤレススピーカー!
- シリーズ史上最も小型設計でパワフルなサウンドを実現!持ち運びに適したデザインのJBLスピーカー!
- 想像以上のミニマル設計!大容量バッテリーでアウトドアや災害に備えよう!
- -18度〜55度まで設定可能!キャンプやアウトドアに最適な冷蔵冷凍クーラーボックス!
- 単ポート最大35W出力も可能!カードサイズで極限まで小さい!
- MAX67W出力で充電可能!こんなにコンパクトなのにノートパソコンにも使える!
- 磁力でまとまるUSB-Cケーブル!充電時のたわみ防止で持ち運びも便利!
- 最大6台同時接続可能!デスクでコンパクトに使える電源タップ!
- 27000mAh搭載のポータブル電源!PD65W出力対応でノートパソコンの予備電源にも!
- アウトドアやレジャー、災害時にも使えるLEDランタン!ソーラーパネル搭載で電源が無くても使える!