Android の Automation API の概要

自動化とは、家の中でのタスクやデバイスの設定を自動化する方法です。自動化は、Google Home エコシステムの Google Home app (GHA) のルーティンと Google Home for webautomation script editor で利用可能でした。

これで、Android 向け Home API を使用して Google Home エコシステムの自動化を利用できるようになりました。GHA ルーティンと script editor で使用されている基本コンセプトと同じですが、Home API でのみ利用できる次のような機能が強化されています。

  • Home API で示されているように、デバイスのすべての Matter 標準属性と smart home 属性にアクセスできます。
  • 順序実行フロー、並列実行フロー、選択実行フローをサポート。

自動化は、Kotlin で自動化を構築するために設計されたドメイン固有言語である Automation DSL を使用して記述されます。

Device & Structure API または Automation API でアプリで使用する特徴と型は、初期化時に登録する必要があります。Android でホームを初期化するをご覧ください。

デベロッパーが実施する手順

Automation API は、より大きな開発プロセスの一部です。これは、ユーザーが自動化を使用するときに使用できるように、Structure API と Device API を統合した後です。

  1. デベロッパーは自動化を計画し、Automation DSL を使用して自動化を定義します。
  2. デベロッパーは、自動化定義を Kotlin Android アプリに埋め込みます。
  3. アプリは、Discovery API または Device API を使用して収集されたデバイスに関する情報(特性、属性、コマンド、イベントなど)に基づいて、自動化をユーザーに提示します。
    1. Discovery API を使用すると、ユーザーの入力の有無にかかわらず、ユーザーの構造に存在するデバイスの種類と特性に合わせてカスタマイズされた自動化の下書きをアプリが生成できます。
    2. Device API は Discovery API と同じ情報をほとんど提供できますが、自動化のユースケース向けに最適化されていません。詳細については、Device API と Discovery API の比較をご覧ください。
  4. アプリは、選択した構造にキー付けされた実際の自動化を作成します。
  5. 自動化はユーザーの構造で使用可能になり、Structure API メソッドを使用して実行または削除できるようになりました。

ユーザーは、いつでも自動化の新しいインスタンスを作成し、別の構造を選択できます。また、アプリのロジックによっては、別のデバイスセットを選択することもできます。実行するたびに、アプリは自動化の新しいインスタンスを生成します。

最も基本的なシナリオでは、比較的基本的なタスクを実行する事前定義された自動化をユーザーに提案できます。または、ユーザーがニーズに合わせてカスタマイズできる自動化のスケルトンを表示することもできます。または、Automation API で利用可能なすべての構成要素を使用して、ユーザーが複雑な自動化を構築できるように、オープンエンドの自動化エディタを作成することもできます。

リソースに関する上限

Home API の自動化には、次の上限が適用されます。

表: Automation API リソースの上限
指標 上限
ストラクチャあたりのオートメーションの最大数 64
自動化あたりのノードの最大数 128
自動化あたりの式ノードの最大数 64
構造体あたりの自動化インスタンスの最大数 1024
デベロッパーあたりの構造あたりの自動化インスタンスの最大数 64
1 日あたりの構造体あたりの最大実行数 1024
デベロッパーあたりの構造体あたりの 1 日あたりの最大実行数 128