Android の Automation API の概要

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

現在、Google Home エコシステムの自動化は、Android 用 Home API を通じて利用できます。 GHA ルーティンと script editor で使用されている基本的なコンセプトは同じですが、 Home API を通じてのみ可能な機能が強化されています。 たとえば、次のような機能があります。

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

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

デバイスと構造 API または Automation API を使用してアプリで使用するトレイトとタイプは、初期化時に登録する必要があります。詳しくは、 Android でホームを初期化するをご覧ください。

ユーザーが完全な権限を取り消した場合のガイダンス

ユーザーが完全な権限を取り消すと、既存の自動化はすべて機能しなくなります。また、ユーザーが特定のデバイスへのアクセスを取り消すと、それらのデバイスに関連付けられたスターター、条件、アクションは機能しなくなります。

アプリが起動するたびに、権限が有効になっていることを確認してください。権限が取り消された場合は、アプリケーションにキャッシュされているデータを含め、以前のデータがすべて削除されていることを確認してください。

デベロッパー ジャーニー

Automation API は、大規模な開発手順の一部です。ユーザーが自動化を使用できるように、構造 API とデバイス API を統合した後に使用します。

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

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

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

自動化の提案

Home API は、 Structureなどの要素 に基づいて、スペースに存在するデバイスタイプなどの自動化を提案できます。

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

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

likeSuggestion()dislikeSuggestion() メソッドは、ユーザーがタップしてフィードバックを提供できる の UI コントロールに接続することを目的としています。

3 つ目のメソッド clearSuggestionFeedback(), を使用すると、ユーザーは提案された自動化に対するフィードバックを削除できます。

ユーザーのフィードバックは、今後の候補に影響します。

リソースに関する上限

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

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