인텐트

스마트 홈 인텐트는 조명을 켜거나 스피커로 오디오를 전송하는 등 실행할 smart home 작업을 설명하는 간단한 메시지 객체입니다.

모든 smart home 인텐트는 action.devices 네임스페이스에 포함되어 있으며 fulfillment를 제공해야 합니다. 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 사용자 인증 정보를 어시스턴트 클라이언트 앱에 반환합니다. 파트너 클라우드 서비스는 사용 가능한 기기 및 기능을 어시스턴트 서비스로 전송하고, 어시스턴트는 정보를 홈 그래프에 저장합니다.
그림 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 인텐트

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

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

실행

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

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

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

연결 해제

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