스마트 홈 작업을 개발하는 방법을 알아볼 수 있는 새로운 공간인 Google Home 개발자 센터에 오신 것을 환영합니다. 참고: Actions 콘솔에서 작업을 계속 만들 수 있습니다.

인텐트

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

스마트 홈 인텐트는 실행할 smart home 작업을 설명하는 간단한 메시지 객체입니다(예: 조명 켜기 또는 스피커로 오디오 전송).

모든 smart home 인텐트는 action.devices 네임스페이스에 포함되어 있으며 처리에 제공해야 합니다. Google Assistant가 인텐트를 처리에 전송할 때마다 사용자의 서드 파티 OAuth 2 액세스 토큰이 승인 헤더에 전달됩니다.

지원되는 smart home 인텐트는 다음과 같습니다.

동기화

action.devices.SYNC 인텐트는 사용자가 연결했으며 사용할 수 있는 smart home 기기 목록을 요청하는 데 사용됩니다.

사용자가 Google Home app (GHA)로 기기를 설정하면 클라우드 인프라에 대한 인증도 이루어집니다. 그러면 Assistant가 OAuth2 토큰을 수신합니다. 이 시점에서 Assistantaction.devices.SYNC 인텐트를 처리에 전송하여 클라우드 인프라에서 사용자 기기 및 기능의 초기 목록을 검색합니다.

이 그림은 Google 인프라와 파트너 인프라 간의 상호작용을 보여줍니다. Google 인프라에는 어시스턴트 클라이언트 앱에서 사용할 수 있는 파트너 목록이 있습니다. 이러한 목록은 파트너 인프라로 전달되어 OAuth 인증을 완료합니다. 파트너 측의 OAuth 인증은 파트너 설정 WebView, OAuth WebView, 선택적 설정 및 약관, 파트너 클라우드 서비스입니다. 그러면 파트너 인프라가 어시스턴트 클라이언트 앱에 OAuth 사용자 인증 정보를 반환합니다. 파트너 클라우드 서비스는 어시스턴트 서비스에 사용 가능한 기기와 기능을 전송하여 정보를 홈 그래프에 저장합니다.
그림 1: Google과 파트너 인프라의 상호작용

사용자 계정과의 연결을 해제하거나 다시 연결하지 않으려면 Assistant로 요청 동기화를 전송합니다. 이렇게 하면 action.devices.SYNC 인텐트가 처리에 전송되어 기기 및 기능 목록을 동기화합니다. 자세한 내용은 요청 동기화 구현을 참고하세요.

SYNC 인텐트 흐름 다이어그램
그림 2: SYNC 인텐트

로컬 처리 설정 중에 로컬 홈 플랫폼은 smart home 작업의 클라우드 처리에서 SYNC 응답을 확인합니다. 로컬 처리를 지원하도록 SYNC 응답을 수정하는 방법을 자세히 알아보려면 클라우드 처리에서 SYNC 응답 업데이트를 참고하세요.

쿼리

action.devices.QUERY 인텐트는 smart home 기기의 현재 상태를 쿼리하는 데 사용됩니다.

사용자가 기기 상태를 쿼리할 때 Hey Google, 주방 조명이 뭐야?와 같은 질문에 답할 수 있습니다. Assistant는 처리에 action.devices.QUERY 인텐트를 전송합니다.

QUERY 인텐트의 흐름 다이어그램
그림 3: QUERY 인텐트

최상의 사용자 환경을 위해 Report State를 구현하여 사용자 기기의 현재 상태를 Google Home Graph에 직접 사전에 보고해야 합니다. 예를 들어, 사용자가 실제 조명 스위치를 사용해 스마트 조명을 켰는지 Assistant에서 알 수 있습니다.

보고서 상태를 사용하여 기기 상태 보고
그림 4: 기기 상태 보고

EXECUTE

action.devices.EXECUTE 인텐트는 smart home 기기에서 실행할 명령어를 제공하는 데 사용됩니다.

사용자가 Assistant가 있는 기기에 명령어를 전송하면 처리는 작업과 작업을 실행할 기기를 설명하는 action.devices.EXECUTE 인텐트를 수신합니다. 사용자는 Hey Google, 거실 조명 켜 줘와 같은 명령어를 사용하여 기기에서 작업을 실행할 수 있습니다.

EXECUTE 인텐트의 흐름 다이어그램
그림 5: EXECUTE 인텐트

연결 해제

action.devices.DISCONNECT 인텐트는 사용자가 Assistant에서 앱 계정의 연결을 해제할 때 이를 알려주기 위해 트리거됩니다. action.devices.DISCONNECT 인텐트를 수신한 후에는 이 사용자 기기의 상태를 보고하면 안 됩니다.