앱 테스트 및 디버그

설명된 단계에 따라 로컬 처리 앱을 빌드하는 것이 좋습니다. 먼저 자체 호스팅 환경에서 스마트 홈 통합을 테스트하세요 다음 단계를 따르세요.

  1. 자체 호스팅 환경에서 로컬 처리 앱을 만들 수 있습니다 다음 스니펫은 정적 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>
  2. 기기 제어 테스트.

  3. Chrome에서 디버그합니다. 중단점과 로그를 사용하여 다음을 수행합니다. 통합 문제를 해결할 수 있습니다

  4. TypeScript 코드를 수정하고 컴파일한 후 이 단계를 반복합니다.

이 빌드 및 테스트 프로세스를 반복하면 변경사항이 어떻게 적용되는지 확인할 수 있습니다. 코드 문제를 빠르고 더 쉽게 포착하고 디버그할 수 있습니다.

기기 제어 테스트

작업 콘솔에서 웹 앱의 URL을 지정해야 합니다. 로컬 처리 중에 Google Home 또는 Google Nest 기기에 로드되는 HTML을 제공합니다.

로컬 처리로 기기 제어를 테스트하려면 다음 단계를 따르세요.

Chrome

  1. Actions 콘솔에서 스마트 홈 프로젝트를 엽니다.
  2. 왼쪽 탐색 메뉴에서 작업을 클릭합니다.
  3. Local Home SDK 구성 (선택사항)에서 > Chrome의 테스트 URL을 입력하고 개발 서버를 지정합니다. 로컬 처리 앱을 실행하는 HTML을 제공하는 URL입니다.
  4. 저장을 클릭합니다. Google에서 인증을 완료하는 데 최대 30분이 걸릴 수 반영해야 합니다
  5. 테스트한 Google Home 또는 Google Nest 기기를 재부팅합니다.
  6. 스마트 기기에 명령어를 실행합니다. 예를 들어 기기가 OnOff 트레잇을 구현합니다. "Hey Google, 조명 켜 줘"라고 말하면 됩니다.

Node.js

  1. Actions 콘솔에서 스마트 홈 프로젝트를 엽니다.
  2. 왼쪽 탐색 메뉴에서 작업을 클릭합니다.
  3. Local Home SDK 구성 (선택사항)에서 > 노드의 테스트 URL을 입력하고 개발 서버를 지정합니다. 로컬 처리 앱을 실행하는 JavaScript를 제공하는 URL입니다.
  4. 저장을 클릭합니다. Google에서 인증을 완료하는 데 최대 30분이 걸릴 수 반영해야 합니다
  5. 테스트한 Google Home 또는 Google Nest 기기를 재부팅합니다.
  6. 스마트 기기에 명령어를 실행합니다. 예를 들어 기기가 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

  1. 로컬 개발 머신에서 Chrome 브라우저:
  2. Chrome 브라우저의 주소 입력란에서 Chrome Inspector를 실행합니다. chrome://inspect#devices을 입력합니다. 사용 중인 기기에 기기 목록이 HTML 파일이 테스트 이름 아래에 표시되어 있어야 합니다. Google Home 또는 Google Nest 기기
  3. HTML 아래에 있는 파란색 검사 링크를 클릭하여 Chrome DevTools를 실행합니다. 콘솔 탭으로 전환합니다. Local Home 플랫폼에서 앱 버전과 Local Home SDK를 출력합니다. 확인할 수 있습니다 로그가 표시되면 Google에 연결할 수 있는지 확인해야 합니다. 그렇지 않은 경우 Google Home 또는 Google Nest 기기를 재부팅합니다.
  4. <ph type="x-smartling-placeholder">
    </ph>
    그림 1: chrome://inspect의 로컬 처리 앱

Node.js

  1. 로컬 개발 머신에서 Chrome 브라우저:
  2. 테스트 기기의 로컬 IP 주소를 확인합니다.
  3. Chrome 브라우저의 주소 입력란에서 Chrome Inspector를 실행합니다. chrome://inspect#devices을 입력합니다.
  4. 구성...을 선택하여 타겟 탐색 설정을 엽니다.
  5. <ph type="x-smartling-placeholder">
    </ph>
    그림 2: chrome://inspect의 타겟 검색 설정
  6. 목록에 DEVICE_IP_ADDRESS:9222를 입력하고 완료를 클릭합니다.
  7. 스크립트 아래에 있는 파란색 검사 링크를 클릭하여 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 응답의 verificationIdSYNC 응답의 otherDeviceIds
  • EXECUTE 핸들러의 경우 HTTP, TCP 또는 UDP 명령어가 정상적으로 작동합니다.
  • 핸들러에서 Promise를 반환해야 합니다.
  • 메모리에 전역 상태를 유지하지 마세요. 애플리케이션 수명 주기를 참고하세요.
  • 로컬 처리 앱에서 발생한 오류가 프로젝트에 표시됩니다. 오류 로그가 있는지 확인하세요.

준비 및 프로덕션 출시

스마트 홈 작업을 실행할 준비가 되면 다음 단계를 따르세요.

  1. 터미널을 엽니다. 프로젝트 디렉터리에서 npm run build 명령어를 실행합니다. 이 명령어는 dist 디렉터리:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. 콘솔에서 개발 >을 클릭하여 JavaScript 앱을 업로드합니다. 작업. Configure Local Home SDK 섹션에서 Upload를 클릭합니다. JavaScript 파일을 참고하세요. <ph type="x-smartling-placeholder">
    </ph>
    그림 3: JavaScript 앱 업로드
  3. 파일 업로드 대화상자에서 이전에 작업한 번들 파일을 업로드합니다. 생성됩니다. 두 버전의 번들 파일 (노드, 웹)을 모두 업로드해야 합니다. 작업이 모든 런타임에서 올바르게 작동하도록 구성되도록 합니다. 로컬 fulfillment가 지원하는 환경을 지원합니다
    1. JavaScript 타겟팅 Node.js 업로드: bundle.js dist/node 디렉터리에서 이 파일을 선택합니다.
    2. JavaScript 타겟팅 Chrome (브라우저) 업로드: dist/web 디렉터리에서 bundle.js 파일을 다운로드합니다.
  4. 어시스턴트 지원 기기에서 작업을 테스트하여 작동하는지 확인합니다. 프로덕션 환경에서 예상대로 작동하는 것입니다. 자세한 내용은 스마트 홈 작업을 테스트하고 공유합니다.
  5. 작업이 작동하는 방식이 만족스러우면 Google에 제출하여 프로덕션 배포를 수동으로 진행하려면 다음 안내를 따르세요. 스마트 홈 작업을 실행합니다. 이 자체 테스트 및 인증 요청 단계를 완료하는 것이 포함됩니다.