Android の Automation API の概要

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

Google Home エコシステムの自動化は、Android 用の Home API を通じて利用できるようになりました。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