スクリプト エディタで自動化スクリプトを作成する

スクリプト エディタを使用すると、Google Home for web または Google Home アプリで高度な家族のルーティンを作成するための独自の自動化を記述できます。スクリプトによる自動化を記述するには、YAML スクリプト言語、スクリプトの構成方法、スクリプトを構成するコンポーネントの使用方法について、いくつかの基本的な知識が必要です。

スクリプト エディタは現在、パブリック プレビューとして提供されています。スクリプト エディタには、パブリック プレビューに登録した後、Google Home for web、または Google Home モバイルアプリからアクセスできます。

スクリプト エディタで自動化を作成する方法について詳しくは、以下のリンク先をご覧ください。 Codelab にアクセス
重要: これらのルーティンが実行されるタイミングは、家のメンバー全員が確認できます。ルーティンは便利さのみを目的にしています。安全性やセキュリティを重視すべき用途では使用しないでください。開始または停止に失敗した場合にけがや危害につながる可能性があるルーティンは作成しないでください。ルーティンが正しく機能するには、良好なインターネット環境、Wi-Fi のほか、ルーティンの実行に必要なデバイスを製造しているサードパーティおよび Google が提供するサービスへのアクセスが必要です。ルーティンは機能しないこともあり、ルーティンが正しく実行されなかったことによって損害や損失が生じても、Google は一切の責任を負いません。

YAML スクリプト言語の基本

スクリプト エディタでは、柔軟性の高いスクリプト言語の YAML を使用して、命令を 1 行ずつ入力し、デバイスで自動化したいアクションと実行するタイミングを指定できます。この命令は、Key-Value ペアの形式で記述します。

Key-Value ペア

YAML は、一連の Key-Value ペアとして記述します。

name: TV on lights off

この例では、キー nameTV on lights off です。

キーは基本的に、使用する要素のキーワードです。各キーは一意にする必要がありますが、キーの順序は重要ではありません。Key-Value ペアは 1 行に 1 つずつ記述します。

キーに関連付けるには、いくつかのデータ型を使用できます。

データ型

キーのタイプによっては、特定の形式で値を指定する必要があります。その他のキーは、デバイスの機能に基づいて特性を継承します。開始条件、条件、アクションを記述する際の構造についてご確認ください

YAML 言語の構文

ルーティンのスクリプトを記述する際は、次の形式のコンセプトを使用します。

コンセプト

コロン

YAML では、コロン(:)の後にスペースを挿入してキーと値を区切ります。

state: on

インデント

インデントは構造と階層を示し、ネストされた Key-Value ペアを定義します。

この例では、キーmetadata です。namedescription の各キーは、親キーである metadata の下にネストされた子キーです。ネストされたキーは、階層を示すため、それぞれ 2 つのスペースまたは 1 つのタブでインデントします。

metadata:
  name: TV on lights off
  description: Turn off lights when TV turns on

ハイフン

ハイフンの後にスペースを挿入して、リスト項目を定義します。
weekdays:
- MONDAY
- THURSDAY

コメント

