Home API 개요

Android용 Google Home API는 개발자가 사용자 홈의 항목 상태와 상호작용할 수 있는 통합 API 노출 영역을 제공합니다. 이러한 항목은 사용자의 구조 및 방과 연결된 기기 및 기기 외 정보에 관해 설명할 수 있습니다.

Home API는 사용자가 상호작용할 수 있는 다음 항목을 정의합니다.

  • 구조는 방과 기기가 포함된 집을 나타냅니다.
  • 은 구조의 일부이며 기기를 포함합니다.
  • 기기는 속성이 포함된 트레잇을 구현하고, 유형을 준수하며, 이벤트를 내보내고, 명령에 응답합니다.
  • 자동화는 구조의 일부이며 집 메타데이터와 기기를 사용하여 집에서 할 일을 자동화합니다.

그림 1은 이 아키텍처를 보여줍니다.

Home APIs 아키텍처를 보여주는 다이어그램
그림 1: Home API의 아키텍처

Home API 기기 유형은 스마트 홈의 개방형 표준인 Matter의 지원을 받거나 Google Home 생태계의 Cloud-to-cloud 기기일 수 있습니다. 일부 기기 유형은 두 가지 기능을 모두 통합할 수 있습니다. 자세한 내용은 지원되는 기기 유형을 참고하세요.

Matter에서 기기 기능은 클러스터별로 그룹화되며, 클러스터는 Home API에서 Matter 표준 트레잇으로 표현됩니다. Home API는 현재 Matter 사양에 정의된 표준 Matter 클러스터 세트를 지원합니다.

Google Home 생태계에서 기기 기능은 스마트 홈 트레잇별로 그룹화되며, 이는 Home API에서 Google 스마트 홈 트레잇으로 표시됩니다. Home API는 Cloud-to-cloud 프로그램에 정의된 스마트 홈 트레잇 세트를 지원합니다.

제조업체별 클러스터 및 플랫폼 트레잇과 같은 다른 트레잇도 사용할 수 있습니다. 자세한 내용은 데이터 모델을 참고하세요.

언어

Home API는 Kotlin으로 작성되며 Flow를 사용하여 상태와 정기 결제를 관리하는 관용적인 Kotlin 인터페이스를 제공합니다. 이렇게 하면 표준 정기 결제 API에 비해 여러 가지 이점이 있습니다.

아직 숙지하지 않은 경우 코루틴, Flow, Jetpack Compose에 관한 Kotlin 문서를 숙지하는 것이 좋습니다.

항목 식별자

Home API의 각 항목에는 기본 식별자를 나타내는 ID가 있습니다. 이 ID는 항목의 전체 기간 동안 변경되지 않는 고유하고 안정적인 식별자입니다. 이 ID는 엔티티의 메타데이터가 변경될 수 있으므로 객체를 캐시하거나 동일성을 확인하는 데 사용할 수 있습니다.

ID가 있는 항목을 알아보려면 HasId 인터페이스를 참고하세요.

용어 매핑

Home API의 항목은 다음과 같이 MatterCloud-to-cloud 개념에 매핑됩니다.

Home API Matter Cloud-to-cloud
형질 클러스터 형질
속성 속성 속성, 상태
명령어 명령어 명령어
이벤트 이벤트 후속 응답, 알림