Android の Automation API の概要

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

現在、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 は、大規模な開発プロセスの 1 つの要素です。ユーザーが自動化を使用できるように、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 は、 Structureなどの要素 に基づいて、スペースに存在するデバイスタイプなどの自動化を提案できます。

自動化の候補は AutomationSuggestion クラスで表されます。

Structure インターフェースには、HasSuggestions インターフェースが含まれています。このインターフェースは、自動化の候補のコレクションを返す suggestions() 関数を提供します。

リソースに関する上限

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

表: Automation API のリソース上限
指標 上限
構造あたりの自動化の最大数 64
自動化あたりのノードの最大数 128
自動化あたりの式ノードの最大数 64
構造あたりの自動化インスタンスの最大数 1024
構造あたりのデベロッパーあたりの 構造あたりの自動化インスタンスの最大数 64
構造あたりの 1 日あたりの実行回数の最大数 1024
構造あたりのデベロッパーあたりの 1 日あたりの実行回数の最大数 128