1. はじめに
学習内容
- 自動化テンプレートを設計して作成する方法。
- Google Home Developer Console を使用して自動化テンプレートをテストする方法。
必要なもの
- Google Home アプリがインストールされている Android または iOS のスマートフォン。
- 家に追加されたスマートライト、または Google Home Playground のシミュレートされたデバイス。
前提条件
Google Home の自動化の記述方法に慣れている必要があります。自動化を記述したことがない場合は、この Codelab に進む前に、スクリプトによる自動化を作成する 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 アプリでデバイスのセットアップに使用したアカウントと同じアカウントでログインします。
- プロジェクトを作成するか、既存のプロジェクトを選択します。
- [自動化] で [開発] をクリックします。
- [テンプレートを作成] をクリックします。
- 「照明のスケジュール設定」自動化テンプレートをコピーします。
- 「Scheduled light」自動化テンプレートをテンプレート エディタに貼り付けます。
- [検証] をクリックします。エラーが発生した場合は解決し、エラーが発生しなくなるまで検証と修正を繰り返します。
- [保存] をクリックしてテンプレートを保存します。
5. テンプレートをテストする
これで、コンソールでテンプレートをテストできます。
- ライトがコンセントに差し込まれていて、Google Home アプリに表示されていることを確認します。
- ライトが点灯している場合は、ライトをオフにします。
- Google Home Developer Console に移動します。
- テンプレートを作成したプロジェクトを開きます。
- [自動化] を選択し、[テスト] タブを選択します。
- [Scheduled light] 自動化テンプレートの横にある [開く] をクリックします。
- テンプレートをテストする構造を選択し、[次へ] をクリックします。
- [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 Developer Console でテストする方法。
次のステップ
この Codelab では、非常にシンプルな自動化を作成しました。自動化では、照明のオン / オフのスケジュール設定以外にもさまざまな操作を行えます。自動化テンプレートの作成とテストの基本を理解したので、さまざまなスターター、条件、アクションを使用して、他のタイプのデバイスの自動化テンプレートを作成してみましょう。
関連情報
Google Home の自動化について詳しくは、自動化のリファレンス ドキュメントをご覧ください。