みなさん、こんにちは。
突然ですが、Alexa、使ってますか?
私はもう、日々の生活に欠かせない存在になっています。特に、自分で開発したスキルが日々大活躍していて、スマートホームライフを最高に楽しんでいます!
例えば、以前に公開した記事では、SwitchBotをオリジナルスキルでAlexaと連携させて活用しています。
「へぇ、自分でスキルを開発ってすごいね!」って思われた方もいるかもしれません。実は、そんなに難しいことばかりじゃないんです。今回は、私が特に便利だと感じている「スマートホームスキル」について、その魅力とちょっとした開発のコツをお伝えしたいと思います。
Alexaスキルには種類があるって知ってましたか?
Alexaスキルはその用途によって種類がわかれています。その中でデバイスを操作することに着目すれば、大きく分けて2種類のスキルがあるのです。
1. カスタムスキル
まずは「カスタムスキル」からご紹介しましょう。これは、皆さんが普段よく使っている「アレクサ、〇〇を開いて」のように、スキルを起動させてから特定のタスクを実行するために設計されたスキルです。「を開いて」の部分を「アレクサ、〇〇で、・・・して」と文をつなげて特定タスクまで一文で実行することも可能です。
例えば、「アレクサ、Yahoo天気で今日の天気は?」と聞くとYahoo天気を起動してから天気予報を教えてくれたり、「アレクサ、家電リモコンでテレビの電源をつけて」と言えば家電リモコンを起動してからテレビの電源をつけてくれたりしますよね。このように、一度スキルを起動してから、さらに具体的なリクエストをする、いわゆる「ツーショット」の流れで操作するのがカスタムスキルです。
2. スマートホームスキル
そして、今回注目したいのが「スマートホームスキル」です。 これは、名前の通りスマートホームデバイスを操作するためのスキル。「アレクサ、□□をつけて」や「アレクサ、△△を消して」といったように、文をつなげなくてもたった一言でデバイスを操作できるのが最大の特徴です。
部屋に入って「アレクサ、電気つけて!」と言うだけで明かりが灯る。ベッドに入る前に「アレクサ、エアコン消して!」でスイッチオフ。この「ワンショット」で操作できる手軽さが、本当に便利なんです!
スマートホームスキルは、「つけて」「消して」など、シンプルな音声コマンドに限定されますが、それがまた直感的で使いやすいポイントでもあります。複雑な言葉を覚える必要がないので、誰でも簡単に使いこなせるのが魅力的ですね。
オリジナルデバイスをスマートホームスキルで動かす、という夢
私もこのワンショット操作の虜になり、自分で作ったオリジナルのスマートホームデバイスのほとんどを、このスマートホームスキルで動かしています。
「でも、スマートホームスキルの開発って難しそう」と感じるかもしれませんね。Amazonの公式ドキュメントでも開発方法は紹介されているのですが、正直、初めての方にはちょっと分かりにくい部分があるのも事実です。
参考Alexaドキュメント:スマートホームスキルを理解する
私もずっと「もっと分かりやすいブログ記事にしたいな」と思っていたのですが、手順が多くてなかなか手をつけられずにいました。しかし、幸いなことに、とても親切に手順をまとめてくださった方がいらっしゃったんです!
開発手順は、こちらの神記事にお任せ!
スマートホームスキルの開発に興味がある方は、ぜひ以下の記事をじっくり読んでみてください。基本的な開発手順は、この素晴らしい記事に全面的にお任せします!
Alexa センサー用のスマートホームスキルを作成し、定型アクションのトリガーとして利用する
記事の最終更新日は2023年09月25日と少し前なので、画面のレイアウトなどが多少変わっているかもしれませんが、内容自体は今でも十分に参考になるはずです。手順通りに進めれば、きっとあなたもオリジナルのスマートホームスキルを作れるようになりますよ!
元記事では触れられていない、開発時の「ここがポイント!」
「じゃあ、このブログ記事は必要ないんじゃない?」と思われるかもしれませんね(笑)。
いえいえ、そんなことはありません! 元記事ではカバーしきれていない、「知っておくと開発がスムーズに進む、ちょっとした落とし穴とコツ」を、私の方から補足させていただきます。これを読んでおけば、途中でつまずくことなく、開発をぐっと効率的に進められるはずです!
1. アカウント作成は慎重に!
これは、開発の第一歩にして最大の「ハマりどころ」かもしれません。
Amazon開発者ポータルとAWSコンソールは、それぞれ別のアカウントとして管理することができます。もちろん、同じアカウント名で作成することもできるのですが、「今、どのアカウントでログインしているのか」を常に意識するようにしましょう。
特に注意したいのが、日本語のスマートホームスキルとして開発して利用したい場合です。この場合、Amazon開発者ポータルのアカウントが「amazon.co.jp」のアカウントと紐づいている必要があります。
Amazon開発者ポータルからアカウントを作成する場合、「グローバルアカウント」として扱われることが多く、意図せず「amazon.com」と紐づいてしまうケースがあるんです。私も実際に、amazon.comのアカウントと紐づいてしまい、想定外のトラブルに見舞われました。
もし、同じような状況に陥ってしまったら、以下の公式ブログに対処法が詳しく解説されていますので、参考にしてみてください。
2. Lambdaのリージョンは「米国西部(オレゴン)」を選んで!
これも非常に重要なポイントです!
元記事にも解説がありますが、日本語のスマートホームスキルは、必ず「米国西部(オレゴン)」リージョンを選択しないと正しく動作しません。間違っても「東京リージョン」を選択してしまわないように、くれぐれも注意してください。
カスタムスキルの場合は東京リージョンで作成しても問題ないのですが、スマートホームスキルの場合は、この「オレゴンリージョン」が必須条件なんです。開発を進める際には、このリージョン選択を忘れないようにしましょう。
3. 対応するデバイスの種類を確認しておこう!
スマートホームスキルでは、操作できるデバイスの種類が限られています。特に、日本語のスマートホームスキルでは、英語のスキルに比べて対応しているデバイスの種類が少ない傾向にあります。
「せっかく作ったのに、自分のデバイスが対応してなかった!」とならないように、開発を始める前に、ご自身のオリジナルデバイスがスマートホームスキルに登録して操作できるタイプかどうか、事前に確認しておくことをおすすめします。以下のリンクで、Alexaインターフェースとサポートされている言語の一覧を確認できます。
4. デバイス検出は「アレクサ、私のデバイスを発見して」が超便利!
スマートホームスキルを開発したら、作ったデバイスがAlexaに正しく認識されるか(=デバイス検出)を確認することがとても重要です。デバイスが検出されないと、せっかく作ったスキルも動作しません。
元記事では、Lambda関数のテストとして「Discovery(デバイス検出)」を実行する方法が紹介されています。イベント名「Discovery」のテストがそれにあたりますね。
しかし、新しいスマートホームデバイスを追加するたびに、このDiscovery用のコードを書いてテストするのは、正直かなり手間がかかります。
そこで、ぜひ覚えておいてほしいのが、Alexaへの音声コマンドでデバイスの再検出をリクエストする方法です!
開発中のデバイスを追加したり、更新したりした際に、Alexaに向かってこう話しかけてみてください。
「アレクサ、私のデバイスを発見して」
これだけで、Alexaが接続されているすべてのデバイスを再検出してくれます。手動でテストコードを実行する手間が省けて、開発効率がグッと上がりますので、ぜひ活用してくださいね!
5. スキルは「公開」しなくてOK!
「作ったスキルって公開しなきゃいけないの?」と心配になる方もいるかもしれませんね。
ご安心ください! 自分のAlexaで利用するだけのスマートホームスキルであれば、公開する必要は一切ありません。開発環境でテストが完了すれば、すぐに自分のAlexaと紐づけて利用を開始できます。
無理に公開する必要はありませんので、開発中のステータスのまま、個人利用として存分に活用してください。
さあ、あなたも一歩踏み出そう!
いかがでしたでしょうか?
今回のブログで紹介した「ちょっとした補足」は、知らないとハマってしまいがちなポイントばかりです。これらを頭に入れておけば、Qiitaの記事を参考にしながら、よりスムーズにスマートホームスキルの開発を進められるはずです。
自分で作ったデバイスが、自分の声で思い通りに動く感動は、格別ですよ! ぜひこの機会に、オリジナルのスマートホームスキル開発にチャレンジしてみてください。
本日も最後までお読みいただき、本当にありがとうございました!
それでは、よいスマートホームライフを!
ピンバック: SwitchBotボットをPythonで制御!有事に強いIoTシステムをめざして - ビューローみかみ