Google I/O 2019で発表された新しいLocal Home SDKは、開発者がホームデバイスをGoogle Assistantに簡単に接続し、ローカルでアクションを実行することで応答性を向上させることを目的としている。開発者プレビューとして利用可能になった。
Google Smart Homeに基づいて、Local Home SDKはスマートホームインテントに対する実行のローカルパスを生成する。開発者は、Google Functionsやその他のリモート実行メカニズムに依存する代わりに、ユーザのローカルネットワークから離れることなく、Google HomeスマートスピーカーまたはNestスマートディスプレイで実行できるローカル実行アプリを作成できるようになった。リモート実行パスは、何らかの理由でローカル実行パスが失敗した場合のバックアップとして利用できる。
新しいLocal Home SDKの中心には、identify
とreachable devices
という2つの新しいインテントがある。前者は、mDNS、UDP、UPnPを使用してユーザのホームネットワークで新しいデバイスが検出されるたびに使用される。デバイスはデバイスIDを送り返す。そのIDはsync
インテントによって返されたIDと比較される。これは、プラットフォームが制御できるデバイスを判定し、ローカルのGoogle HomeスピーカーまたはNestディスプレイに接続できるようになる。デバイスがハブまたはブリッジの場合、そのハブまたはブリッジを介して到達可能なすべてのデバイスに接続するために、reachable devices
インテントが送信される。
インテントの実行の基礎となるメカニズムは、実行がローカルかリモートかをほとんど意識しないため、ローカル実行パスをサポートするためにデバイスを変更する必要はない。ただし、sync
およびexecute
インテントに加えて、identify
インテントおよび/またはreachable devices
インテントを実装する必要がある。
ローカル実行アプリを作成するために、GoogleはTypeScriptを使用することを勧めている。これは、厳密に型付けされたバインディングが利用できることで、プログラマが使用するデータがプラットフォームで期待されるものと一致することを確認する助けになるためである。ただし、プレーンJavaScriptも選択できる。Local Homeアプリは単なるHTMLアプリであるため、Chrome DevToolsはデバッグ目的で使用できる。