1. はじめに
学習内容
- 自動化テンプレートを設計して作成する方法。
- Google Home Developer Console を使用して自動化テンプレートをテストする方法。
必要なもの
- Google Home アプリを実行している Android または iOS スマートフォン。
- 家にオンボードされているスマートライト、または Google Home Playground のシミュレーション デバイスのいずれか。
前提条件
Google Home の自動化の作成方法に精通している必要があります。自動化を記述したことがない場合は、この Codelab に進む前にスクリプトによる自動化を作成するを行うことを検討してください。
2. 自動化テンプレートとインスタンス
デベロッパーは、Google Home Developer Console の自動化テンプレート エディタを使用して自動化テンプレートを作成します。自動化テンプレートにはスクリプト ロジックの本質が含まれており、デバイスタイプを参照しますが、特定のデバイスは含まれません。
エンドユーザーは、Google Home for web の自動化スクリプト エディタを使用して自動化テンプレートを使用し、自宅の特定のデバイスで動作するパーソナライズされたインスタンスを作成します。保存すると、インスタンスが Google Home アプリ(GHA)の [家のルーティン] に表示されます。
3. 自動化テンプレートを計画する
自動化を作成する際は、まず解決しようとしている問題と、その問題を解決するために自動化が何をするのかについて考えることから始めます。これには、次のような考慮事項が含まれます。
- 自動化するデバイス。
- 自動化の実行をトリガーする開始条件(またはイベント)を指定します。
- トリガー後に自動化を実行するかどうかを制御する追加の条件(存在する場合)。
- 実行するアクション。
この Codelab では、自動化は次の 2 つのことを行います。
- 特定の時間に照明をつける。
- 特定の時間に同じライトを消します。
これで、テンプレート エディタを開いて自動化を記述する準備が整いました。
4. 自動化テンプレートを作成する
自動化は、YAML データシリアル化言語を使用して宣言形式で記述します。
自動化テンプレートの主なセクションは次の 3 つです。
- メタデータ - 自動化の名前、自動化の動作の説明、自動化の分類に使用されるタグ(省略可)。キーワードは次のとおりです。
- 照明とプラグ
- 気候とエネルギー
- セキュリティと認知度
- エンターテイメント
- 家電製品など
- 入力 - 自動化で制御しようとしているデバイスの種類を定義します。自動化エンジンはこの情報を使用して、対象となるデバイスで有効なアクションの種類を判断します。
- 自動化ルール - 自動化の開始ロジックと動作を定義します。
使用する自動化テンプレートは次のとおりです。
metadata:
name:
en: Scheduled light
description:
en: Turn the light on and off at specific times
tags:
- LIGHTING AND PLUGS
input:
the_light:
metadata:
name:
en: The light
description:
en: The light to be controlled
selector:
type: device
multiSelect: true
supportedTypes:
- LIGHT
time_on:
metadata:
name:
en: Time to turn on the light.
description:
en: The time of day to turn on the selected light.
selector:
type: time
default: sunset+30min
time_off:
metadata:
name:
en: Time to turn off the light.
description:
en: The time of day to turn off the selected light.
selector:
type: time
default: 10:00 pm
automations:
- name: Turn on the light
starters:
- type: time.schedule
at: $time_on
actions:
- type: device.command.OnOff
devices: $the_light
on: true
- name: Turn off the light
starters:
- type: time.schedule
at: $time_off
actions:
- type: device.command.OnOff
devices: $the_light
on: false
テンプレートを読み、次の点に注意してください。
metadata
セクションには、この自動化の名前と説明が含まれます。input
セクションでは、LIGHT
タイプのデバイスを指定するthe_light
という名前の変数が定義されています。つまり、このテンプレートは照明にのみ使用でき、他の種類のデバイスには使用できません。つまり、家で自動化を設定しているユーザーが$the_light
のデバイスを選択するように求められた場合、ユーザーが選択できるデバイスは管理者が指定したタイプのデバイスに制限されます。input
セクションには、time_on
とtime_off
という名前の 2 つの変数も定義されています。これにより、ユーザーは自動化を開始するタイミングを指定できます。time_on
はライトが点灯する時刻、time_off
はライトが消えている時刻を表します。ユーザーがtime_on
またはtime_off
の値を設定しない場合は、デフォルト値が使用されます。- 自動化の
automations
セクションには、2 つの自動化ルールが含まれています。各ルールには、自動化を開始するタイミングを指定するためのtime.schedule
開始条件が 1 つあります。
テンプレート エディタ
自動化テンプレート エディタは、自動化テンプレートの作成に使用するツールです。
- Google Home Developer Console に移動します。
- Google Home アプリでデバイスをセットアップしたときと同じアカウントでログインします。
- プロジェクトを作成または選択します。
- [Automations] で [Develop] をクリックします。
- [Create a template] をクリックします。
- [スケジュール設定済みのライト] をコピーします自動化テンプレートです
- 「スケジュール設定したライト」を貼り付けます自動化テンプレートをテンプレートエディタに入力します
- [検証] をクリックします。発生した可能性のあるエラーをすべて解決し、エラーが発生しなくなるまで検証と修正を続けます。
- [Save] をクリックしてテンプレートを保存します。
5. テンプレートをテストする
これで、コンソールでテンプレートをテストできるようになりました。
- ライトが電源に接続されていて、Google Home アプリに映っていることを確認します。
- ライトが点灯している場合は、オフにします。
- Google Home Developer Console に移動します。
- テンプレートを作成したプロジェクトを開きます。
- [自動化] を選択し、[テスト] タブを選択します。
- [照明の予約] の横にある [開く] をクリックします。自動化テンプレートです
- テンプレートをテストする構造を選択し、[次へ] をクリックします。
- InputValue エディタで、ライトの名前を指定します。たとえば、ライトの名前が「デスクライト - オフィス」の場合は、
lights
の右側をクリックすると表示されるプルダウン メニューから [Desk light - Office
] を選択します。デバイスの名前を入力することもできます。 - また、InputValue エディタで、
time_on
の時間(5 分後の時間など)を指定し、time_off
の時間をtime_on
の直後に変更します。 - 完了すると、InputValue エディタは次のようになります。
inputValue: #add value the_light: Desk light - Office #add value time_off: 11:45 am #add value time_on: 11:40 am
- [テストを有効化] をクリックします。
- 2 つの開始条件時間が経過するまで待ちます。指定した時間にライトが点灯し、消えます。
テンプレートのテストが成功すれば、自動化が適切に機能していることがわかります。
6. 完了
自動化テンプレートが正常に作成されました。うまくできました。
この Codelab では、以下について学びました。
- 自動化テンプレートを設計して作成する方法。
- Google Home のデベロッパー コンソールでテストする方法
次のステップ
この Codelab では、非常にシンプルな自動化を作成しました。自動化では、照明の切り替えをスケジュール設定するだけにとどまらず、さまざまなことができます。自動化テンプレートの作成とテストの基本を理解したところで、次は、さまざまな開始条件、条件、アクションを使用して、他のタイプのデバイスで自動化テンプレートを作成してみましょう。
関連情報
Google Home の自動化について詳しくは、自動化のリファレンス ドキュメントをご覧ください。