iOS용 Home API는 Google Home 생태계의 모든 기기를 통합 데이터 모델로 제공합니다. 이 데이터 모델은 기본 스마트 홈 기술 (예: Matter 또는 Cloud-to-cloud)에 관계없이 모든 유형의 기기 (Google Nest 또는 서드 파티 제조업체)를 포괄하며, smart home 및 모바일 앱 개발자 모두를 위한 사용자 환경을 빌드할 수 있는 공통 API 노출 영역을 제공합니다.
기기 유형
Home API에 표시되는 기기 유형은 Matter 및 Cloud-to-cloud 데이터 모델의 통합입니다. 일부는 Matter에서 직접 파생되고 일부는 Matter 기기 유형의 확장이며 일부는 Cloud-to-cloud에서 파생됩니다.
기기 유형에는 기기를 제어하고 관리하는 데 사용되는 특성이 포함됩니다. 기기 유형과 마찬가지로 특성은 Matter 클러스터 및 Cloud-to-cloud 특성에서 파생되며 Matter 클러스터와 유사한 일반적인 형식으로 표시됩니다. Home API에서 Matter에서 파생된 특성은 클러스터가 아닌 특성이라고 합니다.
따라서 Home API의 기기 유형과 특성은 Matter 우선으로 설계되었습니다. Matter 기기 유형 또는 특성이 Cloud-to-cloud 아날로그보다 우선 적용됩니다.
기기 유형 및 특성 목록은 iOS에서 지원되는 기기 유형을 참고하세요.
특성
특성의 Swift 버전은 Home API에서 사용하기 위해 생성되며 Home API와 관련된 추가 기능이 포함되어 있습니다 (Matter 또는 Cloud-to-cloud에는 없음). 예를 들어 각 특성에는 특성이 특정 속성 또는 명령어를 지원하는지 확인하는 메서드가 있습니다. 이는 기기 유형의 모든 기기가 동일한 기능을 모두 갖추고 있지는 않으므로 사용자의 기기에서 상태 읽기 또는 특정 작업을 실행할 수 있는지 확인할 때 유용합니다.
특성 및 기기 유형을 가져오려면 GoogleHomeTypes 모듈을 애플리케이션으로 가져옵니다.
import GoogleHomeTypes
또한 특성 및 기기 유형 이름에 typealias를 사용하여 코드를 줄이고 네임스페이스 반복을 방지할 수 있습니다.
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
대부분의 특성은 자동화와 함께 사용할 수 있으며 일부 특성은 자동화에만 사용할 수 있습니다. 자세한 내용은 Android의 Automation API 특성 지원을 참고하세요.
기기 유형 구성
Home API는 대부분의 Matter 애플리케이션 클러스터를 데이터 모델의 특성으로 지원합니다. Binding와 같이 최종 사용자에게 직접적인 유틸리티를 제공하지 않는 하위 수준 구성 클러스터는 Home API를 통해 직접 노출되지 않습니다. 기기 그룹에 관한 자세한 내용은 Structure API를 참고하세요.
Cloud-to-cloud 스마트 홈 특성에서 파생된 특성은 일반적으로 Cloud-to-cloud과 Home API 간에 동일한 이름을 갖습니다(예: OpenCloseTrait). 다른 특성은 Matter 제조업체별 확장 프로그램을 사용하여 생성된 Matter 특성의 확장 프로그램으로 표현됩니다. 이러한 특성은 Matter SDK와 Google Home 생태계 간에 기능이 분할된 smart home 특성의 격차를 해소합니다. 이에 관한 구체적인 예는 Cloud-to-cloud에서 가져왔지만 아직 Matter 아날로그가 없는 Google* 기기 유형입니다.
기기 유형은 Matter 또는 Cloud-to-cloud 중 하나 또는 두 소스의 특성으로 구성됩니다.
예를 들어 FanDeviceType는 두 가지로 구성되며 세 가지 특성이 있습니다.
IdentifyTraitMatter 특성은 MatterIdentifyTrait의 모든 기능을 제공합니다.FanControlTraitMatter 특성은 MatterFanControlTrait의 모든 기능을 제공합니다.ExtendedFanControlTraitGoogle 특성은FanControlTraitMatter 특성에서 다루지 않는 Google smart homeFanSpeedTrait의 모든 기능을 제공합니다.
이러한 유형의 특성 구성은 기본 smart home 데이터 모델을 추상화하여 전체 기기 유형 기능에 유연한 모델을 제공합니다.
기기 그룹
기기 그룹은 단일 구조 내에서 사용자가 정의한 기기 모음을 나타냅니다. 그룹 멤버십은 Google 서비스에 유지되며 구조의 다른 구성원과 구조에 액세스할 수 있는 다른 앱에 표시됩니다.
기기 그룹은 DeviceGroup 항목으로 표현되며, 이는 HomeDevice와 다릅니다. 각 HomeDevice는 GroupMembershipTrait를 통해 속한 그룹을 나열하므로 앱에서 그룹 멤버십을 검사하고 그룹의 구성원 기기를 직접 반복할 수 있습니다. 또한 DeviceGroup은 HasParts 프로토콜을 준수하여 그룹 전체를 타겟팅할 때 구성원 기기에서 지원하는 기기 유형을 노출합니다.