【未解決】Amaon echoを喋らせたい

標準

我が家の洗濯機は終了するとピーッピーッと音が鳴るタイプ。ちょっと離れた部屋で洗濯機が動いているので、ドアを開けておけば音が聞こえているので特に問題はありませんでした。

子どもが生まれるまでは。

子どもの世話してるとアラームの音が聞こえないことがしばしば。バタバタしてたら洗濯が終わってたことを忘れちゃったこともありました。

一方、我が家にはAmazon echoがあります。たまに音楽をかけるだけであまり使い道がなかったんですが、子どもが生まれてからは手を使わずに記録できるのでかなり重宝してます。具体的には、オムツ替えてる間にアプリに時刻を記録とかです。

[アフィリンク]

我が家で使ってるのはこういうタイプです。洗濯機が終了した際に、これが喋って伝えてくれれば万事解決ですね。

残念ながら我が家の洗濯機はWi-Fiにつながるタイプではないので、何らかの方法で洗濯機が終了したことを検知する必要がありました。調べたところ、switchbotプラグミニを使うと『電力量が下がったときに何かする』という動作ができるようです。

[アフィリンク]

というわけで、こういうシステムを作れればいいわけです。

『何らかの方法で』が難しいところですが、妻が調べてくれた情報によるとIFTTT(イフト)というwebサービスと連携ができそうでした。IFTTT自体はamazon echoへの通知はできないのですが、google spreadsheetへ記録するという機能がありました。なので、現状ここまで作れています。

が、肝心のAmazon echoへの通知がまだ作れず。というのも、Amazon echoは基本的に入力装置で、出力装置として利用するケースがほとんどないんですよ。ネットでググっても、「Amazon echoに話しかけたら応答する何かを作ろう!」という情報ばかり。

[アフィリンク]

こういう書籍も見ましたが、スキルを追加していろんな質問に答えられるようにするという内容なのでちょっと違いましたね。

 

ちょっと調べた限りですと、『ラズパイからAlexaを呼ぶ』『Alexaスキルを開発する』の2パターンがあるようで。どちらもGAS (Google App Script)でSpreadsheetの更新を検知するのは同じ。ラズパイに送信するかAlexaスキルに送信するかの違いですね。

ラズパイからAlexaを呼ぶ場合はこんな感じ。シェルスクリプト自体はalexa-remote_control.shというスクリプトがあるので、ラズパイを常時ネットに接続できる環境があれば割とできるはず。ただ、我が家にあるラズパイは1台なので、これに使っちゃうと新しくラズパイで遊ぶことができないんですよね。

[アフィリンク]

昔は5000円ぐらいで買えたけれど、今は1台1.5万円ほどかかっちゃいますね。しかもなかなか入荷してなかったりして。

なお、前述の例ではラズパイを使ってますが、ネットにつながってるサーバーだったらなんでもいいです。

 

というわけでAlexaスキルを作ることを試してるんですが、スキル自体は音声入力をきっかけにすることがメイン(入力装置として使うパターン)。スプレッドシートから直接喋らせるためにはAPIを叩く必要があるっぽいのですが、いろんな認証を超えてトークンを取得する必要があります。

……という感じで、AをするためにはBが必要で、BをするためにはCが必要でという無限お使いクエストみたいになっちゃってます。困った。

喋らせるだけなら簡単かと思ってたんですが、ここまで難航するとは予想外でした。ラズパイ使ったほうが楽かなぁ。