Omówienie interfejsu Automation API na Androidzie

Automatyzacje umożliwiają automatyzację zadań i ustawień urządzeń w domu. Automatyzacje są dostępne w ekosystemie Google Home jako rutyny w Google Home app (GHA) oraz za pomocą automation script editor na Google Home for web.

Automatyzacje w ekosystemie Google Home są teraz dostępne za pomocą interfejsów Home API na Androida. Wykorzystują one te same podstawowe koncepcje co GHA rutyny w aplikacji Google Home i script editor, ale mają ulepszone funkcje i możliwości, które są dostępne tylko dzięki interfejsom Home API, w tym:

  • dostęp do wszystkich Matter standardowych i smart home cech urządzeń, które są prezentowane w interfejsach Home API;
  • obsługę sekwencyjnych, równoległych i wybranych przepływów wykonywania.

Automatyzacje są pisane w języku Automation DSL, czyli języku specyficznym dla domeny, który został zaprojektowany do tworzenia automatyzacji w Kotlinie.

Wszystkie cechy i typy, których chcesz używać w aplikacji z interfejsami Device &Structure API lub Automation API, muszą zostać zarejestrowane podczas inicjowania. Więcej informacji znajdziesz w artykule Inicjowanie domu na Androidzie.

Wskazówki, jeśli użytkownik cofnie pełne uprawnienia

Jeśli użytkownik cofnie pełne uprawnienia, wszystkie dotychczasowe automatyzacje przestaną działać. Jeśli użytkownik cofnie dostęp do określonych urządzeń, przestaną działać też elementy uruchamiające, warunki i działania powiązane z tymi urządzeniami.

Za każdym razem, gdy aplikacja się uruchamia, sprawdzaj, czy uprawnienia nadal obowiązują. Jeśli zostały cofnięte, usuń wszystkie poprzednie dane, w tym dane zapisane w pamięci podręcznej aplikacji.

Ścieżka dewelopera

Interfejs Automation API to część większej ścieżki dewelopera. Jest on dostępny po zintegrowaniu interfejsów Structure i Device API, aby użytkownik mógł korzystać z automatyzacji.

  1. Deweloper planuje automatyzację i definiuje ją za pomocą języka Automation DSL.
  2. Deweloper osadza definicję automatyzacji w aplikacji na Androida napisanej w Kotlinie.
  3. Aplikacja prezentuje automatyzacje użytkownikowi na podstawie informacji o jego urządzeniach, w tym o cechach, atrybutach, poleceniach i zdarzeniach, które zostały zebrane za pomocą interfejsu Discovery API lub Device API.
    1. Za pomocą interfejsu Discovery API aplikacja może wygenerować wersję roboczą automatyzacji dostosowaną do typów urządzeń i cech występujących w strukturze użytkownika, z jego udziałem lub bez niego.
    2. Interfejs Device API może udostępniać większość tych samych informacji co interfejs Discovery API, ale nie jest zoptymalizowany pod kątem przypadków użycia automatyzacji. Więcej informacji znajdziesz w artykule Porównanie interfejsów Device API i Discovery API.
  4. Aplikacja tworzy rzeczywistą automatyzację, która jest powiązana z wybraną strukturą.
  5. Automatyzacja jest teraz dostępna w strukturze użytkownika i można ją uruchomić lub usunąć za pomocą metod interfejsu Structure API.

Użytkownik może w dowolnym momencie tworzyć nowe instancje automatyzacji, wybierając inną strukturę lub, w zależności od logiki aplikacji, inny zestaw urządzeń. Za każdym razem aplikacja generuje nową instancję automatyzacji.

W najprostszym scenariuszu możesz zaproponować użytkownikom predefiniowaną automatyzację, która wykonuje stosunkowo proste zadanie. Możesz też przedstawić szkielet automatyzacji, który użytkownik dostosuje do swoich potrzeb. Możesz też napisać otwarty edytor automatyzacji, który pozwoli użytkownikowi tworzyć złożone automatyzacje za pomocą wszystkich bloków dostępnych w interfejsie Automation API.

Sugestie automatyzacji

Interfejsy Home API mogą sugerować automatyzacje dla Structure na podstawie takich czynników jak typy urządzeń znajdujące się w danym miejscu.

Sugestie automatyzacji są reprezentowane przez klasę AutomationSuggestion.

Interfejs Structure obejmuje interfejs HasSuggestions, który udostępnia funkcję suggestions(), która zwraca zbiór sugestii automatyzacji.

Limity zasobów

W przypadku automatyzacji w interfejsach Home API obowiązują te limity:

Tabela: limity zasobów interfejsu Automation API
Dane Limit
Maksymalna liczba automatyzacji na strukturę 64
Maksymalna liczba węzłów na automatyzację 128
Maksymalna liczba węzłów wyrażeń na automatyzację 64
Maksymalna liczba instancji automatyzacji na strukturę 1024
Maksymalna liczba instancji automatyzacji na dewelopera na strukturę 64
Maksymalna liczba wykonań na strukturę dziennie 1024
Maksymalna liczba wykonań na dewelopera na strukturę dziennie 128