Omówienie interfejsów API Home

Interfejsy API Google Home na Androida zapewniają ujednoliconą powierzchnię interfejsu API, aby umożliwić deweloperom interakcję ze stanem elementów w domu użytkownika. Te encje mogą opisywać urządzenia i informacje inne niż urządzenia powiązane ze strukturą i pokojami użytkownika.

Interfejsy API Home definiują te elementy, z którymi użytkownik może wchodzić w interakcje:

  • Structures to domy, które zawierają pomieszczenia i urządzenia.
  • Sale są częścią struktury i zawierają urządzenia.
  • Urządzenia implementują cechy zawierające atrybuty, są zgodne z typami, emitują zdarzenia i reagują na polecenia.
  • Automatyzacje są częścią struktury i korzystają z metadanych domu oraz urządzeń, aby automatyzować zadania w domu.

Rysunek 1 przedstawia tę architekturę:

Schemat przedstawiający architekturę interfejsów API Home
Rysunek 1. Architektura interfejsów API Home

Typy urządzeń domowych z interfejsem API mogą być obsługiwane przez Matter, czyli otwarty standard dla inteligentnych domów, lub mogą należeć do ekosystemu Google Home (Cloud-to-cloud). Niektóre typy urządzeń mogą zawierać funkcje z obu tych systemów. Więcej informacji znajdziesz w sekcji Obsługiwane typy urządzeń.

Matter funkcje urządzenia są grupowane według klastrów, które w interfejsach Home API są reprezentowane jako Matterstandardowe cechy. Interfejsy API Home obsługują standardowy zestaw klastrów Matter zgodnie ze specyfikacją Matter.

W ekosystemie Google Home funkcje urządzeń są grupowane według atrybutów inteligentnych urządzeń domowych, które w interfejsach API Google Home są reprezentowane jako atrybuty inteligentnych urządzeń domowych Google. Interfejsy API Home obsługują zestaw atrybutów inteligentnego domu zdefiniowanych w programie Cloud-to-cloud.

Dostępne są też inne cechy, takie jak klastry według producenta i cechy platformy. Więcej informacji znajdziesz w artykule Model danych.

Język

Interfejsy API usługi Home są napisane w języku Kotlin i zawierają typowy interfejs Kotlina, który do zarządzania stanem i subskrypcją korzysta z Flow. Daje to kilka korzyści w porównaniu ze standardowym interfejsem API subskrypcji.

Jeśli jeszcze tego nie zrobiono, zalecamy zapoznanie się z dokumentacją Kotlina dotyczącą coroutines, flow i Jetpack Compose:

Identyfikatory jednostek

Każdy element w interfejsach API Home ma identyfikator, który jest jego głównym identyfikatorem. Ten identyfikator jest unikalny i niezmienny przez cały czas istnienia danego elementu. Ten identyfikator może służyć do buforowania obiektów lub sprawdzania równości, ponieważ metadane danej jednostki mogą się zmieniać.

Aby dowiedzieć się, które jednostki mają identyfikator, zajrzyj do interfejsu HasId.

Mapowanie terminologii

Elementy w interfejsach API Home są mapowane na pojęcia MatterCloud-to-cloud w następujący sposób:

Interfejsy Home API Matter Cloud-to-cloud
Cecha Klaster Cecha
Atrybut Atrybut Atrybut, stan
Polecenie Polecenie Polecenie
Zdarzenie Zdarzenie Odpowiedź na zapytanie, Powiadomienie