Tworzenie automatyzacji na urządzeniu z Androidem

Zanim zaczniesz korzystać z interfejsu Automation API, zaprojektuj automatyzacje.

Określ te parametry każdej automatyzacji:

  • Okoliczności, w których automatyzacja powinna być sugerowana użytkownikowi. Jeśli np. użytkownik dodał do domu 3 nowe światła, może być zainteresowany konkretną automatyzacją dostosowaną do sterowania oświetleniem.
  • Jakie typy urządzeń są wymagane do automatyzacji. Jeśli np. użytkownik dodał do domu 3 nowe światła, może być zainteresowany konkretną automatyzacją dostosowaną do sterowania oświetleniem. Przykładowe typy urządzeń oświetleniowych to OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice lub ExtendedColorLightDevice.
  • Jakie atrybuty i polecenia są wymagane do automatyzacji oraz czy są one obsługiwane przez interfejs Automation API na Androidzie.
  • Traits, które powinny aktywować automatyzację jako elementy uruchamiające. Elementy uruchamiające są omówione w sekcji Komponenty automatyzacji na Androidzie.
  • Dodatkowe warunki, które określają, czy automatyzacja powinna zostać uruchomiona, oraz jakie działania mają zostać wykonane.
  • Przebieg wykonania automatyzacji. Czy ma być wykonywana sekwencyjnie czy równolegle? Czy potrzebujesz wielu ścieżek logicznych?

Podczas projektowania może być przydatne narysowanie schematu przepływu automatyzacji, węzeł po węźle, z logiką wymaganą na każdym etapie.

Gdy zaprojektujesz automatyzację, użyj Automation DSL, aby ją utworzyć. Utworzona automatyzacja jest w zasadzie „szablonem” – wszystkie struktury i urządzenia w niej są symbolami zastępczymi i są wypełniane konkretną strukturą i urządzeniami każdego użytkownika, gdy „przyjmie” on automatyzację do własnego użytku.

Oto różne rodzaje automatyzacji, które aplikacja może utworzyć za pomocą interfejsów Home API. Fragmenty kodu związane z tymi przykładami znajdziesz na stronie Tworzenie automatyzacji.

Prosta automatyzacja

Załóżmy, że musisz napisać aplikację, która tworzy automatyzację podnoszącą rolety o 8:00. Aby to zrobić, aplikacja potrzebuje listy rolet (urządzeń typu WindowCoveringDevice) znajdujących się w strukturze, które obsługują automatyzacje. Można ją uzyskać za pomocą interfejsu Discovery API.

W przypadku automatyzacji, które mają być uruchamiane o określonej godzinie, musisz też upewnić się, że użytkownik przypisał adres do wybranej struktury w Google Home app (GHA). W przeciwnym razie automatyzacja nie będzie znać strefy czasowej , w której ma działać. Interfejs Discovery API może pomóc Ci określić, czy do struktury został przypisany adres.

Przebieg wykonania będzie wyglądać mniej więcej tak:

  1. Za pomocą interfejsu Discovery API zbierz listę urządzeń WindowCoveringDevice.
  2. Jeśli adres nie jest wypełniony, powiadom użytkownika, że musi podać adres, i zatrzymaj wykonanie.
  3. W przeciwnym razie zdefiniuj automatyzację:
    1. Uruchom automatyzację o 8:00.
    2. W przypadku każdej rolety wywołaj polecenie upOrOpen traitu WindowCovering.

Złożona automatyzacja

Wyobraź sobie aplikację, która tworzy automatyzację, która włącza migające światła po wykryciu ruchu.

Jednym z pierwszych zadań podczas implementowania tej aplikacji jest sprawdzenie, jakie światła są dostępne w domu użytkownika, za pomocą interfejsu Discovery API. Dzięki tym informacjom aplikacja może teraz wyświetlać dostępne światła i umożliwiać użytkownikowi wybranie, które światła mają migać.

Przebieg wykonania:

  1. Za pomocą interfejsu Discovery API zbierz listę urządzeń oświetleniowych znajdujących się w strukturze, czyli wszystkich urządzeń typu OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice lub ExtendedColorLightDevice.
  2. Umożliw użytkownikowi wybranie świateł, które mają migać, np. za pomocą niestandardowego panelu ustawień.
  3. Zdefiniuj automatyzację:
    1. Uruchamiaj automatyzację, gdy ktoś opuszcza lokal lub do niej przychodzi, monitorując AreaPresenceState.
    2. Jeśli presenceState wskazuje, że struktura jest zajęta, włącz miganie wybranych świateł.

Ogólna automatyzacja

Aby zobaczyć przykład bardziej zaawansowanej automatyzacji, rozważ automatyzację, która prowadzi użytkownika przez proces tworzenia automatyzacji otwartej na podstawie dowolnych lub wszystkich urządzeń, które ma w domu.

Automatyzacja może najpierw poprosić użytkownika o wybranie struktury.

Następnie automatyzacja może wyświetlić wszystkie pomieszczenia w strukturze w widoku rozwijanego konspektu, w którym rozwinięcie pomieszczenia pokazuje znajdujące się w nim urządzenia. Dalsze rozwinięcie urządzenia powoduje wyświetlenie listy elementów uruchamiających i poleceń obsługiwanych przez to urządzenie.

Użytkownik może wybrać urządzenia, elementy uruchamiające i polecenia, których chce używać, a automatyzacja przeprowadzi go przez proces tworzenia automatyzacji.

Gdy wszystkie wybory i decyzje użytkownika będą ostateczne, automatyzacja wygeneruje automatyzację i zapisze ją w wybranej strukturze.

Na wysokim poziomie taka automatyzacja będzie musiała zebrać kilka zestawów danych o domu użytkownika za pomocą interfejsu Structure API na Androidzie, Device API na Androidzie, i Discovery API.

Tabela 1. Interfejsy Home API i informacje, które mogą udostępniać
Interfejs APIInformacje
Structure API
  • Jakie struktury są dostępne
  • Jakie pomieszczenia znajdują się w strukturze
Device API
  • Jakie urządzenia znajdują się w wybranej strukturze
  • Gdzie znajdują się te urządzenia (w którym pomieszczeniu)
Discovery API
  • Jakie traits są obsługiwane przez urządzenia
  • Jakie elementy uruchamiające i polecenia są dostępne w tych traits
  • Jakie ograniczenia dotyczą parametrów tych poleceń