Google がクラウド フルフィルメントからの SYNC
レスポンスで返されたデバイスとローカルで制御可能なデバイスを一致させると、ローカル フルフィルメント パスが確立されます。
Google がローカル ネットワーク上でデバイスを検出してローカル フルフィルメント パスを確立できるようにするには、Actions Console で検出情報を追加する必要があります。また、クラウド フルフィルメントからの SYNC
レスポンスを更新して、ローカルで制御可能なデバイスに関する情報を Google に伝えることも必要です。
スキャン設定情報をセットアップする
検出情報を指定するには、次の手順に従ってください。
Google Home Developer Console で Cloud-to-cloud 統合に移動します。
画面の左側で [プロジェクト] > [クラウド間] に移動し、統合の [編集] を選択します。[設定] ページで [ローカル フルフィルメント] までスクロールし、設定をオンに切り替えます。各テスト URL フィールドに次の URL を入力し、プロジェクト ID を挿入して [Save] をクリックします。
https://<project-id>.web.app/local-home/index.html
[デバイス検出] で [+ スキャン構成を追加] をクリックして、新しいスキャン構成を追加します。
プルダウンからスキャン一致プロトコル タイプを選択し、Google がスキャンする値を入力します。
次の表は、デバイスのスキャンに使用するプロトコル別に、追加できる属性を示したものです。
属性 | 説明 | 値の例 |
---|---|---|
サービス名 |
必須。デバイスで公開されるサービス名(service.domain 形式)。
|
_http._tcp.local |
名前 |
必須。一意のサービス インスタンス用のフィルタ( |
my-device-[0-9]{4}\._http\._tcp\.local |
属性 | 説明 | 値の例 |
---|---|---|
サービスの種類 |
必須。UPnP サービスの完全修飾 ID(domain:service:type:version 形式)。
|
schemas-upnp-org:service:SwitchPower:1 |
OUI |
省略可。組織に固有の識別子。 デバイスのメーカーを識別する 24 ビットの値。 通常、デバイスの MAC アドレスの最初の 3 オクテットです。 |
1A:2B:3C |
属性 | 説明 | 値の例 |
---|---|---|
検出アドレス | 必須。UDP ブロードキャストの宛先 IP アドレス。 | 255.255.255.255 |
ブロードキャスト ポート | 必須。UDP ブロードキャストの宛先ポート。 | 5555 |
リッスンポート | 必須。UDP 検出応答のリッスンポート。 | 5556 |
検出パケット | 必須。UDP ブロードキャストで送信するペイロード。 バイトの 16 進数でエンコードされた文字列の形式。 |
48454C4C4F |
クラウド フルフィルメントで SYNC レスポンスを更新する
SYNC
インテントは、ユーザーが操作するデバイスとその機能をアシスタントに報告します。
ローカル フルフィルメントをサポートするため、ローカルホーム プラットフォームは、スマートホーム アクションのクラウド フルフィルメントからの SYNC
レスポンスをチェックし、otherDeviceIds
フィールド内のデバイス ID と IDENTIFY
ハンドラによって返された検証 ID を照合します。otherDeviceIds
フィールドのないデバイス エントリは、ローカル フルフィルメントから除外されます。
SYNC
レスポンスの otherDeviceIds
フィールドに、ローカルで制御可能なスマートホーム デバイスのデバイス ID を設定する必要があります。このフィールドはレスポンスの device
レベルにあります。Google では、指定された ID を持つすべてのデバイスでローカル フルフィルメント パスを確立できます。
customData
フィールドを使用して、Google がスタンドアロン デバイスに接続する、またはハブを使用してエンドデバイスをターゲットとする場合に必要となる追加データ(ポート番号やその他のプロトコル固有の情報など)を指定します。
例
次のスニペットに、SYNC
ハンドラの作成方法を示します。
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [{ "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "name": "Night light" }, "willReportState": false, "otherDeviceIds": [{ "deviceId": "local-device-id" }], "customData": { "port": 5555, "authToken": "..." } }] } }