로컬 처리 경로는 Google에서 로컬에서 제어 가능한 기기를 클라우드 처리의 SYNC
응답에서 반환된 기기와 일치시키면 설정됩니다.
Google이 로컬 네트워크에서 기기를 검색하고 로컬 처리 경로를 설정할 수 있도록 하려면 Actions 콘솔에 검색 정보를 추가해야 합니다.
또한 Google에 로컬에서 제어 가능한 기기를 알리기 위해 클라우드 처리의 SYNC
응답을 업데이트해야 합니다.
스캔 구성 정보 설정
검색 정보를 지정하려면 다음 단계를 따르세요.
Google Home Developer Console에서 Cloud-to-cloud 통합으로 이동합니다.
화면 왼쪽의 프로젝트 > 클라우드 간으로 이동한 다음 통합에 대해 수정을 선택합니다. 설정 및 구성 페이지에서 로컬 처리로 스크롤하여 설정을 사용 설정합니다. 각 테스트 URL 필드에 다음 URL을 입력하고 프로젝트 ID를 입력한 후 저장을 클릭합니다.
https://<project-id>.web.app/local-home/index.html
기기 검색에서 + 스캔 구성 추가를 클릭하여 새 스캔 구성을 추가합니다.
드롭다운에서 검사 일치 프로토콜 유형을 선택하고 Google에서 검사할 값을 입력합니다.
다음 표에는 Google에서 기기 스캔에 사용할 프로토콜에 따라 추가할 수 있는 속성이 나와 있습니다.
속성 | 설명 | 예시 값 |
---|---|---|
서비스 이름 |
필수 항목입니다. 기기에서 게시한 서비스 이름이며 service.domain 형식입니다.
|
_http._tcp.local |
이름 |
필수 항목입니다. |
my-device-[0-9]{4}\._http\._tcp\.local |
속성 | 설명 | 예시 값 |
---|---|---|
서비스 유형 |
필수 항목입니다. UPnP 서비스의 정규화된 식별자이며 domain:service:type:version 형식입니다.
|
schemas-upnp-org:service:SwitchPower:1 |
OUI |
선택사항입니다. 조직 고유 식별자 기기 제조업체를 식별하는 24비트 값입니다. 일반적으로 기기 MAC 주소의 처음 세 옥텟입니다. |
1A:2B:3C |
속성 | 설명 | 예시 값 |
---|---|---|
디스커버리 주소 | 필수 항목입니다. UDP 브로드캐스트의 대상 IP 주소입니다. | 255.255.255.255 |
브로드캐스트 포트 | 필수 항목입니다. UDP 브로드캐스트의 대상 포트입니다. | 5555 |
수신 포트 | 필수 항목입니다. UDP 검색 응답의 수신 대기 포트입니다. | 5556 |
검색 패킷 | 필수 항목입니다. UDP 브로드캐스트로 전송할 페이로드입니다. 16진수로 인코딩된 바이트 문자열 형식입니다. |
48454C4C4F |
클라우드 처리에서 SYNC 응답 업데이트
SYNC
인텐트는 사용자가 제어하는 기기와 기기의 기능을 어시스턴트에 보고합니다.
로컬 처리를 지원하기 위해 Local Home 플랫폼은 스마트 홈 작업의 클라우드 처리에서 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": "..." } }] } }