ラズパイでスマートホーム化の第2回目です。
第1回目ではラズパイに赤外線モジュールを接続して家電を操作できるようにしました。
第1回目をまだ見ていない人は以下のリンクからどうぞ。
第2回目となる今回は、GoogleHomeのセットアップとIFTTTというサービスでチャットアプリとの連携を行いたいと思います。
GoogleHomeのセットアップについては基本的なものになるので、不要な方はチャットアプリのセットアップからご覧ください。
今回の記事はYoutubeにもアップロードしているので、合わせてご覧ください。
フローチャート
前回のおさらいになります。
スマートホーム化するにあたってのフローチャートです。
全体的な流れは以下の画像のようになります。
- (人)Google Homeに家電操作の音声指示
- (Google Home)エアコン操作のコマンドをTypeTalkに送信
- (ラズパイ)TypeTalkの送信された家電操作コマンドを読み取る
- (ラズパイ)読み取った家電操作コマンドをもとに赤外線送信
- (家電)赤外線を受けて起動
今回の実装は、1~2の部分になります。
OK、Google。電気をつけて。という音声コマンドに応じて、TypeTalkというチャットアプリにラズパイの操作コマンドを送信します。
(すっかり暖房のいらない季節になってしまいましたが、フローチャート図は参考までに)
GoogleHomeのセットアップ
セットアップはGoogleHomeのアプリを用いて行います。今回はAndroid端末での説明となりますが、iOSでもアプリの操作は同様だと思います。アプリのダウンロードの部分は読み替えてください。
Playストアからアプリをダウンロード
まずはPlayストアからアプリのダウンロードを行います。Playストアより『google home』と検索します。すると『Google Home』が出てくるので、インストールを行います。
インストールが完了したら、セットアップを行います。
アプリからGoogleHomeのセットアップ
基本的に画面の指示に従って、操作を行っていくだけです。この手のものは、デバイスやアプリのアップデートで手順が変わっていきそうなので、Googleのヘルプページの参照をおすすめします。
編集時点(2019年4月)でのセットアップ方法については、Youtubeに動画をあげていますので、そちらを参照してください。
TypeTalkのセットアップ
続いてTypeTalkのセットアップを行います。
ちなみにTypeTalkというものはビジネスチャットツールの1つです。
ビジネスチャットツールといえば、Slackが有名ですね。検索すると一番多くヒットしました。続いてChatworkが多かったように思います。
TypeTalkは正直に言って、ネット上の情報は少ないように感じますが、だからこそ使ってみたい。マイナーなものだからこそ使ってみたい、といった理由で採用しました。
(実際のシェア率は確認できなかったので、不適切な表現だったら申し訳ありません)
TypeTalkのインストール
今回は家電操作のためだけなので無料版を使います。
以下のリンクより、フリープラン→無料ではじめる、よりアプリをダウンロード・インストールを行います。
トピックの作成
アプリのインストールが完了したら諸々の設定を行います。
まずは、トピックの作成を行います。
トピック一覧を開き、下記図を参考に『新しいトピックの作成』をクリックします。
トピックの作成に移動しますので、『トピック名』を入力します。あとはデフォルトでOKですが、各自必要な場合は、説明などを入力します。
ここまで出来たら、『トピックの作成』をクリックします。
ボットの作成
続いてボットの作成を行います。
bot(ボット)とは、簡単に言ってしまえば自動で色々とやってくれるプログラムのことです。
チャットアプリのボットは造語でチャットボットとも言うようです。
音声コマンドを受け付けたら、ここに家電操作用のコマンドを投稿するようにします。
そして、そのコマンドの実行結果を表示することも行います。
ボットの作り方の説明です。
作成したトピックを開きます。左上のトピック名が作成したトピックになっていることを確認します。
次に、右上の『…』から『トピックの設定』をクリックします。
『ボット 』タブをクリックして、『新規作成』をクリックします。
『ID』の項目を入力します。『名前』の項目は自動で入力されるので、そのまま『作成』をクリックしてボットを作成します。
ボットの作成が完了したら『メッセージの取得と投稿のURL』という項目があるので、そのURLを控えておきましょう。後ほど説明しますが、IFTTTのセットアップで必要になります。
ボットタブを閉じてしまった場合は、ボットタブ内の作成したボットの横に出ている歯車アイコンをクリックすればもう一度確認できます。
IFTTTのセットアップ
まずIFTTTというものは、Webサービス同士を連携させるWebサービスです。
『 if this then that 』の略で、『もし○○なら○○する』という意味になります。
とはいってもイメージがつかないと思うので、今回の実装を例に挙げると、
GoogleHomeに「電気をつけて」といったときに、TypeTalkに「light on」と投稿する
といった感じでしようします。
これによって、GoogleHomeが対応していない家電も音声コマンドで操作できるようになるのです。(正確にはラズパイの操作ですが)
アプレットの作成
Webサービス同士を連携させるにはApplets(アプレット)の作成が必要です。
上記リンクよりIFTTTにアクセスして、ログインをしましょう。アカウントがない場合は新規登録をしましょう。
ログインができたら、ホーム画面左上の『My Applets』をクリックします。
アプレットを作成すると、参考画像のようにアプレット一覧が表示されるようになります。
新しいアプレットを作成するには右上にある『New Applet』をクリックします。
画像のような画面になると思うので『+this』をクリックします。
『Choose a service』画面では『Google Assistant』を選択します。
画像のようにgoogle asまで入力すれば絞れます。
『Choose trigger』画面では『Say a simple phrase』を選択します。
『Complete trigger fields』画面では、Google Homeの音声コマンドとその返答音声を設定します。
例を挙げると、「OK、Google。電気を消して」というと、Google Homeでその音声コマンドが実行できたときに「照明を消します」と応答してくれます。この『電気を消して』と『照明を消します』の音声コマンドの入出力を決めます。
- 『What do you want to say?』:家電を操作するときのフレーズ
- 『What’s another way to say it? (optional)』:家電を操作するときのフレーズ2
- 『And another way? (optional)』:家電を操作するときのフレーズ3
- 『What do you want the Assistant tosay 』:GoogleHomeの応答フレーズ
- 『Language』:言語
2、3については1で設定したフレーズとは別のフレーズを入力します。またoptionalがついている項目は任意入力です。なくても大丈夫です。
設定が完了したら『Create trigger』で次へ進みます。
画面遷移したら『+that』をクリックします。
『Choose action service』画面では『Webhooks』を選択します。
検索ボックスでwebhまで入力すれば出てきます。
『Choose action』画面では1つしかないので迷わないと思いますが『Make a web request』を選択します。
『Complete action fields』画面では投稿先のAPI設定や、メッセージ内容を設定します。
- 『URL』:『メッセージの取得と投稿のURL』
- 『Method』:POSTを設定
- 『Content Type』:application/x-www-form-urlencoded
- 『Body』:message=@[スクリプト対象] [家電操作用コマンド]
1については、TypeTalkのボットの作成の『メッセージの取得と投稿のURL』を貼り付けます。
4については、『message=』以降がチャットアプリに投稿されます。@[スクリプト対象]とは次回以降のラズパイ側の設定で使用します。わかりやすく『homebot』などとしておくといいでしょう。[家電操作用コマンド]についても同様になります。日本語は未検証なので、英語などのアルファベット、ローマ字で設定するようにしてください。
『Create action』で完了します。
最後に『Review and finish』という画面へ遷移しますが、説明文の指定なので、特に設定は必要ないです。
アプレットの作成が完了すると、次のような画面に遷移すると思います。赤枠で囲ってあるように『on』になっていることを念のため確認しましょう。
以上で設定は完了なので、動作確認を行いましょう。Google Homeに『What do you want to say?』で設定したフレーズで話しかかてみましょう。
TypeTalkにメッセージが投稿されれば成功です。
TypeTalkのディベロッパー設定
ここの設定については次回以降で使用します。
TypeTalkとラズパイの連携で必要になる設定を済ませておきましょう。
左下の『設定』→『ディベロッパー』→『新規アプリケーション』でアプリケーションを作成します。
アプリケーション名は適当で、説明は不要です。
次回で必要になるのは次の3つになります。
作成したアプリケーション
・『Client ID』
・『Client Secret』
ボット
・『メッセージの取得と投稿のURL』のhttps://typetalk.com/api/v1/topics/xxxxxx(ここの数字)
今回の設定は以上です。
次回はラズパイの設定を行い、音声コマンドで家電を操作できるようにするところまで行います。
コメント