Omówienie interfejsów Home API na Androida

Interfejsy Google Home API 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:

  • Domy 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.
  • Grupy urządzeń to zdefiniowane przez użytkownika zbiory urządzeń w ramach struktury.
  • Automatyzacje są częścią struktury i wykorzystują metadane domu oraz urządzenia do automatyzacji 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

Typy urządzeń Home API mogą być obsługiwane przez Matter, otwarty standard 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 bieżącej specyfikacji Matter.

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

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

Ekosystem

Ekosystem Google Home zapewnia uproszczoną podstawę do tworzenia, zarządzania, zabezpieczania i integrowania funkcji inteligentnego domu. Na rysunku 2 pokazujemy, jak wszystkie komponenty współpracują ze sobą.

Diagram przedstawiający ekosystem interfejsów Home API dla aplikacji na Androida
Ilustracja 2. Ekosystem interfejsów Home API dla aplikacji na Androida

Ekosystem obejmuje silnik automatyzacji Google, który przechowuje i uruchamia automatyzacje umożliwiające automatyzowanie zadań i ustawień urządzeń w domu.

Interfejsy Home API używają OAuth 2.0, aby przyznawać dostęp do urządzeń w domu. OAuth umożliwia użytkownikowi przyznanie aplikacji lub usłudze uprawnień bez ujawniania danych logowania.

Google Home Developer Console służy do zarządzania wszystkimi etapami projektu interfejsów Home API, od weryfikacji marki po opracowywanie, testowanie i certyfikację, a w końcu po wprowadzenie na rynek. Usprawnia proces tworzenia, zapewniając jednocześnie zaawansowane narzędzia i dystrybucję w ekosystemie Google Home.

Język

Interfejsy Home API na Androida są napisane w języku 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 tych technologii, zapoznaj się z dokumentacją Kotlin dotyczącą korutyn, przepływów i Jetpack Compose:

Identyfikatory jednostek

Każdy element w interfejsach Home API ma identyfikator, który reprezentuje jego główny identyfikator. Jest to unikalny i niezmienny 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 encje 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 Dodatkowe pytanie, powiadomienie