スクリプトにコメントやメモを追加する場合は、シャープ記号(#)を使用します。コメントは自動化エンジンで無視されるため、自動化には影響しません。
# This is a comment. It will be ignored.

スクリプト エディタ テンプレート

自動化を新規作成する際、スクリプト エディタには、次の構造でスクリプトを記述できる空のテンプレートが表示されます。

metadata 自動化の名前と説明を追加します
automations 自動化の動作を定義します
starters 自動化を開始するトリガーを定義します
condition 自動化を実行するタイミングに関する制限を定義します(任意)
actions 自動化で実行するアクションを定義します

テンプレートは、metadata と automations の 2 つの主要ブロックに分かれています。automations はさらに、startersconditionsactions のセクションに分かれています。

metadata ブロックと automations ブロック

スクリプト エディタ テンプレートには、metadataautomations の 2 つの最上位の親キー(ブロック)が用意されています。

metadata ブロックには、自動化の名前と説明を追加します。自動化を識別するためにのみ使用されます。

metadata:
  name: TV time
  description: When TV is on, turn on lights

automations ブロックは自動化スクリプトの中核です。ここでは、開始条件(starters)、条件(conditions)、アクション(actions)を使用して自動化の動作を定義します。

automations:
  starters:
    # e.g. Motion detected
  condition:
    # e.g. Between 2 times
  actions:
    # e.g. Turn on lights

スクリプト エディタの使い方について詳しくは、Codelabスクリプト例のほか、Google Home Developer Center で開始条件、条件、アクションを個別に設定する方法をご確認ください。

予測入力

スクリプト エディタではスクリプトの記述をサポートするため、以下の状態のときに、利用可能な開始条件、条件、アクションに基づいて予測入力候補が提示されます。

  • 有効なオプションがある場所にカーソルが置かれている(例: - type: の後)。
    • 有効な候補があるコードを入力している。入力途中で、候補リストが適宜表示されます。

Ctrl+Space キーのショートカットを使用して手動で予測入力を開始できます。

Enter キーを押して、リストから候補を選択します。選択した構造に基づいてフィールドに値が自動入力されます。

ヒント: 予測入力を使って、お使いのデバイスで利用可能なデバイスの状態やコマンドを確認したり、特定のデバイスの状態やコマンドを利用できるデバイスを確認したりすることもできます。

お使いのデバイスで利用可能なデバイスの状態やコマンドを確認するには、スクリプトを記述する際にまずキー「device: 」を入力し、次にキー「type: 」を入力します。予測入力機能により、そのデバイスで利用できる状態やコマンドのリストが表示されます。

starters:
- device: LED lights - Living Room
- type:

特定のデバイスの状態やコマンドを使用できるデバイスを確認するには、まずキー「type: 」を入力し、次にキー「device: 」を入力します。予測入力機能により、指定した状態やコマンドに対応している、家の中で利用可能なデバイスのリストが表示されます。

starters:
- type: device.state.OnOff
- device:

開始条件、条件、アクション

自動化は、デバイスの開始条件、条件、アクションで構成されます。これらのコンポーネントにより、自動化の動作を定義します。

一部の開始条件、条件、アクションでは、自動化ロジックを完了し、評価の対象をスクリプトに伝えるために、特定の種類の比較用 Key-Value ペアが必要になります。この値は互換性のあるデータ型である必要があります。たとえば、照明の on の状態は true または false のどちらかです。照明が点灯している状態のときに自動化を開始するには、次のように記述します。

state: on
is: true

利用できる開始条件、条件、アクションの詳細を以下で説明します。開始条件、条件、アクションの一覧については、Google Home Developer Center をご覧ください。

リソース

スクリプトの記述演習

まず、「テレビの電源がオンになったときに照明をオフにする」という非常にシンプルで一般的な自動化を作成します。

注: ストリーミング デバイス、スマートライト、対応するデバイスをお持ちでない場合でも、スクリプトの記述プロセスを理解するためにこの演習をご利用いただけます(ただし、最後にスクリプトは実行されません)。
  1. home.google.com/automations を開き、アカウントにログインします。
  2. [新たに追加 ] をクリックします。
  3. メタデータ情報を入力します。このスクリプトでは、名前TV on lights off説明Turn off lights when TV turns on. です。スクリプトの形式が正しいことを確認します。
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. 開始条件を追加するには、新しい行を作成し、2 つのスペースまたは 1 つのタブでインデントし、「starters: 」と入力します。次の行で、もう一度インデントして、「- type: 」と入力します。
    ヒント:
    • 新しい行を作成するには、Shift Enter キーを押します。
    • 複数の開始条件を指定するには、各開始条件の先頭にハイフンとスペースを入力する必要があります。
metadata:
  name:  TV on lights off
  description:  Turn off lights when TV turns on
automations:
  starters:
  - type:
: スクリプト エディタでは、使用可能な開始条件に基づいて予測入力候補が表示されるため、構造に合わせて簡単に入力できます。候補から選択するには、キーボードの矢印キーを使用して選択し、Enter キーを押すと、挿入されます。
  1. device.state 開始条件を追加します。なお、device.state 開始条件を使用するには、typedevicestate の 3 つのキーが必要です。その後に、少なくとも 1 つの比較用 Key-Value ペアを記述します。スクリプト エディタでは、使用可能な開始条件、条件、アクションに基づいて予測入力候補が表示されるため、構造に合わせて簡単に入力できます。このスクリプトでは次のように入力します。
    • type = device.state.OnOff。自動化を開始するために評価される、デバイスの状態です。
    • device = Chromecast - Living Room。これは、Google Home アプリに表示されるデバイスの名前です。
    • state = on。「on」は、デバイスの状態「OnOff」でサポートされているフィールドまたは状態データです。
    • 比較用 Key-Value ペア = is: true。この比較用キーの値はプリミティブ データ型です。このスクリプトは、テレビの電源がオンになった場合に実行されます。
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true

      比較のために、別の開始条件を設定した同様のスクリプトを確認しましょう。以下のスクリプトでは、テレビの電源がオンになったときではなく、音量が 1~10 のときに自動化を開始します。この変更を行うため、状態 OnOffVolume に置き換えて、この新しい属性に合わせて state を currentVolume に変更しました。また、比較用 Key-Value ペアを、特定の範囲(greaterThan: 1 かつ lessThan: 10)を構成する 2 つのネストされたペアに変更しました。その他の例については、使用可能な開始条件の一覧をご覧ください。

      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.Volume
          device: Chromecast - Living Room
          state: currentVolume
          greaterThan: 1
          lessThan: 10
  2. [保存] をクリックすると、いつでもスクリプトを保存できます。スクリプトを保存すると、スクリプトの検証とエラーのチェックが自動的に行われます。無効なスクリプトは実行できません。
  3. 次に、スクリプトにアクションを追加します。アクションを追加するには、新しい行を作成し、2 つのスペースまたは 1 つのタブでインデントし、「actions: 」と入力します。次の行で、もう一度インデントして、「- type: 」と入力します。
    ヒント:
    • 新しい行を作成するには、Shift Enter キーを押します。
    • 他のアクションを追加するには、各アクションの先頭にハイフンとスペースを入力する必要があります。
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
    automations:
      starters:
      - type: device.state.OnOff
        device: Chromecast - Living Room
        state: on
        is: true
      actions:
      - type:
  4. 照明をオフにするには、device.command アクションを使用します。device.command アクションを使用するために、次の情報を追加します。
    • type = device.command.OnOff。これは、コマンドまたはアクションの名前です。
      : デバイスの下に複数のコマンドをネストして、コマンドごとに固有の状態を指定できます。
    • devices = Floor Lamp - Living RoomOverhead Light - Living Room から成るリスト。これらは、Google Home アプリに表示される照明の名前です。複数の照明を指定するために、各デバイスを別々の行に記述し、それぞれ先頭にハイフンを付けました。
    • state(コマンドの目的の状態)= on: false。この行で、照明をオフにするように指示しています。
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: device.command.OnOff
          devices:
          - Floor Lamp - Living Room
          - Overhead Light - Living Room
          on: false
  5. [保存] をクリックして、スクリプトを保存します。エラーがなければ、スクリプトは自動的に有効になり、テレビの電源をオンにすると常に照明が消えるようになります。まだスクリプトを実行する準備ができていない場合は、[有効にする] をオフにしてスクリプトを一時停止します。

スクリプト作成をさらに練習するには、開始条件データ型複数のアクションを変更したり、time.between などの条件を追加したりしてみましょう。スクリプト例Codelab を見て、さらに詳しく学ぶこともできます。開始条件、アクション、条件について詳しくは、Google Home Developer Center をご覧ください。

スクリプトによる自動化に関するヘルプ

  • Google Home Automation コミュニティでは、スクリプトに関するヘルプを探したり、他のユーザーの取り組みから学んだりできます。
  • 自動化を機能させるには、スクリプトで有効なコードを使用する必要があります。エラーが存在する場合は、メッセージが表示されます。詳しくは、スクリプト エディタのエラーと警告についての説明をご覧ください。
  • コードを検証するには、スクリプト エディタで [検証] をクリックまたはタップするか、スクリプトを保存してみます。よくあるエラーをいくつかご紹介します。
    • 「デバイス名 - 部屋の名前」の形式で正しいデバイス名を使用していることを確認します。正しい名前がわからない場合は、Google Home アプリでデバイスの名前を確認してください。
    • 実行させたい機能がデバイスでサポートされていることを確認します。予測入力を使用して、使用可能なオプションを見つけることもできます。
    • アクションが含まれていることを確認します。自動化を実行するにはアクションが必要です。
  • スクリプトを保存しても自動化が期待どおりに動作しない場合は、スクリプト内の各コンポーネントが機能していることを手動で確認します。たとえば、日没時にライトを点灯して明るさを変更するスクリプトを記述した場合は、アシスタント コマンドを使ってこれらのタスクを行ってみて、個々の機能が動作することを確認します。以下も確認してください。
    • Google Home アプリでデバイスが追加またはリンクされている。
    • デバイスが接続され、オンラインになっている。
    • デバイス名、開始条件、条件、アクションが正しく記述されている。
      注: メーカーによるアップデートの実施時にデバイス トレイトが変更されることがあり、これによりスクリプトが機能しなくなる可能性があります。影響を受けたスクリプトを更新する際は、予測入力機能を使用すると便利です。
    • スクリプトのインデントと形式が適切である。
  • Google Home for web では、スクリプトの下にある自動化ログ にアクセスして、自動化の履歴を表示し、潜在的な問題を特定することもできます。詳しくは、自動化ログに表示されるメッセージの種類に関する記事をご覧ください。
  • 自動化を作成する際はスクリプト エディタの試験運用中の生成 AI 機能をお試しください。スクリプトの下書きが作成され、確認、編集できるようになります。
  • ルーティンの基本とトラブルシューティング方法について、詳細をご確認ください。
  • スクリプトによる自動化を作成、編集する方法について、詳細をご確認ください。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
14436414052169304645
true
ヘルプセンターを検索
true
true
true
true
true
1633396
検索
検索をクリア
検索を終了
メインメニュー
false
false
false
false