2023年6月13日にGoogle Homeのスクリプトエディタ(Script Editor)機能がパブリックレビュー版として公開されました。
これによってGoogle Homeアプリを経由して、自宅のあらゆるスマートデバイスの操作をスクリプトで自動化できるようになります。
この記事では、Goolge Homeのスクリプトエディタを使ってスマートデバイスの操作を自動化する方法を解説します。
スクリプトエディタを開く
Google Homeのスクリプトエディタは以下のURLで開くことができます。
Google Homeがきちんと設定できていれば、Googleアカウントに紐づくGoogle Homeの情報が出てくるはずです。
画面右上にある「新たに追加」ボタンをクリックしましょう。
すると、以下のようにスクリプトエディタが開きます。
ここにyaml形式でスクリプトを書けば「特定の条件のときに○○を実行する」といった操作を自動化できます。
スクリプトエディタの使い方
スクリプトエディタの使い方は簡単です。
1. エディタ
画像の①のエリアがエディタです。
はじめからテンプレートが入力されているので、これを編集して自動化処理を実装します。
具体的な書き方は後述します。
2. 保存ボタン
左下の「保存」ボタンがスクリプトを保存するためのボタンです。
保存ボタンを押すとスクリプトエディタに書いた内容がすぐにGoogle Homeに反映されます。
3. 検証ボタン
「検証」ボタンはスクリプトにエラーがないかをチェックするボタンです。
スクリプトに問題があればこのボタンを押したときに教えてくれます。
たとえば、スクリプトエディタを開いたばかりの状態では必要な項目が入力されていません。
そこで検証ボタンを押すと入力すべき場所をエラーで教えてくれます。
4. 有効にするボタン
スクリプトエディタの右下にある「有効にする」ボタンはスクリプトエディタの有効・無効を切り替えるためのものです。
スクリプトを正しく書いて保存すると「有効にする」を押せるようになります。
青色ならスクリプトが有効で、グレーなら無効です。
スクリプトの書き方
それでは、さっそくスクリプトを書いてみましょう。
スクリプトは大きく2つの項目に分かれます。
- metadata
- automation
1. metadata(メタデータ)
metadataには「スクリプトの名前(name)」と「説明(description)」を書きます。
そのスクリプトが何を自動化するものなのかわかるように名前と説明を書きましょう。
今回は、例として「モーニングルーティーン」のスクリプトを書くことにします。
nameに「モーニングルーティーン」、descriptionに「Google Homeにおはようございますと言ったときに今日の天気とニュースを流します」と書きます。
metadata:
name: モーニングルーティーン
description: Google Homeにおはようございますと言ったときに今日の天気とニュースを流します
2. automation(自動化)
automationには自動化の設定を書きます。
automationはさらに3つの項目に分かれています。
- starters(何をきっかけに)
- condition(どんな条件を満たしたら)
- actions(何を実行するか)
この3つの項目を埋めるだけでスマートデバイスの操作を自動化できます。
それぞれ詳しく見ていきます。
1. starters(何をきっかけにするか)
startersには自動化処理を実行する「きっかけ」を入力します。
startersの下にある「- type:」の後にカーソルを当てるか「Ctrl + Space」キーを押すと選択肢が出てきます。
「assistant.event.OkGoogle」という項目を選択すると「OK, Goolge」と話しかけた時にスクリプトを実行できます。
とりあえずこれを選んでみましょう。
「assistant.event.OkGoogle」を選択すると、さらに「eventData」と「is」という2つの入力項目が追加されます。
「eventData: query」は「OK, Googleの後に話した内容(=query)をデータとして使うよ」という設定です。ここはそのままで問題ありません。
「is: 」の後に「何と言ったらスクリプトを実行するか」を入力します。
スクリプトを実行するきっかけとなるキーワードですね。
今回はモーニングルーティーンのスクリプトを書いているので「おはようございます」と言ったときに、スクリプトを実行するようにしましょう。
「is: 」の後ろに「おはようございます」と書きます。
starters:
# Use Ctrl + Space to get autocomplete suggestions
- type: assistant.event.OkGoogle
eventData: query
is: おはようございます
startersの設定はこれでOKです。
2. condition(どんな条件を満たしたら実行するか)
次にconditionを入力します。
conditionには、startersをきっかけにスクリプトが立ち上がった場合に「どんな条件を満たしたら」実際のアクションを実行するかを書きます。
startersでスクリプトが立ち上がっても、条件によって実行させたりさせなかったりできるわけです。
conditionはオプションなので書かなくても問題ありません。
書かない場合はconditionの項目を丸ごと削除します。
今回は無条件で実行させたいのでconditionを削除しましょう。
3. actions(何を実行するか)
最後にactionsを入力します。
actionsには実行する内容を書きます。
startersをきっかけにスクリプトが起動して、conditionに設定した条件も満たした場合に、actionsに書いたことが実行されます。
「- type: 」の後にカーソルを当てるか「Ctrl + Space」キーを押すと選択肢が出てきます。
たくさんありますね。
この中から実行したい内容を選びます。
「assistant.command.OkGoogle」を選ぶと「okGoolge」と「device」の2つの項目が追加されて、Google Home自体に日本語で指示を出すことができます。
たとえば、Google Homeに「今日の天気」を聞きたい場合、「okGoogle:」の後に「今日の天気は?」と書きます。
devicesには対象とするGoogle Homeデバイスを選択します。
actionsは複数設定できます。
以下のように「- type:」を追加して、同じように設定するだけです。
ここでは「今日のニュースを聞く」アクションを追加しました。
actions:
# Use Ctrl + Space to get autocomplete suggestions
- type: assistant.command.OkGoogle
okGoogle: 今日の天気は?
devices: リビングルーム speaker - リビングルーム # デバイスはご自身の環境にあるデバイスを選択してください
- type: assistant.command.OkGoogle
okGoogle: 今日のニュースを再生して
devices: リビングルーム speaker - リビングルーム # デバイスはご自身の環境にあるデバイスを選択してください
これで「今日の天気」と「今日のニュース」が連続して再生されるようになります。
以上でスクリプトの編集は完了です!
スクリプト全体は以下のようになりました。
# ------------------------------------------------------------------------------------------ #
# Any line that starters with "#" sign is a comment and gets ignored.
# Indentation (i.e. Number of spaces before each line) is used to decide information hierarchy.
# To populate the template, please follow instructions listed via comments in this template.
# To learn more, please visit g.co/home/scripts for full documentation.
# ------------------------------------------------------------------------------------------ #
metadata:
name: モーニングルーティーン
description: Google Homeにおはようございますと言ったときに今日の天気とニュースを流します
automations:
# Update "starters", "actions" and optionally "condition" sections to create an automation
# Duplicate these three sections under "automations" to add more automations in the same script
# ---- STARTERS ---- #
# Starters describe events that should start the automation
# Duplicate "- type" section under "starters" to add more than one starters
# If you add multiple starters, any one of them happening will start the automation
# Automations will run if any of the starters meets the criteria
starters:
# Use Ctrl + Space to get autocomplete suggestions
- type: assistant.event.OkGoogle
eventData: query
is: おはようございます
# ---- CONDITIONS ---- #
# Conditions are optional checks that can limit an automation to run only in certain cases
# If your automations does not require conditions, please completely delete the CONDITIONS section
# To use advance conditions that use logical operators ("and", "or", "not") please visit our documentation
# ---- ACTIONS ---- #
# Actions are performed when a automation starts and all conditions are met
# Actions run sequentially and respect any delay introduced between them
# Duplicate "- type" section under "actions" to add more than one action
actions:
# Use Ctrl + Space to get autocomplete suggestions
- type: assistant.command.OkGoogle
okGoogle: 今日の天気は?
devices: リビングルーム speaker - リビングルーム # デバイスはご自身の環境にあるデバイスを選択してください
- type: assistant.command.OkGoogle
okGoogle: 今日のニュースを再生して
devices: リビングルーム speaker - リビングルーム # デバイスはご自身の環境にあるデバイスを選択してください
最後に「検証」ボタンを押してエラーがないかチェックしましょう。
画面の左下に「エラーは見つかりませんでした」と出ればOKです。
スクリプトの保存と実行
スクリプトが完成して、エラーなく検証もできたら「保存」ボタンを押して保存します。
これですぐにスクリプトを実行できるようになります。
さっそくGoogle Homeに話しかけてみましょう。
今回は「starter」で「おはようございます」と話しかけるとスクリプトが実行されるように設定しました。
そのため「OK, Google. おはようございます」と話しかければ「今日の天気」と「今日のニュース」を再生してくれるはずです。
モーニングルーティーンを試したのが夜なのでGoogleの回答は嫌味っぽく聞こえますが、ちゃんと「今日の天気」→「今日のニュース」の流れになっています。
まとめ
この記事では、2023年6月にパブリックレビュー版で公開されたGoogle Homeのスクリプトエディタ(Script Editor)の使い方を解説しました。
本編では触れていませんが「指定した時間になったら○○をする」のようなstarterを設定したり、Google Homeと連携したスマートデバイスがあれば「○○と話しかけたらライトをつける」などのアクションも設定できます。
また、今後できることも増えていくことでしょう。
ぜひ試してみてください。
記事の内容にわからないことがある方は以下のアカウントに気軽にDMしてください!
また、最新の技術の活用方法など役に立つツイートを心がけているので、ぜひフォローしてもらえると嬉しいです!