인텐트

스마트 홈 인텐트는 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 Graph에 정보를 저장합니다.
그림 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: 쿼리 인텐트

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

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

실행

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

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

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

연결 해제

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