로컬 처리

Local Home SDK로 스마트 홈과 Google의 통합을 개선합니다. 경로에 로컬 처리 경로를 추가하여 어시스턴트 스마트 홈 인텐트를 확인하세요.

SDK를 사용하면 TypeScript 또는 JavaScript를 사용하여 로컬 처리 앱을 작성할 수 있습니다. 스마트 홈 비즈니스 로직이 포함되어 있습니다. Google Home 또는 Google Nest 기기는 앱을 실행할 수 있습니다 앱이 기존 스마트 워치와 직접 근거리 통신망 (LAN)의 Wi-Fi를 통해 장치를 사용하여 사용자 명령을 처리하고, 기존 프로토콜에 비해서는 안 됩니다

SDK를 통합하여 스마트 홈의 성능을 개선합니다 짧은 지연 시간, 높은 안정성을 포함한 작업 로컬 처리는 모든 기기 유형과 기기 특성에 대해 지원됩니다. 단, 보조 사용자 확인합니다.

빌드 시작 샘플 사용해 보기

작동 원리 이해

SYNC 응답을 받은 후 로컬 홈 플랫폼은 클라우드 처리에서 mDNS, UDP 브로드캐스트 또는 UPnP를 사용하여 근거리 통신망을 설치하고, 어시스턴트에 연결된 스마트 기기.

플랫폼은 IDENTIFY 인텐트를 전송하여 기기가 다음에 있는지 확인합니다. IDENTIFY 응답에서 기기 ID를 비교하여 로컬에서 제어 가능 이전 SYNC 응답에서 반환한 값으로 반환합니다. 감지된 기기가 플랫폼이 REACHABLE_DEVICES 인텐트를 전송하고 로컬 통신을 위한 프록시 장치로서의 허브입니다

로컬 기기를 확인하는 응답을 수신하면 플랫폼은 사용자의 Google Home 또는 Google Nest 기기에 대한 로컬 처리 경로 사용자 명령어를 사용합니다

사용자가 로컬 처리 경로가 있는 스마트 홈 작업을 트리거하면 어시스턴트가 EXECUTE 전송 인텐트 또는 QUERY 인텐트를 클라우드 처리가 아닌 Google Home 또는 Google Nest 기기 그러면 기기가 로컬 처리 앱을 실행하여 인텐트를 처리합니다.

이 그림은 로컬 처리의 실행 흐름을 보여줍니다. 이
            실행 경로는 다음과 같이 휴대전화에서 사용자 인텐트를 캡처합니다.
            사용자 인텐트는 Google 어시스턴트에 의해
            Google Cloud를 통해 Cloud Storage에 저장된 후 Google Home에서 로컬로
            명령이 기기 허브로 직접 실행되거나
            직접 기기에 보냅니다. Developer Cloud는
            Cloud 대체를 지원합니다
그림 1: 스마트 홈의 로컬 처리 경로 추가 액션.

Local Home 플랫폼은 Google Home과 Google Nest 중 어떤 기기를 사용할지 비결정적으로 선택할 수 있습니다. 명령어를 실행합니다 EXECUTEQUERY 인텐트는 어느 것이든 통과할 수 있습니다. 동일한 Home 그래프에 정의된 Google Home 또는 Google Nest 기기 구조를 대상 기기로 설정합니다.

로컬 처리 앱

로컬 처리 앱에는 근거리 통신망을 통해 스마트 기기에 액세스할 수 있습니다. 하드웨어를 수정해도 로컬 처리를 통합할 필요가 없습니다. 이 앱이 스마트 홈 작업 요청을 이행하기 위해 HTTP, TCP 또는 UDP를 포함하는 애플리케이션 계층 프로토콜을 통해 스마트 기기에 요청을 보낼 수 있습니다 로컬 처리 경로가 실패하면 클라우드 처리 기능이 사용됩니다. 대체 실행 경로로 사용하세요

