自動化テンプレートを作成する

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 つの処理を行います。

  1. 特定の時刻に照明をオンにする。
  2. 同じライトを特定の時刻にオフにする。

これで、テンプレート エディタを開いて自動化を記述する準備が整いました。

4. 自動化テンプレートを作成する

自動化は、YAML データ シリアル化言語を使用して宣言的に記述されます。

自動化テンプレートには、次の 3 つの主要なセクションがあります。

  1. メタデータ - 自動化の名前、自動化の機能の説明、必要に応じて自動化の分類に使用されるタグ。キーワードは次のとおりです。
    • 照明とプラグ
    • 空調、エネルギー
    • セキュリティとセンサー
    • エンターテイメント
    • 家電製品など
  2. 入力 - 自動化で制御するデバイスの種類を定義します。自動化エンジンは、この情報を使用して、対象デバイスで有効なアクションの種類を把握します。
  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_ontime_off という 2 つの変数も定義されています。これにより、ユーザーは自動化を開始するタイミングを指定できます。time_on はライトがオンになる時刻を表し、time_off はライトがオフになる時刻を表します。ユーザーが time_on または time_off の値を設定しない場合、デフォルト値が使用されます。
  • 自動化の automations セクションには、2 つの自動化ルールが含まれています。各ルールには、自動化を開始する時間を自動化に指示する time.schedule 開始条件が 1 つあります。

テンプレート エディタ

自動化テンプレート エディタは、自動化テンプレートの作成に使用するツールです。

  1. Google Home Developer Console に移動します。
  2. Google Home アプリでデバイスのセットアップに使用したアカウントと同じアカウントでログインします。
  3. プロジェクトを作成するか、既存のプロジェクトを選択します。
  4. [自動化] で [開発] をクリックします。
  5. [テンプレートを作成] をクリックします。
  6. 「照明のスケジュール設定」自動化テンプレートをコピーします。
  7. 「Scheduled light」自動化テンプレートをテンプレート エディタに貼り付けます。
  8. [検証] をクリックします。エラーが発生した場合は解決し、エラーが発生しなくなるまで検証と修正を繰り返します。
  9. [保存] をクリックしてテンプレートを保存します。

5. テンプレートをテストする

これで、コンソールでテンプレートをテストできます。

  1. ライトがコンセントに差し込まれていて、Google Home アプリに表示されていることを確認します。
  2. ライトが点灯している場合は、ライトをオフにします。
  3. Google Home Developer Console に移動します。
  4. テンプレートを作成したプロジェクトを開きます。
  5. [自動化] を選択し、[テスト] タブを選択します。
  6. [Scheduled light] 自動化テンプレートの横にある [開く] をクリックします。
  7. テンプレートをテストする構造を選択し、[次へ] をクリックします。
  8. [InputValue] エディタで、照明の名前を指定します。たとえば、ライトの名前が「デスクライト - オフィス」の場合、lights の右側をクリックすると表示されるプルダウン メニューから Desk light - Office を選択します。または、デバイスの名前を入力します。
  9. また、[InputValue] エディタで、time_on 時間を 5 分後の時間などに指定し、time_off 時間を time_on の直後の時間に変更します。
  10. 完了すると、InputValue エディタは次のようになります。
    inputValue:
     #add value
     the_light: Desk light - Office
     #add value
     time_off: 11:45 am
     #add value
     time_on: 11:40 am
    
  11. [テストを有効にする] をクリックします。
  12. 2 つの開始時刻が経過するまで待ちます。ライトは指定した時刻に点灯し、消灯します。

テンプレートのテストが成功すると、自動化が機能的に健全であることがわかります。

6. 完了

自動化テンプレートが正常に作成されました。誠にありがとうございます。

この Codelab では、以下について学びました。

  • 自動化テンプレートの設計と作成方法。
  • Google Home Developer Console でテストする方法。

次のステップ

この Codelab では、非常にシンプルな自動化を作成しました。自動化では、照明のオン / オフのスケジュール設定以外にもさまざまな操作を行えます。自動化テンプレートの作成とテストの基本を理解したので、さまざまなスターター、条件、アクションを使用して、他のタイプのデバイスの自動化テンプレートを作成してみましょう。

関連情報

Google Home の自動化について詳しくは、自動化のリファレンス ドキュメントをご覧ください。