自動化は、家の中のタスクとデバイスの設定を自動化する方法です。 自動化は、Google Home エコシステムで、 Google Home app (GHA)のルーティンとして、またautomation script editorの Google Home for webを通じて利用できるようになりました。
現在、Google Home エコシステムの自動化は、Android 用 Home API を通じて利用できます。 ルーティンと script editor で使用されている基本的なコンセプトは同じですが、Home API を通じてのみ可能な機能が強化されています。たとえば、次のような機能があります。GHA
- Home API に表示される、デバイスのすべての Matter 標準トレイトと smart home トレイトにアクセスできます。
- 順次実行、並列実行、選択実行フローをサポートしています。
自動化は、Kotlin で自動化を構築するために設計されたドメイン固有言語である Automation DSL を使用して記述されます。
デバイスと構造体 API または Automation API を使用してアプリで使用するトレイトと型は、初期化時に登録する必要があります。Android でホームを初期化するをご覧ください。
ユーザーが完全な権限を取り消した場合のガイダンス
ユーザーが完全な権限を取り消すと、既存の自動化はすべて機能しなくなります。また、ユーザーが特定のデバイスへのアクセスを取り消すと、それらのデバイスに関連付けられているスターター、条件、アクションは機能しなくなります。
アプリが起動するたびに、権限が有効であることを確認してください。権限が取り消された場合は、アプリケーションにキャッシュされているデータを含め、以前のデータがすべて削除されていることを確認してください。
デベロッパーが実施する手順
Automation API は、大規模な開発プロセスの 1 つの要素です。ユーザーが自動化を使用できるように、構造体 API とデバイス API を統合した後に使用します。
- デベロッパーは自動化を計画し、Automation DSL を使用して定義します。
- デベロッパーは、自動化の定義を Kotlin Android アプリに埋め込みます。
- アプリは、Discovery API またはデバイス API を使用して収集したデバイスに関する情報(トレイト、属性、コマンド、イベントなど)に基づいて、自動化をユーザーに提示します。
- Discovery API を使用すると、アプリはユーザーの入力の有無にかかわらず、ユーザーの構造体にあるデバイスタイプとトレイトに合わせてカスタマイズされた自動化のドラフトを生成できます。
- デバイス API は Discovery API とほぼ同じ情報を提供できますが、自動化のユースケース向けに最適化されていません。詳しくは、 デバイス API と Discovery API の比較 をご覧ください。
- アプリは、選択した構造体にキー設定された実際の自動化を作成します。
- 自動化はユーザーの構造体で利用できるようになり、構造体 API メソッドを使用して実行または削除できます。
ユーザーは、いつでも自動化の新しいインスタンスを作成できます。その際、別の構造体を選択したり、アプリのロジックに応じて別のデバイスセットを選択したりできます。ユーザーが新しいインスタンスを作成するたびに、アプリは自動化の新しいインスタンスを生成します。
最も基本的なシナリオでは、比較的簡単なタスクを実行する事前定義された自動化をユーザーに提案できます。または、ユーザーがニーズに合わせてカスタマイズできる自動化のスケルトンを提示することもできます。また、Automation API で利用可能なすべてのビルディング ブロックを使用して、複雑な自動化を構築できるオープンエンドの自動化エディタを作成することもできます。
自動化の提案
Home API は、
Structureなどの要素
に基づいて、スペースにあるデバイスタイプなどの自動化を提案できます。
自動化の候補は
AutomationSuggestion
クラスで表されます。
Structure インターフェース
には、
HasSuggestions
インターフェースが含まれています。このインターフェースは、自動化の候補のコレクションを返す
suggestions()
関数を提供します。
likeSuggestion()
と
dislikeSuggestion()
メソッドは、ユーザーがタップしてフィードバックを提供できる
UI コントロールと
UI コントロールに接続することを目的としています。
3 つ目のメソッド
clearSuggestionFeedback(),
を使用すると、ユーザーは提案された自動化に対するフィードバックを削除できます。
ユーザーのフィードバックは、今後の候補に影響します。
リソースに関する上限
Home API の自動化には、次の上限が適用されます。
| 指標 | 上限 |
|---|---|
| 構造体あたりの自動化の最大数 | 64 |
| 自動化あたりのノードの最大数 | 128 |
| 自動化あたりの式ノードの最大数 | 64 |
| 構造体あたりの自動化インスタンスの最大数 | 1024 |
| 構造体あたりのデベロッパーあたりの自動化インスタンスの最大数 | 64 |
| 構造体あたりの 1 日あたりの実行回数の最大数 | 1024 |
| 構造体あたりのデベロッパーあたりの 1 日あたりの実行回数の最大数 | 128 |