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

この Codelab について
schedule34 分
subject最終更新: 2023年9月26日
account_circle作成者: Jonathan Donald and Andres Gomez
  • 自動化テンプレートを設計して作成する方法。
  • Google Home Developer Console を使用して自動化テンプレートをテストする方法。
  • Google Home アプリを実行している Android または iOS スマートフォン。
  • 家にオンボードされているスマートライト、または Google Home Playground のシミュレーション デバイスのいずれか。

Google Home の自動化の作成方法に精通している必要があります。自動化を記述したことがない場合は、この Codelab に進む前にスクリプトによる自動化を作成するを行うことを検討してください。

デベロッパーは、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. [Automations] で [Develop] をクリックします。
  5. [Create a template] をクリックします。
  6. [スケジュール設定済みのライト] をコピーします自動化テンプレートです
  7. 「スケジュール設定したライト」を貼り付けます自動化テンプレートをテンプレートエディタに入力します
  8. [検証] をクリックします。発生した可能性のあるエラーをすべて解決し、エラーが発生しなくなるまで検証と修正を続けます。
  9. [Save] をクリックしてテンプレートを保存します。

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

これで、コンソールでテンプレートをテストできるようになりました。

  1. ライトが電源に接続されていて、Google Home アプリに映っていることを確認します。
  2. ライトが点灯している場合は、オフにします。
  3. Google Home Developer Console に移動します。
  4. テンプレートを作成したプロジェクトを開きます。
  5. [自動化] を選択し、[テスト] タブを選択します。
  6. [照明の予約] の横にある [開く] をクリックします。自動化テンプレートです
  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 のデベロッパー コンソールでテストする方法

次のステップ

この Codelab では、非常にシンプルな自動化を作成しました。自動化では、照明の切り替えをスケジュール設定するだけにとどまらず、さまざまなことができます。自動化テンプレートの作成とテストの基本を理解したところで、次は、さまざまな開始条件、条件、アクションを使用して、他のタイプのデバイスで自動化テンプレートを作成してみましょう。

関連情報

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