설명된 단계에 따라 로컬 처리 앱을 빌드하는 것이 좋습니다. 먼저 자체 호스팅 환경에서 스마트 홈 통합을 테스트하세요 다음 단계를 따르세요.
자체 호스팅 환경에서 로컬 처리 앱을 만들 수 있습니다 다음 스니펫은 정적 HTML 파일의 예를 보여줍니다. Google Cloud의 API입니다
<html> <head> <!-- Local Home SDK --> <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script> <!-- Local app under development --> <script src="local_execution.js"></script> </head> </html>
Chrome에서 디버그합니다. 중단점과 로그를 사용하여 다음을 수행합니다. 통합 문제를 해결할 수 있습니다
TypeScript 코드를 수정하고 컴파일한 후 이 단계를 반복합니다.
이 빌드 및 테스트 프로세스를 반복하면 변경사항이 어떻게 적용되는지 확인할 수 있습니다. 코드 문제를 빠르고 더 쉽게 포착하고 디버그할 수 있습니다.
기기 제어 테스트
작업 콘솔에서 웹 앱의 URL을 지정해야 합니다. 로컬 처리 중에 Google Home 또는 Google Nest 기기에 로드되는 HTML을 제공합니다.
로컬 처리로 기기 제어를 테스트하려면 다음 단계를 따르세요.
Chrome
- Actions 콘솔에서 스마트 홈 프로젝트를 엽니다.
- 왼쪽 탐색 메뉴에서 작업을 클릭합니다.
- Local Home SDK 구성 (선택사항)에서 > Chrome의 테스트 URL을 입력하고 개발 서버를 지정합니다. 로컬 처리 앱을 실행하는 HTML을 제공하는 URL입니다.
- 저장을 클릭합니다. Google에서 인증을 완료하는 데 최대 30분이 걸릴 수 반영해야 합니다
- 테스트한 Google Home 또는 Google Nest 기기를 재부팅합니다.
- 스마트 기기에 명령어를 실행합니다. 예를 들어 기기가 OnOff 트레잇을 구현합니다. "Hey Google, 조명 켜 줘"라고 말하면 됩니다.
Node.js
- Actions 콘솔에서 스마트 홈 프로젝트를 엽니다.
- 왼쪽 탐색 메뉴에서 작업을 클릭합니다.
- Local Home SDK 구성 (선택사항)에서 > 노드의 테스트 URL을 입력하고 개발 서버를 지정합니다. 로컬 처리 앱을 실행하는 JavaScript를 제공하는 URL입니다.
- 저장을 클릭합니다. Google에서 인증을 완료하는 데 최대 30분이 걸릴 수 반영해야 합니다
- 테스트한 Google Home 또는 Google Nest 기기를 재부팅합니다.
- 스마트 기기에 명령어를 실행합니다. 예를 들어 기기가 OnOff 트레잇을 구현합니다. "Hey Google, 조명 켜 줘"라고 말하면 됩니다.
기기에서 사용하는 런타임에 대한 자세한 내용은 지원됨 기기를 참고하세요.
Chrome에서 디버깅
Chrome을 사용하여 로컬 처리 앱을 디버그할 수 있습니다. DevTools를 사용합니다. 디버그하기 전에 확인해야 합니다.
- 콘솔에서 개발 URL을 Google Home 또는 Google Nest 기기 (근거리 통신망 또는 인터넷 사용)
- 컴퓨터가 테스트 중인 Google Home 또는 Google Nest 기기
- 네트워크가 기기 간의 패킷을 차단하지 않습니다.
- Actions 콘솔에서 동일한 Google 계정으로 로그인되어 있음 Google Home 또는 Google Nest 기기에서
- 클라우드에서 SYNC 응답을 업데이트했습니다.
fulfillment를 참조하세요.
otherDeviceIds
필드에 하나 이상의 유효한 값을 반환해야 합니다. - 올바른 스캔 구성을 입력했습니다. 정보 확인할 수 있습니다
로컬 처리 앱을 Chrome DevTools 디버거에 연결하려면 다음 단계를 따르세요. 다음 단계를 따르세요.
Chrome
- 로컬 개발 머신에서 Chrome 브라우저:
- Chrome 브라우저의 주소 입력란에서 Chrome Inspector를 실행합니다.
chrome://inspect#devices
을 입력합니다. 사용 중인 기기에 기기 목록이 HTML 파일이 테스트 이름 아래에 표시되어 있어야 합니다. Google Home 또는 Google Nest 기기 - HTML 아래에 있는 파란색 검사 링크를 클릭하여 Chrome DevTools를 실행합니다. 콘솔 탭으로 전환합니다. Local Home 플랫폼에서 앱 버전과 Local Home SDK를 출력합니다. 확인할 수 있습니다 로그가 표시되면 Google에 연결할 수 있는지 확인해야 합니다. 그렇지 않은 경우 Google Home 또는 Google Nest 기기를 재부팅합니다. <ph type="x-smartling-placeholder">
Node.js
- 로컬 개발 머신에서 Chrome 브라우저:
- 테스트 기기의 로컬 IP 주소를 확인합니다.
- Chrome 브라우저의 주소 입력란에서 Chrome Inspector를 실행합니다.
chrome://inspect#devices
을 입력합니다. - 구성...을 선택하여 타겟 탐색 설정을 엽니다. <ph type="x-smartling-placeholder">
- 목록에
DEVICE_IP_ADDRESS:9222
를 입력하고 완료를 클릭합니다. - 스크립트 아래에 있는 파란색 검사 링크를 클릭하여 Chrome DevTools를 실행합니다. 콘솔 탭으로 전환합니다. Local Home 플랫폼에서 앱 버전과 Local Home SDK를 출력합니다. 확인할 수 있습니다 로그가 표시되면 Google에 연결할 수 있는지 확인해야 합니다. 그렇지 않은 경우 Google Home 또는 Google Nest 기기를 재부팅합니다.
기기에서 사용하는 런타임에 대한 자세한 내용은 지원됨 기기를 탭합니다.
디버깅 도움말
디버깅 중에 유의해야 할 몇 가지 추가 사항은 다음과 같습니다.
- 동일한 기기에서 여러 대의 Google Home 또는 Google Nest 기기를 테스트 계정에 연결하지 마세요. 로컬 네트워크. 타겟팅할 Google Home 또는 Google Nest 기기를 제어할 수 없게 됩니다. 사용하여 요청을 처리합니다
- Chrome DevTools에서 페이지를 새로고침하여 로컬 처리 앱 컨테이너를 새로고침합니다.
개발 URL의 최신 코드로 대체합니다. 이렇게 해도
플랫폼 인텐트를 다시 트리거하는 데 필요할 수 있는 로컬 홈 플랫폼
(예:
IDENTIFY
)를 호출합니다. Local Home 플랫폼을 재설정하려면 다음 단계를 따르세요. Google Home 또는 Google Nest 기기를 재부팅합니다. - JavaScript 앱이 오류 없이 로드되는지 확인합니다. 이렇게 하려면
콘솔 섹션에 있습니다 문제가 있는 경우
다음과 같은 메시지가 표시됩니다.
Uncaught TypeError: Cannot read property ‘open’ of null.
IDENTIFY
응답의verificationId
는SYNC
응답의otherDeviceIds
EXECUTE
핸들러의 경우 HTTP, TCP 또는 UDP 명령어가 정상적으로 작동합니다.- 핸들러에서
Promise
를 반환해야 합니다. - 메모리에 전역 상태를 유지하지 마세요. 애플리케이션 수명 주기를 참고하세요.
- 로컬 처리 앱에서 발생한 오류가 프로젝트에 표시됩니다. 오류 로그가 있는지 확인하세요.
준비 및 프로덕션 출시
스마트 홈 작업을 실행할 준비가 되면 다음 단계를 따르세요.
- 터미널을 엽니다. 프로젝트 디렉터리에서
npm run build
명령어를 실행합니다. 이 명령어는dist
디렉터리:project-directory/ └── dist ├── web │ └── bundle.js └── node └── bundle.js
- 콘솔에서 개발 >을 클릭하여 JavaScript 앱을 업로드합니다. 작업. Configure Local Home SDK 섹션에서 Upload를 클릭합니다. JavaScript 파일을 참고하세요. <ph type="x-smartling-placeholder">
- 파일 업로드 대화상자에서 이전에 작업한 번들 파일을 업로드합니다.
생성됩니다. 두 버전의 번들 파일 (노드, 웹)을 모두 업로드해야 합니다.
작업이 모든 런타임에서 올바르게 작동하도록 구성되도록 합니다.
로컬 fulfillment가 지원하는 환경을 지원합니다
- JavaScript 타겟팅 Node.js 업로드:
bundle.js
dist/node
디렉터리에서 이 파일을 선택합니다. - JavaScript 타겟팅 Chrome (브라우저) 업로드:
dist/web
디렉터리에서bundle.js
파일을 다운로드합니다.
- JavaScript 타겟팅 Node.js 업로드:
- 어시스턴트 지원 기기에서 작업을 테스트하여 작동하는지 확인합니다. 프로덕션 환경에서 예상대로 작동하는 것입니다. 자세한 내용은 스마트 홈 작업을 테스트하고 공유합니다.
- 작업이 작동하는 방식이 만족스러우면 Google에 제출하여 프로덕션 배포를 수동으로 진행하려면 다음 안내를 따르세요. 스마트 홈 작업을 실행합니다. 이 자체 테스트 및 인증 요청 단계를 완료하는 것이 포함됩니다.