スクリプト エディタを使用すると、Google Home for web または Google Home アプリで高度な家族のルーティンを作成するための独自の自動化を記述できます。スクリプトによる自動化を記述するには、YAML スクリプト言語、スクリプトの構成方法、スクリプトを構成するコンポーネントの使用方法について、いくつかの基本的な知識が必要です。
スクリプト エディタは現在、パブリック プレビューとして提供されています。スクリプト エディタには、パブリック プレビューに登録した後、Google Home for web、または Google Home モバイルアプリからアクセスできます。
スクリプト エディタで自動化を作成する方法について詳しくは、以下のリンク先をご覧ください。- スクリプト エディタで高度なスマートホームを作成する
- サポートされている開始条件、条件、アクション
- 最初のスクリプトを作成する際のガイド付きの例(Codelab)
- スクリプトによる自動化の記述に関する演習とスクリプトの例
YAML スクリプト言語の基本
スクリプト エディタでは、柔軟性の高いスクリプト言語の YAML を使用して、命令を 1 行ずつ入力し、デバイスで自動化したいアクションと実行するタイミングを指定できます。この命令は、Key-Value ペアの形式で記述します。
Key-Value ペア
YAML は、一連の Key-Value ペアとして記述します。
name: TV on lights off
この例では、キーは name
、値は TV on lights off
です。
キーは基本的に、使用する要素のキーワードです。各キーは一意にする必要がありますが、キーの順序は重要ではありません。Key-Value ペアは 1 行に 1 つずつ記述します。
キーに関連付ける値には、いくつかのデータ型を使用できます。
データ型
プリミティブ
プリミティブ データ型には、スクリプト エディタでサポートされているすべての基本的なデータ型が含まれています。
基本の形式 | 値のタイプ |
---|---|
Bool |
|
Number | 整数または 10 進数 |
String |
書式なしテキスト 文字列値を引用符で囲う必要があるのは、文字列値が |
Date |
月と日。形式は MM-DD または MM/DD です。
|
Time |
AM / PM の形式または 24 時間形式のいずれかを使用できます。秒は省略可能です。日の出または日没の時刻を基準にすることもできます。たとえば、キーワード
|
DateTime |
年、月、日、時刻。 日付と時刻の間にはスペースを挿入してください。 日付の形式は、YYYY-MM-DD または YYYY/MM/DD です。時刻の形式は上記の「Time」と同じです。タイムゾーンはサポートされていません。
|
Weekday |
|
Duration |
一定の期間。
|
ColorHex |
色を表す 6 桁の 16 進数コード。先頭に「#」は付けません。
|
Temperature |
温度データ。摂氏または華氏を表すために、必ず C または F を追加します。
|
ColorTemperature |
色温度(ケルビン単位)。
|
構造: ネストされた Key-Value ペア
構造データ型は、複数の Key-Value ペアを含む 1 つの「ブロック」、つまりデータ構造です。これらの Key-Value ペアは 1 つの親キーの下にネストされ、各ネストレベルは階層を示す同じ数のスペースまたはタブでインデントされます。
actions: device: Light B - Living room state: on
この例では、親キーは actions
です。actions
の値は、ネストされた 2 つの Key-Value ペアです。
- ペア 1: 子キーは
device
、値はLight B - Living room
- ペア 2: 子キーは
state
、値はon
リスト: 複数の値を持つキー
1 つのキーに複数の値を含めるには、リストを作成し、各リスト項目の前にハイフンを付けます。リストでは、構造データ型またはプリミティブ データ型のいずれかの値を使用できますが、両方を同時に使用することはできません。
weekdays: - MONDAY - THURSDAY
この例では、キーは weekdays
、値は Monday
と Thursday
から成るリストです。
高度な構造: ネストされたペアとリストの組み合わせ
- type: time.schedule at: 10:00 am weekdays: - MONDAY - THURSDAY - type: time.schedule at: SUNSET weekdays: - MONDAY - THURSDAY
この例では、親キーは starters
です。この親キーの値 は、各リスト項目に複数の Key-Value ペアが含まれるリストです。
キーのタイプによっては、特定の形式で値を指定する必要があります。その他のキーは、デバイスの機能に基づいて特性を継承します。開始条件、条件、アクションを記述する際の構造についてご確認ください。
YAML 言語の構文
ルーティンのスクリプトを記述する際は、次の形式のコンセプトを使用します。
コンセプト | 例 |
---|---|
コロン YAML では、コロン( |
state: on |
インデント インデントは構造と階層を示し、ネストされた Key-Value ペアを定義します。 この例では、親キーは |
|
ハイフン ハイフンの後にスペースを挿入して、リスト項目を定義します。 |
|
コメント スクリプトにコメントやメモを追加する場合は、シャープ記号(#)を使用します。コメントは自動化エンジンで無視されるため、自動化には影響しません。 |
# This is a comment. It will be ignored. |
スクリプト エディタ テンプレート
自動化を新規作成する際、スクリプト エディタには、次の構造でスクリプトを記述できる空のテンプレートが表示されます。
metadata |
自動化の名前と説明を追加します |
automations |
自動化の動作を定義します |
starters |
自動化を開始するトリガーを定義します |
condition |
自動化を実行するタイミングに関する制限を定義します(任意) |
actions |
自動化で実行するアクションを定義します |
テンプレートは、metadata と automations の 2 つの主要ブロックに分かれています。automations はさらに、starters、conditions、actions のセクションに分かれています。
metadata ブロックと automations ブロック
スクリプト エディタ テンプレートには、metadata
と automations
の 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 をご覧ください。
開始条件(starters)
スクリプトの starters セクションでは、スクリプトを実行する条件を指定します。開始条件は、デバイスの動作や変化する属性(デバイスの状態、時刻、デバイス イベントなど)に基づいています。たとえば、電球を使用する場合、OnOff
、Brightness
、ColorSetting
の状態があります。複数の開始条件を指定するには、各開始条件をキー「 - type:
」で始めます。スクリプトを実行するには、少なくとも 1 つの開始条件が満たされている必要があります。
サポートされている開始条件の一覧をご確認ください。
開始条件の種類
アシスタントの開始条件
assistant.command
開始条件を使用すると、アシスタント対応デバイスが「OK Google」で始まるアシスタント コマンドを検出したときにスクリプトを開始できます。starters: - type: assistant.command.OkGoogle eventData: query is: party time
デバイス イベントの開始条件
device.event
開始条件を使用すると、特定のイベントが発生したとき(ドアホンが鳴ったときやセンサーが何かを検出したときなど)にスクリプトを開始できます。注: 一部のイベントはサポートされていない場合があります。
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
例: カメラが動きを検出したときに自動化を開始します。
注:
- カメラ アクティビティを利用するには、対応する Google Nest カメラ、ドアホン、またはディスプレイと、アクティビティの検出のセットアップが必要です。
- カメラ アクティビティによっては、Google Nest Aware の定期購入や電源直結型のカメラが必要となることがあります。たとえば、サウンド検知は、Google Nest Cam(屋内、屋外対応 / バッテリー式)では電源に接続されている場合にのみ動作します。
- デバイスのアクティビティやデバイスの状態に基づいて、一定の期間、再度発生しないよう開始条件を止めることができます。
デバイスの状態の開始条件
device.state
開始条件を使用すると、デバイスの状態に基づいて自動化を開始できます。状態とは、エアコンの温度が特定の温度に達する、照明がオンまたはオフになる、サポートされているセンサーが一定のしきい値に達するなどの、デバイスの特性です。
device.state
の後に状態を追加します。たとえば、デバイスがオンになっているかどうかを確認するには、device.state.OnOff
を使用します。device.state
開始条件を使用するには、まず type
、device
、state
の 3 つのキーを記述し、その後に 1 つ以上の比較用 Key-Value ペアを追加します。キー | 値 | 例 |
type |
device.state で始まる、デバイスの状態の開始条件 |
device.state.ArmDisarm |
device |
Google Home アプリに部屋の名前とともに表示されるデバイス名(Device name - Room name ) |
Alarm - Front Door |
state |
確認したい開始条件のフィールドまたは状態データ。 使用する開始条件を Google Home Developer Center で検索し、「サポートされるフィールド」または「状態データ」を確認します。 |
isArmed |
device.state 開始条件では、次の比較用 Key-Value ペアを使用できます。
比較用キー | サポートされている値の型 | 例 |
---|---|---|
is |
String | Number | Bool | Dynamic | is: on |
isNot |
String | Number | Bool | Dynamic | isNot: cast |
greaterThan |
String | Number | Bool | Dynamic | greaterThan: 1 |
lessThan lessThanOrEqualTo |
String | Number | Bool | Dynamic | lessThan: 10 |
suppressFor |
Duration | suppressFor: 1hour |
例: テレビの音量が 1~10 の場合に自動化を開始します。
starters: - type: device.state.Volume device: TV - Living room state: currentVolume greaterThan: 1 lessThan: 10
在宅状態の開始条件
home.state
開始条件を使用すると、在宅か外出中かに基づいてスクリプトを開始できます。これは在宅確認によって検出できます。starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
時刻の開始条件
time
開始条件を使用すると、特定の日時に基づいて自動化を開始できます。time 開始条件では、次の比較用 Key-Value ペアを使用できます。開始条件を止める方法
比較用キー suppressFor
を使用して、一定の期間、開始条件を無視するよう自動化に指示します。たとえば、カメラで人物が検出されて「玄関に誰かが来ました」との通知を受けた場合に、次の 10 分間はカメラが人物を検出しても再度通知しないよう設定できます。
例: 朝、初めて誰かが玄関を通り抜けたときに、すべてのブラインドを開け、次の 20 時間はこの開始条件を止めます。
metadata:
name: Open Blinds
description: Open blinds in the morning after motion detected
automations:
starters:
- type: device.event.MotionDetection
device: Camera - Hallway
suppressFor: 20hours
condition:
type: time.between
after: 5:00
before: 12:00
actions:
- type: device.command.OpenClose
openPercent: 100
devices:
- Blinds1 - Living Room
- Blinds2 - Family Room
条件(conditions)
and
、or
、not
と組み合わせてより複雑な条件チェックを表現することも可能です。type: or conditions: - type: time.between before: sunrise after: sunset weekdays: - MON - TUE - type: device.state.Volume device: My TV - Living Room state: currentVolume greaterThan: 1 lessThan: 10
この例では、1 つの time 条件と 1 つの device.state
条件があります。このスクリプトは、月曜日または火曜日の日没から日の出までの間、またはテレビの音量が 1~10 の場合に実行されます。
使用できる条件のタイプは次のとおりです。
条件演算子
AND 条件
and
条件を使用すると、スクリプトはすべての子条件が満たされた場合にのみ実行されます。
例: テレビの電源がオンになっていて、かつ午後 6 時以降の場合に自動化を開始します。
condition: type: and conditions: - type: device.state.OnOff device: TV - Living Room state: on is: true - type: time.between after: 6:00 pm
OR 条件
or
条件を使用すると、スクリプトは子条件のいずれかが発生した場合に実行されます。
例: テレビの電源がオンの場合、または午後 6 時以降の場合に自動化を開始します。
condition: type: or conditions: - type: device.state.OnOff device: TV - Living Room state: on is: true - type: time.between after: 6:00 pm
NOT 条件
not
条件を使用すると、スクリプトは子条件が発生した場合に実行されません。
例: 時刻が午後 6 時から午後 8 時の間でなければ自動化を開始します。
condition: type: not condition: type: time.between after: 6:00pm before: 8:00pm
デバイスの状態の条件
device.state
条件を使用すると、スクリプト開始時のデバイスの状態に基づいて、スクリプトを実行するタイミングを制限できます。device.state
条件は device.state
開始条件と似ていますが、開始のタイミングを指定するのではなく、スクリプトを実行できる状況を制限します。device.state
の後に状態を追加します。たとえば、デバイスがオンになっているかどうかを確認するには、device.state.OnOff
を使用します。device.state
条件を使用するには、まず type
、device
、state
の 3 つのキーを記述し、その後に 1 つ以上の比較用 Key-Value ペアを追加します。キー | 値 | 例 |
---|---|---|
type |
device.state で始まる、デバイスの状態の条件 |
device.state.OnOff |
device |
Google Home アプリに部屋の名前とともに表示されるデバイス名(Device name - Room name ) |
Chromecast - Living Room |
state |
確認する開始条件の状態。 Google Home Developer Centerで、使用するデバイスの状態の条件を検索します。 |
state: on |
ヒント: デバイスで利用できるデバイスの状態を確認するには、スクリプトでまず「device:
」キーを入力し、次に「type:
」キーを入力します。予測入力機能により、そのデバイスで利用できる状態が一覧表示されます。
device.state
条件では、次の比較用 Key-Value ペアを使用できます。
比較用キー | サポートされている値の型 | 例 |
---|---|---|
is |
String | Number | Bool | Dynamic | is: on |
isNot |
String | Number | Bool | Dynamic | isNot: cast |
greaterThan |
String | Number | Bool | Dynamic | greaterThan: 1 |
lessThan lessThanOrEqualTo |
String | Number | Bool | Dynamic | lessThan: 10 |
例: エアコンで 55% を超える湿度が検出された場合に自動化を開始します。
condition: type: device.state.TemperatureSetting device: My Thermostat - Living Room state: thermostatHumidityAmbient greaterThan: 55
在宅状態の条件
home.state.HomePresence
条件を使用すると、在宅か外出中かに応じてスクリプトを実行するタイミングを制限できます。home.state.HomePresence
条件を使用するスクリプトを作成する前に、Google Home アプリで在宅確認を設定し、在宅確認が問題なく動作することを確認してください。在宅状況は、家族のスマートフォンの場所、一部の Google Nest デバイスのセンサー、または Google Home アプリでの在宅と外出の手動切り替えに基づいて判断されます。在宅確認および在宅と外出のルーティンについて詳しくは、以下の記事をご覧ください。
home.state.HomePresence
条件では、次の比較用 Key-Value ペアを使用できます。比較用キー | サポートされている値の型 | 例 |
---|---|---|
is |
String(「HOME」または「AWAY」) | is: away |
isNot |
String(「HOME」または「AWAY」) | isNot: HOME |
for |
Duration | for: 30min |
suppressFor |
Duration | suppressFor: 1hour |
例: 在宅の状態が「HOME」に設定されている場合に、home.state.HomePresence
条件によって自動化が開始されます。
condition: type: home.state.HomePresence state: homePresenceMode is: HOME
アクション(actions)
スクリプトの actions セクションには、デバイスで自動化したいアクションを記述します。複数のアクションを含めるには、各アクションをキー「- type:
」で始めます。スクリプトを実行するには、少なくとも 1 つのアクションが必要です。ほとんどのアクションは device.command
で始まります。
使用できるアクションのタイプは次のとおりです。
アシスタントのアクション
スピーカーやディスプレイで assistant.command
アクションを使用すると、「照明を全部消して」や「天気情報を教えて」などのアクションをアシスタントで実行できます。
アシスタントのコマンドを使用すると、デバイス名を具体的に指定することなく、各部屋のデバイスや家全体のデバイスを操作できます。このコマンドは Google Home アプリに今後追加されるデバイスでも自動的に動作するため、時間の節約につながります。アシスタント コマンドでアクションを実行するには、対応するスピーカーまたはディスプレイが必要です。
actions: - type: assistant.command.OkGoogle okGoogle: リビングの照明をつけて devices: My Speaker - Room Name
actions: - type: assistant.command.OkGoogle okGoogle: 照明を全部消して devices: My Speaker - Room Name
actions: - type: assistant.command.Broadcast devices: - My Speaker 1 - Room Name - My Speaker 2 - Room Name message: 夕ご飯の時間です
アシスタントのアクションでは、次のようなカスタム アクションを行うこともできます。
- 「YouTube Music からアデルの Hello を寝室のスピーカーで再生して」
- 「YouTube のかわいらしい猫の動画をリビングのディスプレイで再生して」
- 「明日の天気は?」
- 「面白いこと言って」
- 「ホームオフィスのディスプレイで私道のカメラを見せて」
デバイスのアクション
device.command
アクションを使用すると、デバイスの操作や調整ができます。アクションの各コマンドには、それぞれ固有の特性と構造のセットがあります。スクリプトにコマンドを追加するには、「device.command
」の後にデバイスに対するコマンド アクションを追加します。たとえば、デバイスをオンにするには device.command.OnOff
を使用します。device.command
アクションには次の情報を含める必要があります。キー | 値 | 例 |
---|---|---|
type |
device.command で始まる、デバイスのアクション |
device.command.OpenClose |
devices |
Google Home アプリに部屋の名前とともに表示されるデバイス名(Device name - Room name)。複数のデバイスを含めるには、リストを作成します。 | Blinds - Bedroom |
ヒント: お使いのデバイスで利用可能なアクションやコマンドを確認するには、まずキー「device:」を入力し、次にキー「type:」を入力すると、予測入力機能により、そのデバイスで利用できるアクションが一覧表示されます。
device.command
アクションの多くは、コマンドに必要な入力を指定する追加のキーがあります。たとえば、device.command.ThermostatTemperatureSetpoint
の場合、新しい設定温度をエアコンに伝えるために、thermostatTemperatureSetpoint
Key-Value ペアが必要です。
コマンドの使用方法について詳しくは、Google Home Developer Center で関連するアクションを検索し、使用するアクションの構造を確認してください。
例: リビングのテレビの電源をオンにします。
actions: type: device.command.OnOff devices: TV - Living room on: true
例: 照明をオンにして、5 分後にオフにします。
actions:
- type: device.command.OnOff
devices: Light A - Living Room
on: true
- type: time.delay
for: 5min
- type: device.command.OnOff
devices: Light A - Living Room
on: false
通知のアクション
home.command.Notification
アクションを使用すると、スクリプトから家のメンバーのモバイル デバイスに通知が送信されます。たとえば、スマートプラグに接続されている家電がオフになったり、オフラインになったりした場合に、通知を受け取ることができます。
actions: - type: home.command.Notification members: - Alex - cloudysanfrancisco@gmail.com - Kim - jeffersonloveshiking@gmail.com title: It’s movie time! body: Join me in the living room
時間のアクション
time.delay
アクションを使用すると、リスト内のすべてのアクションを同時に実行するのではなく、2 つのアクションを一定の時間差をつけて実行するスクリプトを作成できます。スクリプトには時間差を複数追加できます。たとえば、スクリプトの各アクションを 10 秒ずつ遅らせて開始することが可能です。actions: - type: device.command.OnOff devices: - Bedside Lamp - Bedroom - Ceiling Light - Bedroom on: true - type: time.delay for: 30sec - type: device.command.OnOff devices: - Bedside Lamp - Bedroom - Ceiling Light - Bedroom on: false
リソース
スクリプトの記述演習
まず、「テレビの電源がオンになったときに照明をオフにする」という非常にシンプルで一般的な自動化を作成します。
- home.google.com/automations を開き、アカウントにログインします。
- [新たに追加 ] をクリックします。
- メタデータ情報を入力します。このスクリプトでは、名前は
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.
- 開始条件を追加するには、新しい行を作成し、2 つのスペースまたは 1 つのタブでインデントし、「
starters:
」と入力します。次の行で、もう一度インデントして、「- type:
」と入力します。ヒント:- 新しい行を作成するには、Shift Enter キーを押します。
- 複数の開始条件を指定するには、各開始条件の先頭にハイフンとスペースを入力する必要があります。
metadata: name: TV on lights off description: Turn off lights when TV turns on automations: starters: - type:注: スクリプト エディタでは、使用可能な開始条件に基づいて予測入力候補が表示されるため、構造に合わせて簡単に入力できます。候補から選択するには、キーボードの矢印キーを使用して選択し、Enter キーを押すと、挿入されます。
device.state
開始条件を追加します。なお、device.state 開始条件を使用するには、type
、device
、state
の 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 のときに自動化を開始します。この変更を行うため、状態
OnOff
をVolume
に置き換えて、この新しい属性に合わせて 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
- type =
- [保存] をクリックすると、いつでもスクリプトを保存できます。スクリプトを保存すると、スクリプトの検証とエラーのチェックが自動的に行われます。無効なスクリプトは実行できません。
- 次に、スクリプトにアクションを追加します。アクションを追加するには、新しい行を作成し、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:
- 照明をオフにするには、
device.command
アクションを使用します。device.command アクションを使用するために、次の情報を追加します。- type =
device.command.OnOff
。これは、コマンドまたはアクションの名前です。注: デバイスの下に複数のコマンドをネストして、コマンドごとに固有の状態を指定できます。 - devices =
Floor Lamp - Living Room
とOverhead 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
- type =
- [保存] をクリックして、スクリプトを保存します。エラーがなければ、スクリプトは自動的に有効になり、テレビの電源をオンにすると常に照明が消えるようになります。まだスクリプトを実行する準備ができていない場合は、[有効にする] をオフにしてスクリプトを一時停止します。
スクリプト作成をさらに練習するには、開始条件、データ型、複数のアクションを変更したり、time.between
などの条件を追加したりしてみましょう。スクリプト例や Codelab を見て、さらに詳しく学ぶこともできます。開始条件、アクション、条件について詳しくは、Google Home Developer Center をご覧ください。
スクリプトによる自動化に関するヘルプ
- Google Home Automation コミュニティでは、スクリプトに関するヘルプを探したり、他のユーザーの取り組みから学んだりできます。
- 自動化を機能させるには、スクリプトで有効なコードを使用する必要があります。エラーが存在する場合は、メッセージが表示されます。詳しくは、スクリプト エディタのエラーと警告についての説明をご覧ください。
- コードを検証するには、スクリプト エディタで [検証] をクリックまたはタップするか、スクリプトを保存してみます。よくあるエラーをいくつかご紹介します。
- 「デバイス名 - 部屋の名前」の形式で正しいデバイス名を使用していることを確認します。正しい名前がわからない場合は、Google Home アプリでデバイスの名前を確認してください。
- 実行させたい機能がデバイスでサポートされていることを確認します。予測入力を使用して、使用可能なオプションを見つけることもできます。
- アクションが含まれていることを確認します。自動化を実行するにはアクションが必要です。
- スクリプトを保存しても自動化が期待どおりに動作しない場合は、スクリプト内の各コンポーネントが機能していることを手動で確認します。たとえば、日没時にライトを点灯して明るさを変更するスクリプトを記述した場合は、アシスタント コマンドを使ってこれらのタスクを行ってみて、個々の機能が動作することを確認します。以下も確認してください。
- Google Home アプリでデバイスが追加またはリンクされている。
- デバイスが接続され、オンラインになっている。
- デバイス名、開始条件、条件、アクションが正しく記述されている。
注: メーカーによるアップデートの実施時にデバイス トレイトが変更されることがあり、これによりスクリプトが機能しなくなる可能性があります。影響を受けたスクリプトを更新する際は、予測入力機能を使用すると便利です。 - スクリプトのインデントと形式が適切である。
- Google Home for web では、スクリプトの下にある自動化ログ にアクセスして、自動化の履歴を表示し、潜在的な問題を特定することもできます。詳しくは、自動化ログに表示されるメッセージの種類に関する記事をご覧ください。
- 自動化を作成する際はスクリプト エディタの試験運用中の生成 AI 機能をお試しください。スクリプトの下書きが作成され、確認、編集できるようになります。
- ルーティンの基本とトラブルシューティング方法について、詳細をご確認ください。
- スクリプトによる自動化を作成、編集する方法について、詳細をご確認ください。