Omówienie interfejsu Automation API na Androidzie

Automatyzacje umożliwiają automatyzowanie zadań i ustawień urządzeń w domu. Automatyzacje są dostępne w ekosystemie Google Home jako rutyny w Google Home app (GHA) i 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. Korzystają one z tych samych podstawowych pojęć co GHA rutyny i script editor, ale mają ulepszone funkcje i możliwości dostępne tylko dzięki interfejsom Home API, w tym:

  • Dostęp do wszystkich standardowych cech Mattersmart home urządzenia, zgodnie z interfejsami Home API.
  • Obsługa 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 zamierzasz używać w aplikacji z interfejsami Device & Structure lub Automation API, muszą być zarejestrowane podczas inicjowania. Zobacz 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ń, wyzwalacze, warunki i działania powiązane z tymi urządzeniami przestaną działać.

Przy każdym uruchomieniu aplikacji sprawdzaj, czy uprawnienia nadal obowiązują. Jeśli zostały one wycofane, upewnij się, że wszystkie poprzednie dane, w tym dane zapisane w pamięci podręcznej aplikacji, zostały usunięte.

Ścieżka dewelopera

Interfejs Automation API jest częścią większego procesu rozwoju. Następuje to po zintegrowaniu interfejsów Structure i Device API, aby mieć pewność, że użytkownik może korzystać z automatyzacji, gdy tylko tego potrzebuje.

  1. Deweloper planuje automatyzację i definiuje ją za pomocą języka DSL automatyzacji.
  2. Deweloper umieszcza definicję automatyzacji w aplikacji na Androida napisanej w Kotlinie.
  3. Aplikacja prezentuje użytkownikowi automatyzacje na podstawie informacji o jego urządzeniach, w tym cech, atrybutów, poleceń i zdarzeń, zebranych za pomocą interfejsu Discovery API lub Device API.
    1. Za pomocą interfejsu Discovery API aplikacja może generować projekt automatyzacji dostosowany do typów urządzeń i cech obecnych w strukturze użytkownika, z jego udziałem lub bez niego.
    2. Interfejs Device API może dostarczać większość tych samych informacji co interfejs Discovery API, ale nie jest zoptymalizowany pod kątem automatyzacji. Więcej informacji znajdziesz w artykule Porównanie interfejsu Device API i Discovery API.
  4. Aplikacja tworzy rzeczywistą automatyzację powiązaną z wybraną strukturą.
  5. Automatyzacja jest teraz dostępna w strukturze użytkownika i można ją wykonać lub usunąć za pomocą metod interfejsu API struktury.

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

W najprostszym scenariuszu możesz zaproponować użytkownikom gotową 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 umożliwi użytkownikowi tworzenie złożonych automatyzacji przy użyciu wszystkich elementów dostępnych w interfejsie Automation API.

Sugestie automatyzacji

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

Sugestie automatyzacji są reprezentowane przez klasę AutomationSuggestion.

Interfejs Structure obejmuje interfejs HasSuggestions, który udostępnia funkcję suggestions() zwracającą kolekcję sugestii automatyzacji.

Metody likeSuggestion()dislikeSuggestion() są przeznaczone do połączenia z elementami interfejsu , które użytkownik może kliknąć, aby przesłać opinię.

Trzecia metoda, clearSuggestionFeedback(), umożliwia użytkownikowi usunięcie opinii o sugerowanej automatyzacji.

Opinie użytkowników mają wpływ na przyszłe sugestie.

Limity zasobów

Automatyzacje w interfejsach Home API są objęte tymi ograniczeniami:

Tabela: limity zasobów interfejsu Automation API
Dane Limit
Maksymalna liczba automatyzacji w obrębie domu 64
Maksymalna liczba węzłów w automatyzacji 128
Maksymalna liczba węzłów wyrażeń w jednej automatyzacji 64
Maksymalna liczba instancji automatyzacji w obrębie domu 1024
Maksymalna liczba instancji automatyzacji na dewelopera na strukturę 64
Maksymalna liczba wykonań na strukturę dziennie 1024
Maksymalna liczba wykonań dziennie na dewelopera, strukturę i dzień 128