인텐트

스마트 홈 인텐트는 조명 켜기 또는 스피커로 오디오 전송과 같은 실행할 Cloud-to-cloud 통합을 설명하는 간단한 메시지 객체입니다.

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

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

동기화

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

사용자가 Google Home app (GHA)로 기기를 설정하면 클라우드 인프라에 대한 인증도 받습니다. 그런 다음 Assistant는 OAuth2 토큰을 수신합니다. 이 시점에서 Assistant은 클라우드 인프라에서 사용자 기기 및 기능의 초기 목록을 가져오기 위해 처리 엔진에 action.devices.SYNC 인텐트를 전송합니다.

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

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

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

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

쿼리

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

사용자가 기기 상태를 쿼리할 때 Hey Google, what lights are on in the kitchen?과 같은 질문에 답변합니다. Assistant에서 처리팀에 action.devices.QUERY 인텐트를 전송합니다.

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

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

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

실행

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

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

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

연결 해제

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