인텐트

스마트 홈 인텐트는 조명을 켜거나 스피커로 오디오를 전송하는 등 실행할 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 사용자 인증 정보를 어시스턴트 클라이언트 앱에 반환합니다. 파트너 클라우드 서비스는 사용 가능한 기기와 기능을 어시스턴트 서비스로 보내고, 어시스턴트 서비스는 Home 그래프에 정보를 저장합니다.
그림 1: Google과 파트너 인프라 간의 상호작용

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

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

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

쿼리

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

사용자가 Hey Google, 주방에 어떤 조명이 켜져 있어?와 같은 질문에 답하기 위해 기기 상태를 쿼리할 때 Assistantaction.devices.QUERY 인텐트를 처리에 전송합니다.

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

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

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

실행

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

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

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

연결 해제

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