Android용 Google Home API는 개발자가 사용자의 홈에 있는 엔티티의 상태와 상호작용할 수 있도록 통합 API 노출 영역을 제공합니다. 이러한 엔티티는 사용자의 구조 및 방과 연결된 기기 및 비기기 정보를 설명할 수 있습니다.
홈 API는 사용자가 상호작용할 수 있는 다음 항목을 정의합니다.
- 구조는 방과 기기가 포함된 홈을 나타냅니다.
- 방은 구조의 일부이며 기기를 포함합니다.
- 기기는 속성이 포함된 특성을 구현하고, 유형을 준수하고, 이벤트를 내보내고, 명령어에 응답합니다.
- 자동화는 구조의 일부이며 홈 메타데이터와 기기를 사용하여 홈에서 작업을 자동화합니다.
그림 1은 이 아키텍처를 보여줍니다.
Home API 기기 유형은 스마트 홈을 위한 개방형 표준인 Matter로 지원되거나 Google Home 생태계의 Cloud-to-cloud 기기일 수 있습니다. 일부 기기 유형은 두 유형의 기능을 모두 통합할 수 있습니다. 자세한 내용은 Android에서 지원되는 기기 유형을 참고하세요.
Matter에서 기기 기능은 클러스터별로 그룹화되며, 이는 Home API에서 Matter 표준 특성으로 표현됩니다. Home API는 현재 Matter 사양에 정의된 표준 Matter 클러스터 집합을 지원합니다.
Google Home 생태계에서 기기 기능은 스마트 홈 특성별로 그룹화되며, 이는 Home API에서 Google 스마트 홈 특성으로 표현됩니다. Home API는 Cloud-to-cloud 프로그램에 정의된 스마트 홈 특성 세트를 지원합니다.
제조업체별 클러스터 및 플랫폼 특성과 같은 다른 특성도 사용할 수 있습니다. 자세한 내용은 Android의 데이터 모델을 참고하세요.
생태계
Google Home 생태계는 스마트 홈 환경을 구축, 관리, 보호, 통합하기 위한 간소화된 기반을 제공합니다. 그림 2는 구성요소가 모두 함께 작동하는 방식을 보여줍니다.
생태계에는 홈에서 작업과 기기 설정을 자동화하는 방법을 제공하는 자동화를 저장하고 실행하는 Google 자동화 엔진이 포함됩니다.
Home API는 OAuth 2.0을 사용하여 구조의 기기에 대한 액세스 권한을 부여합니다. OAuth를 사용하면 사용자가 로그인 사용자 인증 정보를 노출하지 않고도 앱이나 서비스에 권한을 부여할 수 있습니다.
Google Home Developer Console는 브랜드 확인부터 개발, 테스트, 인증, 최종 출시까지 Home API 프로젝트의 모든 단계를 관리하는 데 사용됩니다. Google Home 생태계를 통해 강력한 도구와 배포를 제공하면서 개발 프로세스를 간소화합니다.
언어
Android용 Home API는 Kotlin으로 작성되며 Flow를 사용하여 상태와 구독을 관리하는 직관적인 Kotlin 인터페이스를 제공합니다. 이를 통해 표준 정기 결제 API에 비해 여러 이점을 얻을 수 있습니다.
아직 코루틴, 흐름, Jetpack Compose에 관한 Kotlin 문서를 숙지하지 않았다면 다음을 참고하세요.
- Kotlin으로 Android 앱 개발
- Android용 Kotlin 알아보기
- Android의 Kotlin 코루틴 다음 Codelab이 유용할 수 있습니다.
- Android의 Kotlin 흐름, 특히 StateFlow를 사용합니다.
- 상태 및 Jetpack Compose, 특히
collectAsStateWithLifecycle()
함수 이 함수는 해당 상태를 표시하는 UI가 실제로 포그라운드에 있는지 여부에 따라 흐름의 구독 및 구독 취소를 자동으로 관리합니다. - 자동화 API를 사용하는 경우 Kotlin 형식 안전 빌더에 관해 읽어 보면 자동화 DSL의 작동 방식을 이해하는 데 도움이 됩니다.
엔티티 식별자
홈 API의 각 항목에는 기본 식별자를 나타내는 ID가 있습니다. 이 ID는 항목의 수명 동안 변경되지 않는 안정적인 고유 식별자입니다. 이 ID는 객체를 캐시하거나 항목의 메타데이터가 변경될 수 있으므로 동일성을 확인하는 데 사용할 수 있습니다.
ID가 있는 항목을 알아보려면 HasId
인터페이스를 참고하세요.
용어 매핑
Home API의 항목은 다음과 같이 Matter 및 Cloud-to-cloud 개념에 매핑됩니다.
Home API | Matter | Cloud-to-cloud |
---|---|---|
특성 | 클러스터 | 특성 |
속성 | 속성 | 속성, 상태 |
명령어 | 명령어 | 명령어 |
이벤트 | 이벤트 | 후속 조치 응답, 알림 |