앱 빌드를 지원하기 위해 Local Home SDK는 클래스:

  • DeviceManager: 다음을 사용하여 스마트 기기와 통신하는 방법을 제공합니다. TCP, UDP 소켓 또는 HTTP 요청이 있습니다
  • App: Google에서 전송하는 인텐트에 핸들러를 연결하는 메서드를 제공합니다. 로컬에서 제어 가능한 기기 (IDENTIFY, REACHABLE_DEVICES)을 입력합니다. 이 클래스는 사용자 명령어 (EXECUTE)도 처리합니다. 현재 기기 상태 (QUERY)에 관한 사용자 쿼리에 답변합니다.

개발 중에 직접 로드하여 앱을 빌드하고 테스트할 수 있습니다. 호스트 서버 또는 로컬 개발 머신입니다. 프로덕션 단계에서는 Google이 앱이 사용자 Google Home 또는 Google Nest 기기의 안전한 JavaScript 샌드박스 환경에서 실행되어야 합니다.

Report State API 는 현재 로컬 처리에서 지원되지 않습니다. Google은 클라우드 처리를 사용하여 이러한 요청을 처리합니다.

애플리케이션 수명 주기

로컬 처리 앱은 로컬 홈 플랫폼에서 검색 시 요청 시 로드됩니다. 프로젝트 스캔 구성과 일치하는 새 로컬 기기가 있거나 대기 중인 기기가 있습니다. 인텐트를 사용하여 이전에 식별된 기기와 관련이 있는 인텐트를 전송합니다.

Google Home 또는 Google Nest 기기의 메모리 부족 및 로컬 처리 앱의 경우 시스템의 메모리 압력으로 인해 언제든지 종료될 수 있습니다. 이렇게 하면 앱에서 메모리를 너무 많이 소비하기 시작하거나 시스템에서 다른 앱을 위한 공간을 확보하세요. Local Home 플랫폼은 새로운 인텐트가 있는 경우에만 앱을 다시 시작합니다. 충분한 메모리 리소스를 제공해야 합니다.

로컬 홈 플랫폼은 유휴 시간 제한 후 사용자가 앱을 언로드합니다. 계정 연결을 해제하거나 로컬을 지원하는 기기가 더 이상 없음 사용자의 agentUserId와 연결된 fulfillment입니다.

지원되는 기기

Local Home 플랫폼은 지원되는 서비스에서 로컬 처리 앱을 실행합니다. Google Home 또는 Google Nest 기기 다음 표에서는 지원되는 기기 및 사용되는 기기입니다. 런타임 요구사항에 대한 자세한 내용은 다음을 참고하세요. 실행 환경.

기기 유형 환경
Google Home 발표자 Chrome
Google Home Mini 발표자 Chrome
Google Home Max 발표자 Chrome
Nest Mini 발표자 Chrome
Nest Hub 디스플레이 Chrome
Nest Hub Max 디스플레이 Chrome
Nest Wifi 라우터 Node.js
Chrome

실행 환경

로컬 처리 앱의 실행 환경은 기기 Local Home 플랫폼은 다음을 지원합니다. 런타임 환경:

소스 코드 구조

따라서 번들러 구성 로컬 홈 SDK에서 제공하고 소스 코드를 즉시 호출되는 함수 표현식 (IIFE)

구현 경로

스마트 홈 통합을 위해 Local Home SDK를 활용하려면 다음 단계를 따르세요. 다음 작업을 수행합니다.

1 검사 설정 구성 다음을 위해 필요한 매개변수로 Actions 콘솔을 구성합니다. 어시스턴트가 로컬에서 제어할 수 있는 기기를 검색합니다.
2 클라우드 처리에서 응답 동기화 클라우드 처리에서 SYNC 요청 핸들러가 플랫폼에서 연결을 설정하는 데 사용하는 otherDeviceIds 필드 로컬 처리 경로를 지정합니다 해당 입력란에 설정 가능한 기기 ID를 지정합니다. 제어할 수 있습니다
3 Google의 로컬 처리 앱 Local Home SDK를 사용하여 다음을 실행할 수 있는 JavaScript 앱을 만듭니다. IDENTIFY 처리 EXECUTE, QUERY 인텐트가 포함됩니다. 허브 또는 브리지 프록시 장치의 경우 REACHABLE_DEVICES 인텐트도 처리합니다.
4 앱 테스트 및 디버그 다음을 사용하여 통합 (또는 자체 인증)을 테스트합니다. Google Home 테스트 모음

시작하기 전에