Omówienie interfejsów Home API na Androida

Interfejsy Google Home API na Androida zapewniają ujednolicony interfejs API, który umożliwia deweloperom interakcję ze stanem encji w domu użytkownika. Te encje 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 encje, z którymi użytkownik może wchodzić w interakcję:

  • Struktury reprezentują dom, w którym znajdują się pomieszczenia i urządzenia.
  • Pomieszczenia 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.
  • Automatyzacje są częścią struktury i używają metadanych domu oraz urządzeń do automatyzowania zadań w domu.

Architekturę tę przedstawia rysunek 1:

Diagram przedstawiający architekturę interfejsów Home API w przypadku aplikacji na Androida
Rysunek 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 mogą być urządzeniem typu Cloud-to-cloud w ekosystemie Google Home. Niektóre typy urządzeń mogą zawierać funkcje z obu tych rozwiązań. Więcej informacji znajdziesz w artykule Obsługiwane typy urządzeń na Androidzie.

W Matter funkcje urządzenia są pogrupowane według klastrów, które są reprezentowane w interfejsach Home API jako Matter standardowe cechy. Interfejsy Home API obsługują standardowy zestaw Matter klastrów zdefiniowany w bieżącej Matter specyfikacji.

W ekosystemie Google Home funkcje urządzenia 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 zdefiniowany w Cloud-to-cloud programie.

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.

Ekosystem

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

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

Ekosystem obejmuje Google Automation Engine , 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 do przyznawania dostępu do urządzeń w strukturze. OAuth umożliwia użytkownikowi przyznanie uprawnień aplikacji lub usłudze bez konieczności ujawniania danych logowania.

Google Home Developer Console służy do zarządzania wszystkimi etapami projektu Home API – od weryfikacji marki po tworzenie, testowanie, certyfikowanie i w końcu uruchomienie. 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 Kotlin i zapewniają idiomatyczny interfejs Kotlin, który używa Flow do zarządzania stanem i subskrypcją. Daje to wiele korzyści w porównaniu ze standardowym interfejsem Subscription API.

Jeśli jeszcze tego nie zrobisz, zapoznaj się z dokumentacją Kotlina dotyczącą współprogramów, Flow i Jetpack Compose:

Identyfikatory encji

Każda encja w interfejsach Home API ma identyfikator, który reprezentuje jej główny identyfikator. Ten identyfikator jest unikalny i stabilny i nigdy się nie zmieni przez cały okres istnienia encji. Ten identyfikator może służyć do buforowania obiektów lub sprawdzania równości, ponieważ metadane encji 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 Matter i Cloud-to-cloud koncepcje w ten sposób:

Interfejsy Home API Matter Cloud-to-cloud
Cecha Klaster Cecha
Atrybut Atrybut Atrybut, stan
Polecenie Polecenie Polecenie
Zdarzenie Zdarzenie Dodatkowe pytanie, powiadomienie