Omówienie interfejsów Home API na Androida

Interfejsy API Google Home na Androida zapewniają ujednoliconą powierzchnię interfejsu API, która umożliwia deweloperom interakcję ze stanem urządzeń w domu użytkownika. Te obiekty mogą opisywać urządzenia i informacje niezwiązane z urządzeniami, które są powiązane ze strukturą i pomieszczeniami użytkownika.

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

  • Struktury to domy, w których znajdują się 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 odpowiadają na polecenia.
  • Automatyzacja jest częścią struktury i wykorzystuje metadane domu oraz urządzenia do automatyzowania zadań w domu.

Ilustracja 1 przedstawia tę architekturę:

Diagram przedstawiający architekturę interfejsów Home API w przypadku aplikacji na Androida
Ilustracja 1. Architektura interfejsów Home API dla aplikacji na Androida
który dostarcza danych kontekstowych o domu i jego urządzeniach w ekosystemie Google Home.

Typy urządzeń interfejsu Home API mogą być oparte na Matter, otwartym standardzie dla inteligentnego domu, lub być urządzeniem Cloud-to-cloud w ekosystemie Google Home. Niektóre typy urządzeń mogą zawierać funkcje z obu tych kategorii. Więcej informacji znajdziesz w artykule Obsługiwane typy urządzeń z Androidem.

Matter funkcje urządzenia są pogrupowane w klastry, które w interfejsach Home API są reprezentowane jako Matter standardowe cechy. Interfejsy Home API obsługują standardowy zestaw klastrów Matter zdefiniowanych w aktualnej specyfikacji Matter.

W ekosystemie Google Home funkcje urządzeń są pogrupowane według cech inteligentnego domu, które w interfejsach Home API są reprezentowane jako cechy inteligentnego domu Google. Interfejsy Home API obsługują zestaw cech inteligentnego domu zdefiniowanych w Cloud-to-cloud.

Dostępne są też inne cechy, takie jak klastry specyficzne dla producenta i cechy platformy. Więcej informacji znajdziesz w artykule Model danych na Androidzie.

Język

Interfejsy Home API na Androida są napisane w Kotlin i zapewniają idiomatyczny interfejs Kotlin, który do zarządzania stanem i subskrypcją wykorzystuje Flow. Daje to szereg korzyści w porównaniu ze standardowym interfejsem API subskrypcji.

Jeśli nie znasz jeszcze dokumentacji Kotlin na temat korutyn, przepływów i Jetpack Compose, zapoznaj się z nią:

Identyfikatory jednostek

Każda encja w interfejsach Home API ma identyfikator, który jest jej głównym identyfikatorem. Jest to unikalny i stały identyfikator, który nigdy się nie zmieni w okresie istnienia podmiotu. Ten identyfikator może służyć do buforowania obiektów lub sprawdzania równości, ponieważ metadane jednostki mogą się zmieniać.

Aby dowiedzieć się, które jednostki mają identyfikator, zapoznaj się z interfejsem HasId.

Mapowanie terminologii

Encje w interfejsach Home API są mapowane na pojęcia MatterCloud-to-cloud w ten sposób:

Interfejsy Home API Matter Cloud-to-cloud
Cechy Klaster Cechy
Atrybut Atrybut Atrybut, stan
Polecenie Polecenie Polecenie
Zdarzenie Zdarzenie Odpowiedź uzupełniająca, powiadomienie